你的應用有漏洞嗎?使用第三方依賴需謹慎
開源對軟體的發展可以說具有深遠的意義,它幫助我們共享成果,重複使用其他人開發的軟體庫,讓我們能夠專注於我們自己的創新,它推進了技術的快速發展。據不完全統計78% 的企業都在使用開源,但是其中有多少企業關注第三方開園依賴的安全呢?其中僅有13% 將安全作為第一考慮因素。可喜的是仍然有50% 的企業將安全列為第二或第三位考慮因素,越來越多的公司開始重視第三方依賴的安全性。
為什麼要關住第三方依賴的安全性
想象我們交付的軟體 Application 是一張餅,我們自己開發的程式碼僅佔其中很小一部分,見下圖:
而開源依賴並不等於是安全的,當然也不等於不安全,自2000年,僅有幾家大廠貢獻開源,其中有Apache, Linux, IBM, OpenSSL等,而到了2015年之後,任何人都在貢獻開源社群,下圖是主流軟體庫的發展 ,數量龐大
而我們在使用這些依賴的時候,一定要意識到:
1. 開源依賴往往很少有進行安全性測試的
2. 開源軟體開發人源對安全意識普遍不高
3. 開源軟體提供方沒有多餘的預算進行安全性測試
4. 駭客的主要攻擊目標是開源,因為攻擊一個,影響範圍很大
讓我們一起看幾組第三方依賴安全的調查資料:
如何管理第三方依賴安全
我們看到第三方依賴是存在非常大的安全隱患的,那我們應該如何做呢?不使用第三方依賴顯然是不現實的,我們總結了四個步驟
1. 瞭解你都使用了哪些依賴
2. 刪除你不需要的依賴
3. 查詢並修復當前已知的漏洞
4. 持續監聽新發現的漏洞,重複前三個步驟
依賴分析
相對簡單,我們使用目前的依賴管理工具可以輕鬆做到,如maven的dependency tree
刪除不需要的依賴
我們發現很對開發人員在維護依賴的時候,即使該依賴已經不適用,但不會刪除,這顯然會擴大駭客的攻擊範圍,因此我們需要定期檢查刪除不需要的依賴
發現並修復漏洞
第三步開始較為複雜,所幸已有很多開源組織提供了免費的漏洞庫,如US-CERT,NVD,OSVDB等漏洞廣播源,該類組織集中維護發現的已知漏洞,對外提供表述漏洞資料描述以及漏洞廣播,為開源社群安全提供資料支援,有了漏洞資料來源之後,判斷我們的依賴中是否有依賴就簡單了,我們僅需要根據我們的依賴包與漏洞資料庫進行對比,就可以發現我們釋出的應用中是否包含已知的漏洞,甚至有些開源組織會在漏洞庫的基礎上提供關於漏洞的修復建議,如 Synk.io,JFrog 和 Sync 合作貢獻了一個漏洞資料來源(JXray),其中包含主流漏洞資料來源,包括剛才提到的幾個,這樣我們就可以對我們包含對漏洞進行漏洞升級。
JXray 漏洞資料來源
持續監聽新的漏洞
我們知道漏洞是持續增長的,近幾年每年平均都有900左右的新漏洞,我們需要持續監聽這些新產生的漏洞,並與我們內部軟體生命週期整合,與DevOps有機結合(DevSecOps),這顯然需要一套平臺或系統幫助我們系統的管理第三方漏洞安全,下面我們整理了一個漏洞掃描平臺技術需求設計
漏洞掃描平臺技術需求設計
能力分類 |
技術指標 |
指標需求描述 |
價值描述 |
掃描能力 |
多語言支援 |
支援主流語言漏洞掃描能力,如war,jar,docker,npm,python,debian,rpm等 |
統一監管企業各種技術棧的開發,漏洞風險與License合規分析,全面避免漏洞上線到生產環境 |
深度掃描能力 |
對二進位制包深入逐層進行漏洞掃描,如war包中包含jar包 |
細粒度,深層次發現可能的漏洞,處理混合式軟體釋出體系,如Docker映象,rpm等 | |
分析能力 |
正向依賴分析 |
能夠分析定位出掃描目標漏洞包所在位置,標出具體哪個依賴出現漏洞 |
為企業快速定位問題及恢復提供資料依據 |
反向依賴分析 |
能夠自動化分析出漏洞包的影響範圍 |
快速分析漏洞問題的影響範圍,加速線上漏洞的恢復,最大程度降低企業風險 以及評估風險成本 | |
漏洞庫 |
開源漏洞資料整合 |
整合NVD等漏洞資料中心 |
針對第三方依賴包,對外部依賴包進行統一監管 |
商業漏洞資料整合 |
整合第三方商業漏洞工具能力,如 BlackDuck , WhiteSource 等 |
豐富漏洞資料庫,最大程度降低第三方依賴漏洞風險 | |
本地漏洞資料中心 |
對第三方依賴或企業自研件新增自定義漏洞,如與Jira等缺陷管理系統的整合 |
針對企業內部構建的軟體監管,避免團隊內部漏洞包進一步擴散到其他團隊 | |
其他漏洞掃描工具整合 |
透過API,自定義擴充套件對接第三方漏洞資料庫,如病毒掃描工具整合 |
進一步豐富漏洞掃描範圍,加強漏洞掃描能力,如木馬病毒等 | |
告警 |
自定義告警規則 |
不同專案管理人員可以監聽各自專案或軟體製品 |
同時提供全域性監管與分級監管機制,提高專案團隊自主安全意識 |
告警通知,自動化 |
郵件通知及webhook支援, 發現漏洞可以與自動化任務整合,如高危漏洞觸發回滾任務 |
提高企業漏洞快速相應能力,甚至漏洞自修復能力,降低企業風險 | |
生態,CI/CD |
作為CI/CD軟體交付質量關卡 |
可以在軟體交付流水線中整合,根據掃描結果,繼續或阻止流水線執行 |
多維度加強軟體交付質量,增加流水線質量關卡,保證軟體交付質量 |
RestAPI 支援 |
提供RestFul方式對接漏洞掃描平臺 |
方便企業與內部工具鏈整合 | |
視覺化 |
漏洞分析報表 |
漏洞掃描趨勢圖 漏洞頻率top圖 |
視覺化漏洞監管能力 提供決策依據 |
License 報表 |
License 分佈圖 License 相容性分析圖 |
視覺化企業在用License 提供決策依據 |
JFrog Xray 介紹
JFrog Xray 是一個通用的漏洞掃描平臺,可以滿足我們對第三方漏洞安全管理的所有需求,其主要有以下幾個特性
支援多語言漏洞掃描
Java,Docker,Npm,Python,Ruby Gems,Nuget,Rpm,Debian等主流語言漏洞掃描,統一對所有開發技術棧進行安全管理
深入掃描能力
我們會深入分析軟體的依賴及其傳遞依賴,甚至是Docker 映象中的作業系統層,如Docker 映象中ubuntu作業系統Layer中某一個debian包存在漏洞。下圖是一個Docker 映象中包含的一個基礎maven jar包含漏洞的分析圖
影響範圍分析
當我們監聽到一個新的漏洞後,我們往往很難定為其被哪些專案依賴並試用,極為耗時,且總會有遺漏的情況出現,提高了企業損失的機率。
JFrog Xray 會根據所有收集到的依賴拓撲,進行反向依賴性分析,逐層找到所有包含漏洞包的上層應用。快速分析漏洞的影響範圍,評估漏洞上線風險,指導企業進行漏洞修復
開放式整合
可以擴充套件與其他第三方漏洞資料平臺整合,如Whitesource,Blackduck等,透過Xray 平臺提供的Rest Api,甚至可以與企業自己漏洞資料來源進行整合,形成企業安全的統一管理閉環。
DevOps 整合能力(DevSecOps)
我們可以在軟體持續交付流水線中整合漏洞掃描能力,將安全機制整合進來,作為企業軟體質量關卡中的一部分,當發現漏洞的時候,阻止漏洞包交付到生產環境,如下圖
JFrog Xray 架構介紹
JFrog Xray 採用微服務架構設計,其中主要包含以下幾個微服務,
l Server,主服務,UI
l Indexer,索引層,進行軟體包索引
l Persist,持久層,儲存漏洞及掃描結果
l Analysis,分析層,分析依賴拓撲及反向依賴,發現漏洞並告警
JFrog Xray同時支援高可用叢集方式,針對企業級安全管理,提高漏洞掃描的效率及穩定性,並且與 JFrog Artifactory 通用二進位制包管理系統原生整合,共同組成製品管理統一管理方案。
微服務資料流
總結
本次分享,介紹了在使用第三方依賴時的安全隱患,以及針對該類問題,我們應該如何管理第三方依賴的安全,同時介紹了JFrog Xray 的安全管理特性,幫助企業輕鬆管理第三方漏洞,降低企業安全風險,避免含有漏洞的包上線到生產環境或客戶環境中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69954434/viewspace-2673603/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 投資有風險入市需謹慎
- 謹慎使用toLocaleString!!!
- 微信安全中心提醒:刷單有風險,網賺需謹慎
- 【Lambda、SteamAPI】謹慎使用流API
- 合作前先探雷?與臺灣公司合作需謹慎
- 網付智慧數字經營系統,代理需謹慎
- 線上pdf請你謹慎開啟
- 三天內不給錢就洩密,Sekhmet勒索需謹慎!
- 謹慎 try-finally
- API介面公司要考察的核心,讓你謹慎合作API
- 你有把依賴注入玩壞?依賴注入
- 理論+案例,帶你掌握Angular依賴注入模式的應用Angular依賴注入模式
- 使用 Dependify 工具探索 .NET 應用程式依賴項
- Angular 應用級別的依賴 FakeAngular
- 為什麼要謹慎使用Linux find命令?Linux
- java流操作要謹慎Java
- 謹慎處理 Service Worker 的更新
- 瘋狂的硬碟 | 價格暴漲暴跌之後,投資者們需謹慎硬碟
- 直播平臺開發難嗎?自己開發須謹慎
- BMJ:止疼藥和避孕藥,謹慎同時使用!
- 為什麼要謹慎使用Arrays.asList、ArrayList的subList?
- 測試環境搭建需謹慎! 搭建前後需要注意哪幾點?
- 技術人,請謹慎跳槽!
- [譯] 用依賴注入解耦你的程式碼依賴注入解耦
- 世界銀行:大通脹恐慌結束了嗎?謹慎樂觀的理由
- 請謹慎使用 avaliable 方法來申請緩衝區
- 原生應用新增 Flutter 模組依賴Flutter
- Java學習:反射的應用,依賴載入Java反射
- 多值依賴的有關概念
- 無需依賴Docker環境製作映象Docker
- 如何發現Python依賴庫漏洞Python
- 透過遞迴查詢應用依賴遞迴
- Util應用框架基礎(一) - 依賴注入框架依賴注入
- 這幾個關於Spring 依賴注入的問題你清楚嗎?Spring依賴注入
- 用例依賴管理
- 自媒體培訓行業套路多,新人學習自媒體運營需謹慎行業
- 使用Mockito修改Bean的依賴MockitoBean
- BI行業瘋狂“內卷”,企業選型需謹慎,這個工具入坑不虧行業