你的應用有漏洞嗎?使用第三方依賴需謹慎

JFrog傑蛙科技發表於2020-01-16

開源對軟體的發展可以說具有深遠的意義,它幫助我們共享成果,重複使用其他人開發的軟體庫,讓我們能夠專注於我們自己的創新,它推進了技術的快速發展。據不完全統計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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章