電腦安全 CrowdStrike、Shai-Hulud 以及即將到期的 CISA 2015:美國為何無法對軟體供應鏈攻擊保持警惕

CrowdStrike、Shai-Hulud 以及即將到期的 CISA 2015:美國為何無法對軟體供應鏈攻擊保持警惕

脆弱的鏈條遇上脆弱的法律

2025 年的安全新聞頭條主要集中在勒索軟體團夥、人工智慧驅動的網路威脅以及地緣政治駭客活動。但開源世界的供應鏈中,尤其是在 npm JavaScript 生態系統中,正在發生更安靜、更隱密的趨勢。

最新一波攻擊以「Shai-Hulud」為名,已危及數十個 npm 軟體包,其中包括在CrowdStrike 命名空間下發布的軟體包。光是這一點就足以敲響警鐘:當攻擊者能夠毒害與全球最知名的網路安全供應商之一相關的軟體包時,對軟體生態系統的信任就岌岌可危了。

而這一切正值一個關鍵的政策背景: 《2015年網路安全資訊共享法案》(CISA 2015)即將於9月底到期。 CISA 2015為私部門和聯邦機構之間自願且受責任保護的入侵指標(IOC)共享奠定了基礎。如果CISA 2015失效,美國將束手無策地應對類似「夏伊胡魯德」(Shai-Hulud)式的攻擊。

Shai-Hulud 活動:供應鏈攻擊剖析

1. 初始入侵

攻擊者入侵了連結到合法軟體包的 npm 帳戶(其中一些屬於個人維護者,另一些屬於組織命名空間)。透過修改package.json檔案並嵌入名為bundle.js的惡意文件,他們成功入侵了原本值得信賴的專案。

2. Payload:Bundle.js植入程序

該植入程式並非狡猾的「腳本小子」惡意軟體。它執行一系列精確的自動化任務:

  • 令牌收集:在主機環境中搜尋諸如NPM_TOKENGITHUB_TOKENAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY之類的秘密。
  • 工具部署:下載並運行TruffleHog ,這是一款開源實用程序,通常用於掃描儲存庫中洩露的機密資訊。本例中,它被重新用於掃描本機系統。
  • 驗證:透過執行輕量級 API 請求來驗證收集的令牌,以確認哪些憑證是有效的。
  • 透過 CI/CD 實現持久化:建立或修改.github/workflows目錄,以插入惡意的 GitHub Actions 工作流程-通常名為shai-hulud.yamlshai-hulud-workflow.yml 。這些工作流程可以在未來的 CI/CD 運作期間重新洩漏機密資訊。
  • 洩漏:將被盜的憑證和結果發送到硬編碼的 webhook 端點,通常透過一次性基礎設施進行控制。
  • 3.傳播

    由於 npm 軟體包之間緊密關聯,即使是單一的入侵也可能造成連鎖反應。惡意版本被上傳到 npm 倉庫,並自動分發給更新或安裝依賴項的開發者。這意味著數千個下游項目可能無意中拉取了中毒代碼。

    9月初發生的tinycolor事件就凸顯了這個風險。該函式庫( @ctrl/tinycolor )每週下載量達數百萬次。當它被Shai-Hulud載荷入侵後,超過40個下游軟體包被感染。

    4. CrowdStrike 命名空間洩露

    最令人震驚的發現是,在@crowdstrike npm 命名空間下發布的軟體包也遭到了攻擊。 Socket.dev 發現了數十個中毒版本,其中一些版本在2025 年 9 月 14 日至 16 日期間迅速發布。

    雖然沒有證據表明 CrowdStrike 自己的內部基礎設施遭到破壞,但其聲譽和系統性影響卻十分嚴重:

    • 開發人員期望像@crowdstrike這樣的供應商命名空間是堅固的。
    • 有毒的命名空間不僅會破壞對供應商的信任,還會破壞對 npm 本身的信任。
    • 對手清楚地了解這種妥協的象徵意義和實際力量。

    技術指標和可觀察指標

    為了進一步證實這一點,透過對 Shai-Hulud 包裹的分析,得出了以下技術標記:

    • 惡意檔案bundle.jsindex.js (修改為呼叫 bundle)、在.github/workflows/中插入工作流程檔案。
    • 工作流程有效負載:通常包含捲曲機密和向攻擊者 webhook 發送 POST 的步驟。
    • 雜湊重用:多個套件中bundle.js檔案的 SHA-256 雜湊值相同,確認了活動協調。
    • 滲透端點:託管在商品平台上的 Webhook(例如,Discord、Slack 傳入 webhook 或臨時雲端服務)。
    • 發布模式:幾分鐘內發布數十個軟體包版本,與自動化工具一致,而不是手動發布。
    • 這些指標並非只是法醫瑣事。它們凸顯了對手的自動化和紀律性——這是一場旨在擴大規模而非進行實驗的行動。

      為什麼供應鏈攻擊如此危險

      供應鏈攻擊繞過了外圍邊界。它們並非突破防火牆,而是搭便車進入企業日常依賴的可信任軟體更新和庫。

      • 影響範圍:破壞單一 npm 套件(如tinycolor或組織命名空間(如@crowdstrike可能會暴露數千個下游系統。
      • 信任劫持:開發人員天生信任套件管理器;中毒的更新會自動安裝。
      • 隱密性和持久性:透過嵌入惡意 GitHub Actions 工作流程,攻擊者即使在刪除原始惡意版本後也能確保反覆滲透。

      這就是為什麼像 Shai-Hulud 這樣的攻擊具有戰略意義:它們將現代軟體開發的機制(套件管理器、CI/CD 管道、開源依賴項)轉變為攻擊面。

      CISA 2015 到期為何會帶來更大風險

      CISA 2015 的作用

      2015 年《網路安全資訊共享法案》為私人實體與國土安全部(以及後來的 CISA)共享威脅指標建立了框架,且無需承擔任何責任。該法案的目標如下:

      • 鼓勵跨部門快速分享IOC。
      • 為誠信揭露指標的企業提供責任保障
      • 標準化技術格式(STIX/TAXII)以供機器可讀交換。

      到期風險

      如果該法於九月底失效:

      1. 減少共享:受到 Shai-Hulud 影響的維護者、註冊機構和供應商可能會因為擔心訴訟或監管反彈而猶豫是否要分享詳細資訊。
      2. 回應分散:如果沒有聯邦政府的協調,有關正在發生的攻擊的情報將仍然分散在各個供應商或研究人員手中。
      3. 緩解速度較慢:在供應鏈攻擊中,時間至關重要。如果沒有 CISA 的框架,發現和社區防禦之間的延遲可能會非常嚴重。
      4. 信任的侵蝕:開源社群已經受到 CrowdStrike 命名空間洩漏事件的震動,如果沒有強有力的、協調一致的聯邦和私人回應,他們可能更不願意信任中央註冊中心。

      政策和產業建議

      1. 立即採取立法行動

      國會應在9月底前續簽或延長《2015年網路攻擊安全法案》(CISA 2015) 。否則,將向對手發出信號,表明美國在日益升級的網路風險面前束手無策。

      2.註冊表強化

      npm、PyPI、RubyGems 和其他註冊中心需要更強有力的保障措施:

      • 對出版商強制實施多因素身份驗證
      • 自動偵測異常發布激增的情況。
      • 已發佈軟體包的程式碼簽章
      • 嵌入在 CI/CD 系統中的包來源檢查

      3. 供應商命名空間保護

      像 CrowdStrike 這樣的供應商應該要考慮:

      • 公用軟體套件的私人鏡像可保護企業免受篡改版本的侵害。
      • 持續監控命名空間劫持。
      • 公開披露每個版本的“已知良好”哈希值。

      4. 私營部門審計

      組織應該:

      • 將相依性固定到固定版本。
      • 審核 CI/CD 工作流程是否有未經授權的修改。
      • 如果憑證(npm 令牌、GitHub 令牌、雲端密鑰)暴露,立即輪換。

      5. 聯邦與私營部門合作

      即使 CISA 暫時失效,臨時結構也必須填補空白:

      • CISA、Socket.dev、GitHub 和 npm 之間的聯合公告。
      • 惡意哈希和端點的即時饋送。
      • 為開源維護者(通常是無償志工)提供財務和技術支援。

      結論:弱點的碰撞

      Shai-Hulud 攻擊活動證明,供應鏈攻擊已不再是“邊緣案例”,而是已成為一種標準的攻擊手段。 CrowdStrike命名空間下的軟體包遭攻陷,凸顯了生態系中信任的脆弱性。

      而就在這種威脅不斷升級之際,美國可能會讓CISA 2015到期——從而拆除實現資訊共享和快速反應的法律框架。

      教訓是顯而易見的:如果不進行立法更新和產業改革,美國就有可能進入迄今為止最危險的軟體供應鏈外洩時代——對手會利用技術漏洞和政策真空。

      簡而言之:脆弱的代碼+脆弱的法律=國家風險。

      加載中...