
今年9月,當全球最大規模的供應鏈攻擊事件——針對廣受歡迎的開源庫Chalk和Debug的攻擊見諸報端時,盡管攻擊規模龐大,但質疑其實際影響的懷疑論者仍迅速發聲。一份廣為流傳的報告《哎呀,沒有受害者:最大規模的供應鏈攻擊僅竊取了5美分》拋出了一個問題:經濟損失究竟在哪里?
報告作者推測稱,整個事件造成的最大財務影響將是全球工程與安全團隊為清理受污染環境而投入的數千小時集體工作時間,以及因這一新案例研究而不可避免簽訂的數百萬美元銷售合同。
Socket Security的研究人員隨后追蹤了攻擊者的加密貨幣錢包,發現其總收益約為600美元。正如Socket所指出的,盡管此次活動極具破壞性,但迄今為止其財務影響有限。
然而,此類攻擊造成的損害無法僅用金錢衡量。真正的代價在于它們所引發的混亂與不確定性。即便是關于某個庫被入侵的謠言,或未經證實的零日漏洞,也可能在全球工程、IT和安全團隊中引發連鎖反應——項目停滯、資源轉移,迫使企業陷入成本高昂的應急響應循環。
當Debug維護者在社交媒體上披露其賬戶因釣魚攻擊而遭入侵時,各地的應急響應團隊不得不立即采取行動。安全與IT人員放下日常工作,監控局勢、評估暴露風險,并確定自身環境是否可能被惡意版本“污染”。這意味著要在內部和客戶網絡中掃描入侵指標、執行清理程序,并記錄影響——而這一切都是在尚未確認自身是否直接受影響之前進行的。
對于研究人員和專注于供應鏈的安全公司而言,工作范圍進一步擴大:尋找更多被入侵的組件、關聯新的入侵指標,并在新情報到來時重復分析。這些事件很少只發生一次,它們會呈級聯效應。例如,在Chalk和Debug被劫持的那一周,另一起針對DuckDB相關npm包的獨立入侵事件迫使團隊再次重復調查與修復工作。
曾經常見的攻擊手段,如攻擊者入侵中間軟件升級功能或CI/CD工具,如今已不復存在。
這就是現代軟件供應鏈攻擊的面貌。
供應鏈攻擊:瞄準訪問權限而非系統入侵
自2020年震驚業界的SolarWinds入侵事件以來,威脅格局已發生巨變。早期的高調事件主要針對構建服務器或篡改軟件更新。如今的攻擊者則偏好更為隱蔽的切入點:維護開源項目的人類。
過去兩年中,大多數大規模供應鏈入侵并非始于CI/CD管道中的零日漏洞,而是始于被盜的維護者憑證、釣魚攻擊或社交攻擊手段,攻擊往往導致加密貨幣盜竊、注冊表濫用,甚至國家級間諜活動。
以下是威脅行為者策略在此環境中的演變方式。
社交攻擊+AI
人為因素常被視為信息安全中最薄弱的環節,而釣魚攻擊也絕非新穎的攻擊向量。然而,其已被證明的有效性使其一次又一次成為針對熱門庫維護者的首選向量。釣魚攻擊制造的緊迫感,甚至可能迫使大多數精通技術的用戶未經充分驗證便采取行動。
此外,威脅行為者發布的175多個惡意(而非被劫持的)軟件包,正利用開源生態系統對軟件包用戶(而不僅是合法庫的維護者)發起憑證釣魚攻擊。任何安裝這些軟件包并運行捆綁HTML頁面的用戶,都會看到一個專門設計以模仿用戶電子郵件域(如live.com)的釣魚界面。
更重要的是,AI的廣泛可用性為這些操作注入了強大動力,使攻擊者能夠生成高度逼真的釣魚誘餌,這些誘餌看起來真實且精良,擺脫了曾讓釣魚嘗試失敗的語法錯誤。
即使那些幾乎沒有直接社交攻擊成分的攻擊,如針對項目GitHub Actions工作流的自動化拉取請求注入,也因AI而影響加劇。最近的“s1ngularity”攻擊(可能暗指AI時代的技術概念)通過機器速度的自動化拉取請求,成功攻擊了2180個GitHub賬戶和7200個存儲庫。
靜態簽名引擎可能曾能捕獲的惡意軟件,如今更難被標記。某些變種能夠持續生成獨特提示或嵌入指令,這些指令能被大型語言模型識別并執行,但對分析人員和自動化防御系統而言卻看似良性文本。
攻擊載荷演變:“蠕蟲”與隱寫術
在近期供應鏈惡意軟件中觀察到的幾個關鍵主題之一是威脅行為者對其攻擊載荷的創新,無論是通過部署各種混淆與分發技術,還是重新利用日常技術以推進其目標。
最近發現的Shai-Hulud供應鏈攻擊便是典型例證。攻擊始于攻擊者入侵了40多個合法軟件包,包括一些來自Crowdstrike npm賬戶的軟件包,并使用了一種能夠自動復制并注入到同一受入侵維護者擁有的其他項目中的載荷。據CI/CD安全公司StepSecurity稱,攻擊發生后的一兩天內,這種“蠕蟲”便傳播到了187個軟件包,最終感染了超過500個軟件包。
這種自動自我傳播邏輯在所有開發者的項目中迅速提高了感染率,其速度遠超以往威脅行為者通過人力努力所達到的水平。
攻擊者還在探索隱寫術技術,如讓npm軟件包簡單地從其服務器下載二維碼圖像。對于人類分析人員和網絡安保工具或代理而言,這可能看起來不過是普通的圖像流量。但客戶端邏輯將解析此二維碼以提取惡意指令,本質上使其成為受感染機器與命令與控制服務器之間的隱蔽通道,同時規避網絡檢查。
國家級間諜活動
國家支持的企業已注意到這些策略的有效性。與朝鮮有關的Lazarus Group最近(2025年7月)便多次針對開源注冊表發起攻擊,在npm和PyPI軟件包中嵌入后門和竊取程序,目標直指加密貨幣公司和國防承包商。
今年早些時候,該企業還分叉了開源項目以發布帶有數據竊取惡意軟件的修改版本。據SecurityScorecard研究及威脅情報高級副總裁Ryan Sherstobitoff稱,這些包括Codementor、CoinProperty、Web3 E-Store、一個基于Python的密碼管理器以及其他與加密貨幣相關的軟件包。
這些活動表明,供應鏈攻擊如今已成為間諜工具,使攻擊者能夠通過合法開發者工作流間接滲透目標。
瞄準非開源市場
盡管在供應鏈攻擊新聞報道中頻繁提及“npm”、“PyPI”或“RubyGems”等目標已成為過去幾年的常見主題,但這些攻擊并不僅限于開源注冊表。
研究人員已多次標記發布到微軟Visual Studio(VS)代碼市場的惡意擴展。以太坊開發者Zak Cole甚至在安裝了一個針對Cursor代碼編輯器的惡意擴展后,錢包被清空。
Koi Security和Wiz最近強調了VS代碼擴展生態系統中日益增長的風險,包括Open VSX——這是微軟市場的開源、供應商中立替代方案。例如,“TigerJack”活動便展示了攻擊者如何同時在多個市場分發受污染插件。
盡管Open VSX擴展作為可下載存檔在技術上可被檢查,但這些并不總是真正的開源,許多缺乏明確許可或公共版本控制存儲庫。這種不透明性使審計變得復雜,并允許威脅行為者在看似可信的開發工具中隱藏惡意功能。
惡意擴展若設計用于修改源代碼、資產或構建管道,則可悄然將開發環境木馬化,從IDE內部發起供應鏈入侵。
注冊表濫用作為存儲介質
在供應鏈領域,一個常被忽視且更多屬于滋擾而非攻擊的方面是注冊表濫用。盡管開源軟件注冊表旨在供組件開發者發布與消費,但創意用戶往往能找到繞過其傳統用途的方法,利用這些注冊表來托管他們的媒體內容等。
2022年,一個自稱“ApacheCN”(與Apache軟件基金會無關)的中國開發者群體便利用GitHub和npm等平臺存儲了數千本電子書,如《經濟學人》各版本,表面上是為了規避審查。2024年,我分析了748個npm軟件包,它們沒有任何合法的軟件用途,僅被用于存儲和分發被分割成多個部分的電影。
最近,加密貨幣愛好者多次被發現用數萬至數十萬個近乎空白的軟件包,或現有開源庫的分叉版本充斥軟件包注冊表,試圖在“Tea”這一旨在用加密“代幣”獎勵開發者的小眾協議和平臺上提升排名。
網絡安全領導者保護企業的措施
現代供應鏈攻擊務實且多面。如今許多最頻繁發生的事件始于人類和注冊表的弱點,如受入侵的維護者賬戶、惡意拉取請求和市場擴展。這些向量成本低廉、可擴展且有效。但這并非全部故事:當符合攻擊者目標時,他們仍會投資大規模源代碼篡改。像Shai-Hulud這樣在數百個軟件包中修改或傳播惡意代碼的蠕蟲式活動表明,攻擊者能夠并將結合自動化傳播、混淆和人類欺騙以最大化影響。
如今,平衡的防御意味著既要保護人員,也要保護他們所依賴的生態系統。這包括為維護者強制實施多因素認證、為員工開展釣魚模擬演練、使用經過審查的注冊表、加固CI/CD管道,以及監控大規模代碼變更或自我傳播邏輯。
最終,目標并非計算攻擊者賺了多少錢,而是阻止孤立事件演變為長期持久訪問或廣泛的下游污染。


