
軟體供應鏈仍然是一個關鍵的攻擊向量,經常受到複雜攻擊者的攻擊。最近對廣泛使用的套件的妥協事件,嚴峻地提醒了這些持續存在的威脅。這起事件涉及流行命名空間中的幾個套件被武器化以分發惡意程式碼,這些套件總計擁有大量的每週下載量。攻擊者的手法,透過GitHub提交注入程式碼,顯示了他們對現代開發流程和對廣泛使用的開源組件所寄予的固有信任有著清晰的理解。
發生了什麼事
一項重大的供應鏈攻擊針對了一個套件生態系統。惡意程式碼被注入到幾個廣泛使用的npm套件中,影響了數百萬次的每週下載量。這次妥協是透過GitHub提交執行的,這是軟體開發生命週期中的關鍵點,表明專案的持續整合(CI)管道內部存在漏洞。注入的程式碼旨在竊取受感染開發人員機器中的憑證,並將其外洩到攻擊者控制的遠端伺服器。
這次攻擊利用了「導入時酬載交付」機制,這意味著惡意程式碼在受損套件被導入專案時就會執行。這種技術繞過了許多傳統的靜態分析工具和運行時檢查,使得檢測變得具有挑戰性。這起事件指向了一個使用CI感知策略的複雜威脅行為者,可能利用專案CI管道中公開披露的漏洞來獲取負責發布的機器人帳戶的訪問權限。
為什麼這種模式會不斷重複
npm供應鏈攻擊的重複發生源於幾個系統性因素。現代軟體開發的廣泛互聯性,嚴重依賴開源套件,創造了一個廣闊的攻擊面。開發人員通常會整合數百甚至數千個第三方依賴項,其中許多由志願者或小團隊維護,其安全態勢各不相同。
除了直接的套件妥協之外,CI/CD管道本身也已成為主要目標。攻擊者意識到,妥協建構系統或發布自動化使他們能夠獲得強大的優勢,將惡意程式碼注入到合法軟體中。對自動化流程的固有信任,加上快速的開發節奏,通常沒有足夠的時間對每個依賴項和管道的每個階段進行徹底的安全審查。
對上游依賴項和自動化CI/CD流程的隱性信任創造了關鍵的盲點,而複雜的攻擊者正在持續利用這些盲點。
此外,大量的套件和更新使得手動安全審查變得不切實際。這種對自動化的依賴,雖然對速度至關重要,但如果安全性沒有深入地嵌入到每個階段,就會引入故障點。像這次事件這樣的攻擊表明,僅僅掃描已知漏洞已不再足夠;積極主動的多層防禦是勢在必行的。
攻擊者的逐步攻略
這起事件清楚地說明了現代npm供應鏈攻擊的攻略。首先,攻擊者識別並利用了專案CI管道中的漏洞。這可能涉及利用公開披露的弱點來入侵用於套件發布的機器人帳戶的憑證。這最初的入侵是至關重要的,因為它賦予了攻擊者操控官方發布過程的能力。
一旦獲得訪問權限,攻擊者透過GitHub提交將惡意程式碼注入到合法的套件源中。這種隱蔽的方法允許惡意酬載直接整合到程式碼庫中,使其看起來像是專案的合法部分。該程式碼旨在用於「導入時酬載交付」,確保在套件整合和使用時執行。
最後階段涉及憑證外洩。惡意酬載在開發人員機器上執行後,將竊取敏感資訊並將其傳輸到攻擊者控制的伺服器。從最初的入侵到資料外洩的整個序列,展示了對開發工作流程的複雜理解以及針對供應鏈滲透的目標方法。
防禦者錯過了什麼
在這次妥協中,幾個防禦層可能都失敗了。CI管道的最初突破表明在建構和發布環境周圍缺乏強大的安全控制。這可能包括機器人帳戶的存取控制不足、CI工具中未修補的漏洞或薄弱的秘密管理實踐。
其次,透過GitHub提交注入惡意程式碼表明,如果存在程式碼審查流程,它們要麼未能檢測到細微的更改,要麼完全被繞過。自動靜態分析工具可能未配置來檢測這種導入時酬載的特定模式,或者惡意程式碼經過充分混淆以逃避檢測。在檢測之前套件被下載了數百萬次的事實,指出發布後監控和行為分析中存在差距。
最後,開發人員機器上的端點檢測和回應(EDR)解決方案可能未能有效識別或阻止憑證外洩。這強調了持續監控的需求,不僅僅是生產環境,還有開發人員工作站,這些工作站正日益成為初始訪問的高價值目標。
實用的防禦檢查清單
CISO和安全工程師必須採取積極主動且全面的策略來減輕npm供應鏈風險。這涉及加強整個軟體開發生命週期中的控制。
- 實施嚴格的CI/CD強化: 定期審核並保護您的CI/CD管道。確保建構代理的最小權限,頻繁輪換憑證,並為所有CI/CD平台的存取使用多因素身份驗證。
- 加強程式碼審查和靜態分析: 強制對所有更改進行徹底的程式碼審查,包括來自自動化機器人的更改。整合能夠檢測混淆和導入時執行模式的進階靜態應用程式安全測試(SAST)工具。
- 依賴項審核和固定: 為所有專案維護準確的軟體物料清單(SBOM)。將依賴項固定到特定版本,並定期審核已知漏洞。考慮為關鍵依賴項使用私人套件儲存庫。
- 運行時監控和行為分析: 實施運行時應用程式自我保護(RASP)或類似技術,以即時監控套件行為。尋找已安裝套件的異常網路連線或檔案系統存取嘗試。
- 開發人員工作站安全: 將開發人員機器視為高價值目標。強制實施強大的端點安全、網路分段和持續監控,以檢測和防止憑證竊取和外洩。
- 供應鏈風險管理: 評估上游依賴項和維護者的安全態勢。優先選擇具有積極維護、清晰安全策略和快速漏洞修復歷史的套件。
- 自動化漏洞掃描: 實施對已部署應用程式及其依賴項的持續掃描,以查找新漏洞,尤其是在開發人員機器上運行的
npm和Python供應鏈攻擊的背景下。
現代攻擊性測試如何發現這一點
傳統的滲透測試通常側重於已部署的應用程式,使開發管道容易受到攻擊。現代攻擊性測試,特別是自主攻擊性測試,將會更早地發現這次妥協中被利用的弱點。透過持續自主地探測CI/CD管道、建構系統和依賴項管理流程,此類測試可以模擬攻擊者的步驟。
我們的平台secops,專門從事具有可執行概念驗證(PoC)的自主攻擊性測試。在這種事件模式下,secops可以自主識別允許機器人帳戶最初妥協的脆弱CI管道配置。然後,它可以透過可執行PoC演示攻擊者如何透過GitHub提交注入惡意程式碼並觸發導入時酬載交付。
此外,secops可以透過模擬憑證外洩嘗試來測試現有檢測機制的有效性,驗證EDR或網路監控工具是否會標記可疑活動。這種持續的、對抗性的視角提供了對真實世界攻擊路徑的可行見解,使組織能夠在惡意行為者利用漏洞之前修復漏洞。
接下來要注意什麼
npm和其他套件生態系統的威脅態勢將繼續演變。我們可以預期開發人員環境中「靠地吃地」的攻擊會增加,攻擊者利用合法的開發人員工具和流程來隱藏其活動。重點可能會進一步轉向妥協開發人員工作站和CI/CD管道作為初始訪問點,而不是僅僅針對面向公眾的應用程式。
預計會出現更複雜的酬載交付和混淆技術,旨在逃避靜態分析和傳統基於簽名的檢測。AI驅動的開發工具和代理的興起引入了新的攻擊面,其中受損的AI實例可以將無法檢測的惡意程式碼注入專案。警惕、持續安全測試和向左轉的安全思維對於駕馭這個不斷演變的威脅環境至關重要。
相關閱讀

框架RCE的持久威脅:CISO對最新危機的事故總結
廣泛使用的框架中存在的關鍵遠端程式碼執行漏洞持續困擾著網路安全領域。本文深入探討了這種重複出現的模式,其對CISO的影響,以及主動式進攻性測試如何能減輕未來的風險。

雲端資料外洩:錯誤配置的持續危險
深入探討因雲端儲存錯誤配置而導致的惡夢,分析攻擊者的手法、防禦上的疏忽,以及 CISO 防止災難性資料洩露的實用策略。

靜默的供應鏈終止開關:npm 憑證竊取危機
最近針對廣泛使用的 npm 套件發動的供應鏈攻擊浪潮,暴露出現代軟體開發中一個關鍵的漏洞。攻擊者將竊取憑證的程式碼注入看似無害的修補程式版本中,繞過傳統的安全控制,並以驚人的規模危害下游應用程式。CISO 和安全工程師必須了解這種不斷演變的威脅的機制和影響。
