GTIG:2026 年開源軟體供應鏈遭入侵、憑證竊取與自我傳播
1. 基本資訊
- 文章標題:Batten Down Your Packages: Mitigation Guidance for Supply Chain Compromise
- 發布單位:Google Threat Intelligence Group / Mandiant
- 發布日期:2026-07-30
- 原始網址: https://cloud.google.com/blog/topics/threat-intelligence/mitigation-guidance-for-supply-chain-compromise/
- 相關來源:TeamPCP、axios 與 WAVESHAPER.V2 調查(本文內)
- 相關實體:UNC6780/TeamPCP、SANDCLOCK、MIDNIGHT NEPTUNE/UNC1069、WAVESHAPER.V2、npm、PyPI、Docker Hub、GitHub Actions、axios
- 嚴重程度:高
2. 執行摘要
攻擊者正竊取開發者、維護者與 CI/CD 管線的憑證,以竄改合法套件。這種攻擊模式正大規模擴張:它會從使用者環境中竊取雲端密鑰、自我傳播至其他套件,並導致勒索軟體或勒索事件。
3. 攻擊流程
UNC6780 / TeamPCP
- 攻擊者透過濫用 GitHub Actions
pull_request_target、入侵維護者帳戶或發布惡意套件,取得寫入權限。 - 他們在 PyPI、npm 與 Docker Hub 上的合法或仿冒套件中注入惡意程式碼。
- 使用者在開發裝置或 CI/CD 管線安裝時執行該程式碼。
- SANDCLOCK 等工具竊取雲端、CI/CD 與套件登錄的憑證。
- 攻擊者竄改受害者擁有的其他套件,進行蠕蟲式傳播。
- 他們從 AI 軟體橫向移動至更廣泛的企業網路。
- 他們將竊取的憑證出售或與勒索軟體、資料勒索團體合作以獲利。
axios / MIDNIGHT NEPTUNE
- 攻擊者透過社交工程入侵維護者帳戶。
- 他們在合法 axios 套件中加入惡意依賴,並發布新版本。
- 依賴解析將套件傳播至大量使用者與下游套件。
- 下載器部署 WAVESHAPER.V2 後門。
4. 攻擊者位置與執行地點
攻擊者入侵原始碼託管服務、CI/CD 管線與套件登錄的控制平面。惡意程式碼在開發者裝置、建置執行者、容器與應用程式執行環境中執行,隨後利用竊取的憑證進入雲端與其他儲存庫。
5. 受害者與管理員的可見性
- 套件外觀合法、使用真實名稱、具有效簽署者,且看起來像是正常的依賴更新。
- CI 日誌顯示安裝腳本、新增依賴、對外網路流量與密鑰存取。
- 即使單一裝置未顯示警告,使用相同 lockfile、快取或容器映像的多個環境仍會同時受到影響。
6. 成功與失敗條件
Success Conditions
- 維護者與 CI 權杖容易遭受釣魚攻擊,且有效期長。
pull_request_target或類似事件將密鑰與寫入權限授予不受信任的程式碼。- 安裝腳本、對外網路流量與依賴更新不受限制。
- 惡意版本仍存在於快取、lockfile 與容器映像中。
Failure Conditions
- 具抗釣魚的多重要素驗證 (MFA)、短效期 OIDC,以及具最小權限的發行權杖。
- 密鑰不會傳遞至跨越信任邊界的 CI 事件。
- 鎖定依賴、簽章與來源驗證、限制安裝腳本,以及對外流量控管。
- 遭入侵版本從所有快取與建置成品中移除,而非僅從登錄移除。
7. 攻擊成功後的結果
開發者、CI/CD 與雲端憑證、原始碼與客戶資料遭竊,惡意套件向下游自我傳播。GTIG 指出,axios 事件影響 13 個國家、15 個產業的客戶,顯示每週下載量超過一億次的依賴具有巨大影響。
8. 可觀測日誌
- Email:針對維護者的釣魚郵件,或偽裝成登錄單位或 GitHub 的訊息。
- Proxy/SWG/DNS:安裝或建置期間的未知對外流量、傳送憑證,以及下載惡意套件。
- Endpoint/EDR:套件管理員子程序、安裝腳本、密鑰檔案讀取、WAVESHAPER.V2 / SANDCLOCK 活動。
- Identity/IdP:維護者帳戶、個人存取權杖 (PAT)、npm/PyPI 權杖與雲端金鑰的異常使用。
-
SaaS/Cloud:GitHub Actions、
pull_request_target、releases、套件發布、OIDC 與稽核日誌。 - Network:CI 執行者或開發者裝置的異常對外流量,隨後出現雲端 API 存取與內部偵查。
9. 攻擊成功評估
- Contact Only:釣魚、惡意 PR,或引用惡意版本。
- User Action:維護者驗證、PR 核准、依賴更新。
- Initial Execution:安裝或建置期間執行惡意程式碼。
- Malware or Successful Auth:SANDCLOCK/WAVESHAPER.V2 活動、使用遭竊權杖。
- Data Theft / Session Compromise:傳送密鑰、原始碼或雲端資料。
- Subsequent Compromise Confirmation:發布其他套件、雲端與網路橫向移動、勒索或勒索軟體。
10. 調查手冊
- Trigger:已知遭入侵版本、未預期的發布事件、CI 的未知對外流量、權杖異常使用。
- Initial Check:識別 SBOM、lockfile、快取、映像、安裝時間與執行環境。
- Devices:調查套件管理員、安裝腳本、子程序、密鑰存取與建置成品。
- Auth & Cloud:追蹤所有 GitHub、登錄、CI 與雲端權杖的使用與發行。
- Subsequent Actions:檢查受害者有權發布的所有套件、下游依賴、雲端 API 與資料傳輸。
- Containment:停止建置、撤銷權杖、移除惡意依賴、快取與成品,從已知良好來源重建,並通知下游使用者。
- Assessment Levels:已引用 / 已下載 / 已執行 / 憑證遭竊 / 套件重新發布 / 雲端橫向移動 / 外洩或勒索軟體。
11. 防禦與偵測構想
-
Single Event:從新裝置發布、帶有密鑰的 CI
pull_request_target、安裝期間執行 shell,或意外新增依賴。 - Timeline Correlation:維護者異常登入 → 發布/發行 → CI 安裝 → 讀取密鑰 → 發布另一個套件。
- Hunting:從 SBOM 反向查找遭入侵版本與傳遞依賴,並在環境中搜尋相同權杖與基礎架構的使用。
- Log Gaps:若無套件登錄日誌、CI 工作日誌、來源資料與開發者裝置對外流量日誌,無法判斷完整影響範圍。
- Priority Countermeasures:具抗釣魚的 MFA、短效期 OIDC、鎖定依賴、簽章/來源驗證、隔離 CI 環境、密鑰掃描與對外流量控管。
12. 事實 / 推論 / 假設
Facts
- GTIG 高信心評估,開源軟體供應鏈攻擊的規模、重複性與蠕蟲式特性,在 2025 年至 2026 年初之間有所增加。
- TeamPCP 針對 PyPI、npm 與 Docker Hub,使用 SANDCLOCK 等工具竊取密鑰,並試圖從 AI 軟體橫向移動至更廣泛的企業網路。
- axios 事件中,惡意版本在三小時內被移除,但影響範圍仍達 13 個國家、15 個產業的客戶。
Inference
- 僅從登錄刪除套件,並無法保護現有快取、lockfile、容器映像或遭竊憑證。
- 全球組織同時透過全球開源依賴受到影響。
Hypothesis
- 將發布驗證事件與下游 CI 密鑰存取相互關聯,有助於在自我傳播發生前遏制攻擊。
13. MITRE ATT&CK 對應
- High Confidence:T1195.001 Compromise Software Dependencies and Development Tools、T1552 Unsecured Credentials、T1078 Valid Accounts、T1105 Ingress Tool Transfer。
- Medium Confidence:T1528 Steal Application Access Token、T1098 Account Manipulation、T1041 Exfiltration Over C2、T1486 Data Encrypted for Impact(若由協力廠商執行)。
14. 未知事項與後續調查
- 各活動的完整 IOC 與遭入侵套件清單。
- AI 如何用於規劃攻擊與產生惡意程式碼的具體範圍。
- 國內組織或本地鏡像中的殘留存在。
- 將竊取憑證販售與勒索軟體操作連結的個案。
15. 對 SOC 與一般企業的影響
即使在本地開發環境中,對 npm、PyPI、Docker Hub 與 GitHub Actions 的依賴程度仍高。SOC 必須不僅監控生產伺服器,還需監控開發者身分、CI 執行者、套件發布、SBOM 與建置對外流量。組織需在開發、雲端與 CSIRT 團隊間協調安全回應。
16. 依目標受眾摘要
- 針對 SOC:將身分、發布事件、套件安裝、密鑰讀取與下游發布視為單一供應鏈進行追蹤。
- 針對管理員:使 CI 密鑰具短效期,並妥善管理依賴、簽章、來源與快取。
- 針對使用者:開發者不應盲目核准依賴更新或針對維護者的驗證請求。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.