近日,GitHub披露了一起開源軟件供應鏈攻擊事件。GitHub上的大量NetBeans代碼庫被惡意軟件章魚掃描器(Octopus Scanner)感染成為傳染點,章魚掃描器是專門為感染NetBeans項目而設計的后門。
根據(jù)Github公布的信息,章魚掃描器影響了26個開源項目。
章魚掃描器直接感染了Github上的開發(fā)工具,性質(zhì)要比常見的將GitHub平臺作為惡意軟件C2服務器嚴重得多。
危險的章魚
GitHub于3月9日收到一名獨立安全研究人員的漏洞警告,稱GitHub托管的一組代碼庫正在積極提供惡意軟件服務。
隨后的調(diào)查證實,章魚掃描器惡意軟件能夠?qū)etBeans項目文件進行分類,然后將有效惡意負載嵌入GitHub項目文件并創(chuàng)建JAR文件。
受影響的GitHub代碼庫所有者很可能完全意識不到惡意活動的存在,并且清理惡意軟件也是一個挑戰(zhàn),因為僅僅阻止或禁止項目維護(者)并不是一個好選擇。
GitHub安全實驗室正在研究如何從受感染的存儲庫中正確刪除惡意軟件,而不必關閉用戶帳戶。
GitHub安全專家 Alvaro Mu?oz在一篇文章(https://securitylab.github.com/research/octopus-scanner-malware-open-source-supply-chain)中給出了詳細技術分析,介紹GitHub安全團隊如何克服困難剔除章魚掃描器。
但是,關于此次攻擊的許多問題仍然存在,尤其是為什么惡意軟件作者針對NetBeans構建過程(一種相對不流行的Java IDE)進行攻擊。
如果惡意軟件開發(fā)人員花時間專門針對NetBeans實施此惡意軟件,則意味著它可能是針對性攻擊,或者他們可能也針對諸如Make,MsBuild,Gradle等開發(fā)系統(tǒng)實施了該惡意軟件。盡管在分析時惡意軟件C2服務器似乎并未處于活動狀態(tài),但受影響的存儲庫仍對GitHub用戶構成了風險,他們可能會克隆和構建這些項目。
開源軟件安全專家Sonatype的CTO Brian Fox評論說,章魚掃描器如此危險的原因是它感染了開發(fā)人員工具,這些工具隨后感染了他們正在從事的所有項目,從而影響了他們的團隊或開源用戶社區(qū)。
章魚掃描器惡意軟件證實了分析代碼中二進制文件的重要性,而不僅僅依靠清單。章魚掃描器如此危險的原因在于它具有感染項目中其他JAR文件的能力,因此開發(fā)人員最終使用“有毒”代碼并將其分發(fā)給他們的團隊或開放源代碼用戶社區(qū)。我們已經(jīng)觀測到20多次針對開源項目的一次性惡意代碼注入嘗試,但章魚掃描器是一種新的攻擊形式。這種攻擊感染了開發(fā)人員工具,這些工具隨后感染了他們正在從事的所有項目。
供應鏈攻擊
GitHub Daily Security Lab的負責人Nico Waisman解釋說:
章魚掃描程序的目標是將后門插入NetBeans構建的人工制品中,以便攻擊者隨后可以將這些資源用作攻擊的一部分。命令和控制服務器。
Waisman補充說:
沒有證據(jù)表明26個開源項目實際上是惡意軟件的攻擊目標。該惡意軟件的主要目標是感染開發(fā)人員的計算機并通過NetBeans項目傳播。由于開發(fā)人員受到感染,他們無意中將后門代碼上傳到了自己的存儲庫。
軟件依賴關系無處不在,因此使用數(shù)百甚至數(shù)千個開源依賴關系成為項目的正常現(xiàn)象。Waisman警告說,攻擊者正在利用開源軟件的這種依賴性進行攻擊。
Waisman說:
盡管開源對開發(fā)人員來說很容易,但這也意味著對攻擊者來說很容易。攻擊者正在尋求供應鏈突破口,因為供應鏈攻擊的影響范圍更大。突破一點就能夠訪問多個目標。
威斯曼總結(jié)說,盡管像這樣的供應鏈攻擊令人恐懼,但它們?nèi)匀缓苌僖姟?/p>
Waisman指出:
供應鏈安全的主要問題是未修補的軟件。對于攻擊者而言,在依賴中利用未修補的已知漏洞要比在代碼中插入新漏洞要容易得多。
對于開發(fā)人員而言,主要的挑戰(zhàn)是了解項目的依賴關系,以及何時需要對其進行修補。在GitHub上,Dependency Graph可幫助您了解項目的依賴關系。