開源軟件供應鏈攻擊分類
VSole2022-08-01 06:52:07
簡介
現有研究缺乏對攻擊者如何將惡意代碼注入OSS項目的全面、可理解、通用性的描述。論文關注開源軟件供應鏈攻擊,提出了一種針對開源供應鏈攻擊的通用分類法,獨立于特定的編程語言或生態系統,涵蓋了從代碼貢獻到包分發的所有階段,與真實事件關聯并映射到安全緩解措施。邀請了17名領域專家和134名開發者對分類和相應安全措施的有效性進行定性評估。
方法
首先,作者回顧了相關論文和灰色文獻,以收集OSS供應鏈上的攻擊載體的廣泛列表。其次,將文獻中描述的向量從特定的編程語言或生態系統中提取出來,進行威脅建模,并確定減輕這些向量的安全措施。最后,為了驗證所提出的分類和安全措施列表,作者設計并運行了兩個用戶調查:OSS供應鏈安全領域的專家調查和軟件開發人員調查。

- 文獻數據:搜索四個數字圖書館:Google scholar(980)、arXiv(6)、IEE Explore(25)和ACM數字圖書館(160)。人工提取有關常見威脅、攻擊載體和相關保障措施的信息。灰色文獻主要來自開源數據集和安全博客。
- 攻擊場景的分析與建模:基于文獻[1]的攻擊樹,確定了額外的攻擊向量。
- 構建標準:對現有生態系統(一級節點)的干擾程度、軟件供應鏈的各個階段(即源、構建、分發),以及每個階段所涉及的系統和利益相關者。
- 模型如圖2所示,一級節點包括開始創建惡意軟件包、創建名稱混淆的惡意軟件包、轉化合法軟件包。轉化合法軟件包節點下包括三個二級節點:惡意代碼注入、包構建時注入、分發惡意版本軟件包。
Fig2 攻擊樹
- 安全措施的識別和分類:根據控制類型、利益相關者參與和減輕攻擊對每個安全措施進行分類。利益相關者包括維護者、系統管理員、用戶。每個安全措施被分配給可能的深度最小的樹節點。(詳見附錄表II)
- 針對項目維護人員和管理人員:包括八項保障措施,例如,安全身份驗證建議服務提供商提供多因素身份驗證(MFA)或強制執行強密碼策略
- 針對項目維護人員:包括七項對策,例如,維護者應該進行仔細的合并請求審查或為敏感的項目分支啟用分支保護規則,以避免惡意的代碼貢獻。
- 針對管理者和消費者:包括五種對策,例如,包存儲庫管理員和消費者都可以選擇直接從源代碼中構建包,而不是接受預先構建的組件。
- 針對消費者:包括下游用戶可能采用的九種應對措施。OSS包的用戶可以通過隔離代碼或沙箱來減少使用時惡意代碼執行的影響。
- 用戶調查:
- 收集調查參與者背景信息尤其是技能,基于tree-testing驗證樹節點關系,用Likert scale對結構、節點名稱、覆蓋率和有效性進行評分。
- 開發人員:被問及他們是否知道此類攻擊,以及是否liao了解緩解攻擊的安全措施。
- 采用滾雪球抽樣由最初的參與者分析邀請更多的參與者
- 調查結果文件分布式存儲在云端
評估
論文對提出的攻擊分類和安全措施進行了全面評估
A. 攻擊分類評估
- 專家評估:樹形測試攻擊樹結構合理性(75%的節點結構合理)、Likert評分(82%的專家打分在4-5分)、72%的專家同意攻擊樹的完整性。
- 開發者評估:開發者是否了解主要攻擊向量(64%-90%不等)、Likert評分(77%認為分類法可理解,87%認為分類法有幫助意義)
B. 安全措施評估
- 從U/C比(Utility-to-Cost)角度打分,結果如下表所示

討論
不同生態系統之間存在區別,一些攻擊技術確實獨立于特定的生態系統/語言,但一些攻擊或檢測方法是特定的,例如:濫用依賴解析攻擊、執行或觸發惡意代碼、代碼混淆和惡意軟件檢測。
總結
論文通過對現有工作進行總結和抽象,將開源軟件供應鏈安全的知識系統化,并做了大量工作評估分類的有效性。提出的針對開源供應鏈攻擊的分類法和安全緩解措施,有助于評估開源項目的安全風險、制定安全策略。
VSole
網絡安全專家