洞見RSA 2021|備受熱捧的“供應鏈攻擊”如何防禦?

綠盟科技發表於2021-05-31

什麼是供應鏈攻擊

供應鏈攻擊是一種面向軟體開發人員和供應商的新興威脅。目標是透過感染合法應用分發惡意軟體來訪問原始碼、構建過程或更新機制[1]。軟體供應鏈可劃分為開發、交付、執行三個大的環節,每個環節都可能會引入供應鏈安全風險從而遭受攻擊,上游環節的安全問題會傳遞到下游環節並被放大。值得注意的是在供應鏈攻擊中受到攻擊的是上游廠商,受到威脅的則是上下游廠商。上游的程式碼風險問題,其實就是下游廠商需要注意的供應鏈問題。上游管理好軟體開發過程中的風險有助於減少下游廠商面臨的供應鏈攻擊。程式碼風險平臺能夠解決的就是軟體開發過程中發生的供應鏈攻擊。

Imperva 的部落格中提及了五種典型的攻擊方法[2]:

1. 利用供應商的產品進行注入(典型的如SolarWinds事件)

2. 利用第三方應用程式(如郵件/瀏覽器漏洞)

3. 利用開放原始碼庫中包含的漏洞

4. 依賴關係混淆

5. 惡意接管(擔任社群專案維護者,注入惡意程式碼)

在以上五種攻擊方法中,依賴關係混淆可以透過正確配置製品庫進行阻止。利用第三方應用程式和利用開放原始碼庫中包含的漏洞,可以透過及時升級或者利用安全公司提供的補丁進行緩解,但是針對供應商產品注入和惡意接管方面並沒有比較有效的通用方案。 

Apiiro針對供應商產品注入和惡意接管提出了使用識別編譯過程注入和利用演算法識別惡意接管的方式來應對這兩種攻擊方式。針對軟體開發過程中產生的漏洞則給出基於變更的風險檢視來實現安全左移,在變更發生時評判變更中包含的風險等解決方案。

Apiiro的解決方案

Apiiro是業內首先提出程式碼風險平臺的企業。Apiiro程式碼風險平臺可以幫助客戶在SDLC過程的早期進行有效的風險管理,加強應用程式的治理與合規性檢測,同時防止針對CI/CD的高階攻擊。Apiiro會分析整個開發過程中的資料,以幫助組織識別,確定優先順序並補救有風險的重大變更。Apiiro透過提供跨應用程式、基礎架構、開發人員的知識和業務影響的風險可見性,幫助組織構建應用程式風險計劃[3]。

洞見RSA 2021|備受熱捧的“供應鏈攻擊”如何防禦? 

安全左移:識別變更中蘊含的風險並適時介入安全審查

針對軟體設計和開發過程中的風險管理,Apiiro 使用基於時間點和風險維度的風險檢視,根據提交的變化,開發人員的知識和行為,業務影響等提示使用者變更中蘊含的風險[4]。

1. 建立所有產品的業務影響、是否為網路應用、程式碼元件、安全控制、資料模型、許可證、依賴項以及開發人員的知識、位置和行為的清單。例如:哪些產品和哪些元件(API、UI、後端、移動等)正在使用特定的庫+誰對其進行了升級+何時+哪個開發人員更改了程式碼+他/她的知識+它在哪裡部署等。

2. 確定所有程式碼元件的所有重大更改的歷史稽核跟蹤。例如:在特定庫中跨所有危險物料更改的歷史記錄進行實時過濾,以瞭解時間點和變更背景。

3. 僅針對關鍵程式碼元件(例如,關鍵業務邏輯匯款)中的風險重大變化自動觸發上下文安全流程(例如,安全設計審查、安全程式碼審查、SAST和DAST)。

4. 針對每個提交、PR或釋出,在圖中的所有節點上建立統一的風險檢視。這將幫助您做出明智的基於風險的決策。

5. 僅基於統一風險檢視批准有風險的重大變更。

基於這種方式可以對專案種蘊含的風險有一個全域性的風險檢視,基於這個風險檢視可以看到某個開發人員針對某個程式碼庫的變更造成了哪些影響。並基於變更風險來批准有風險的重大變更。

同時僅針對關鍵程式碼元件中的風險重大變化自動觸發上下文安全流程,有助於將安全審查力量集中在重要元件中,加快DevSecOps速度。

 

供應鏈安全:利用演算法識別惡意接管

針對開發人員賬戶被竊取或者開源軟體被惡意接管,Apiiro 使用UEBA和異常檢測技術,根據使用者的提交內容、提交時間和頻率等來檢測使用者的提交是否偏離了正常使用者的行為。並自動對可疑提交的PR進行評論。演算法觸發異常警報的一些指標包括[3]:

1. 提交與提交強度有關的近期活動不符

2. 提交時間與使用者的預期活動日期和時間有出入

3. 貢獻者偏離了他的同行在儲存庫中常見的模式

4. 提交資訊與分析程式碼之間的重大差異

5. 新增的程式碼與該儲存庫的模型預測的程式碼明顯不同

Apiiro基於以上指標,利用機器學習和人工智慧演算法訓練出用於檢測惡意行為的模型。該檢測模型基於行為和字元內容,與語言和平臺無關。這是一種可用於開源軟體監測或者內部開發檢測的通用方式,可以用於公司內部監測開源軟體的惡意託管,也可用於監測內部開發賬戶是否被竊取並用於提交惡意程式碼。

 

供應鏈安全:識別編譯過程注入

洞見RSA 2021|備受熱捧的“供應鏈攻擊”如何防禦?

SolarWinds供應鏈攻擊示意圖

 

針對SolarWinds事件,Apiiro 給出了一種可以檢測原始碼和二進位制檔案是否匹配的方法。利用來自二進位制檔案的標實體關係圖和從原始碼中學到的相同資料圖執行比較演算法。當存在多個不匹配的風險因素時,表明該程式碼已被篡改。

.NET二進位制檔案為例。Apiiro平臺將對可執行檔案進行解析並執行以下操作[3]:

· 瞭解所有可能的邏輯流程和符號

· 清除所有自動生成的編譯器邏輯

· 調整執行時版本之間的預期差異等

當檢測到編譯的結果分析到的資料圖和原始碼中分析到的資料圖存在較多不一致的時候,就可以認為在編譯過程中發生了編譯過程的惡意程式碼注入。

這種解決方案針對的是在編譯時注入程式碼的攻擊方式。在惡意程式碼的注入前後對檔案進行分析,並檢測出是否包含編譯時注入的風險。對於上游廠商來說,保證自己編譯過程不被注入這是一種有效的方案。

對於下游受影響的廠商來說,由於編譯過程注入是發生在上游廠商,在不能獲得原始碼的情況下如果要檢查上游產品中是否包含惡意程式碼,只能透過二進位制檢查來分析其中包含的風險,雖然二進位制分析針對惡意程式碼的漏報誤報顯然不如從原始碼和二進位制同時進行分析,但二進位制分析的覆蓋面更廣。如果是在能獲取到原始碼的情況下,使用SCA+SAST 配合上編譯過程注入的檢測方案,是能夠確認上游提供的產品的安全性的。所以這種方式需要上下游廠商的合作才能確認自己的上游不被這種攻擊方式影響。

 

程式碼風險平臺如何應對供應鏈攻擊

對於供應鏈安全來說,一方面是保證上游產品沒有安全問題,另一方面是要保證自身產品全週期的安全問題。這就需要程式碼風險平臺有對上游產品的檢測和持續監測能力,並對自身產品Devsecops流程進行風險管控。

對於上游產品來說我們可以提供安全監測服務,針對可以獲取程式碼或二進位制檔案的情況下提供安全掃描能力。同時對於惡意接管和軟體/元件的公開漏洞提供安全監測服務。

對於自身產品開發週期的安全問題則需要對Devsecops 流程進行風險控制。需要我們協助軟體開發組織排查Devsecops過程中每一個可能受到攻擊的點,並對其進行持續的功能驗證和配置核查。可以利用安全方面的知識協助軟體開發組織排查Devsecops整個流程中潛藏的風險並提供一套整體上的Devsecops解決方案。這包含程式碼安全(SCA,SAST等)、程式碼庫安全(惡意接管)、主機安全(SolarWinds事件是由於編譯機被控制導致的)、製品庫安全等。這需要程式碼風險平臺結合Devsecops安全能力、傳統安全能力結合自身安全能力來覆蓋這些容易受到攻擊的點。

最重要的是程式碼風險平臺需要透過對專案中建立的全域性風險檢視的監測,來排查開發過程中包含的風險,實現安全左移。這需要程式碼風險平臺將安全能力集中在一個平臺且具有對資料進行綜合分析的能力,對大量安全工具的不同種類的告警資訊和開發過程中產生的資料進行分析,給出基於風險的統一檢視。從而有效地幫助軟體開發組織控制開發過程中的風險,應對供應鏈攻擊。

 

綠盟科技供應鏈安全實踐

Gartner 2017年第一次提到Devsecops概念到今年,Devsecops一直在探索落地實踐之路。2021年供應鏈安全類產品第一次獲得RSA的沙盒冠軍,說明Devsecops已經從概念轉化為實踐,找到了發展的方向。綠盟科技經過多年積累,即將推出綠盟程式碼安全審計系統( SDA ),貫徹Devsecops理念思路,採用更加落地的方式來實現供應鏈安全中的一環。透過靜態分析、成分組成分析和韌體分析,在開發、測試、移交和釋出階段,全方位保證應用交付的安全。

洞見RSA 2021|備受熱捧的“供應鏈攻擊”如何防禦?

獨創性的韌體分析模組,在沒有原始碼的情況下,依然能夠基於系統級別的掃描,完成漏洞與元件的分析。在成分組成分析方面除了物料清單梳理外,還能根據專案的安全生命週期進行跟蹤;對於新發現的漏洞,能夠快速排查受影響的專案。無論是上游供應商出現漏洞,還是影響了下游使用者,都能及時評估風險範圍。

國內企業目前已逐步往Devops的開發模式進行遷移,CI/CD流程越來越完善。為了適應敏捷式的開發模式,綠盟程式碼安全審計系統( SDA )提供靈活的介面,採用非入侵的方式,輕鬆接入到企業已有的Pipeline中,不增加原有安全管理流程。

類似Apiiro的上下文風險分析,綠盟程式碼安全審計系統( SDA )採用針對全生命週期統一的缺陷風險評估標準,結合歷史提交記錄、漏洞修復方式和人工稽核結果,自動評估出漏洞修復優先順序,以風險最小化為前提,加速應用版本的釋出。 

 

    ·    參考文獻   ·    

[1]https://baike.baidu.com/item/供應鏈攻擊

[2]https://www.imperva.com/blog/5-ways-your-software-supply-chain-is-out-to-get-you-part-5-hostile-takeover/

[3]blog.nsfocus.net/rsa創新沙盒盤點-apiiro-程式碼風險平臺/

[4]https://blog.apiiro.com/top-5-tips-to-prevent-the-solarwinds-solorigate-attack

相關文章