瘴氣供應鏈攻擊
一種名為「瘴氣」(Miasma)的新型軟體供應鏈攻擊活動已經入侵了多個@redhat-cloud-services npm 套件。該攻擊旨在竊取開發者環境中的憑證和敏感訊息,同時部署一種能夠自我傳播的蠕蟲病毒,從而在軟體開發生態系統中進一步擴散。
此攻擊活動與先前與Mini Shai-Hulud相關的策略非常相似,利用安裝時執行、憑證竊取、CI/CD 破壞、加密資料外洩以及實現下游傳播的機制。
目錄
歸屬仍不確定
針對Miasma病毒的攻擊者尚未被最終確定。由於TeamPCP(又稱Replicating Marauder、TGR-CRI-1135和UNC6780)先前已將與Shai-Hulud蠕蟲相關的攻擊工具作為開源專案發布,因此溯源工作變得更加複雜。這項措施使得其他網路犯罪集團能夠複製類似的技術,從而大大增加了確定攻擊者身分的難度。
被入侵的 npm 包
已確定以下 npm 套件受到影響:
@redhat-cloud-services/vulnerabilities-client
@redhat-cloud-services/tsc-transform-imports
@redhat-cloud-services/topological-inventory-client
@redhat-cloud-services/sources-client
@redhat-cloud-services/rule-components
@redhat-cloud-services/remediations-client
@redhat-cloud-services/rbac-client
透過混淆的安裝邏輯竊取憑證
安全研究人員發現,這些惡意軟體包包含一個混淆的預安裝鉤子,該鉤子旨在軟體包安裝過程中自動執行。該惡意軟體的目標是廣泛的敏感資產,包括 GitHub Actions 金鑰、npm 身份驗證令牌、雲端憑證、Kubernetes 和 HashiCorp Vault 金鑰、SSH 金鑰、Git 憑證以及儲存在受感染系統上的其他機密文件。
如同先前的 Mini Shai-Hulud 攻擊活動中所觀察到的,該惡意軟體整合了加密的資料外洩程式。竊取的資訊傳送到 api.anthropic.com:443/v1/api,而 GitHub 則作為備用的資料外洩管道。這種雙重目的策略表明,攻擊者不僅試圖竊取憑證,還試圖將其武器化,以進一步破壞軟體供應鏈。
加密資料包透過 GitHub API 提交,提交訊息可能包含以下字串:
“如果您使此令牌失效,它將摧毀所有者的計算機:”
隱身技術和傳播機制
該惡意軟體包含多種旨在最大限度提高持久性、逃避偵測和擴大存取範圍的措施。一個顯著的特點是刻意避免在俄語系統上執行,這種行為先前曾在 GlassWorm 供應鏈攻擊活動中出現過。
對於 npm 環境,惡意程式碼會與 OIDC 令牌交換和 whoami 端點交互,將軟體歸檔檔案重新打包成更新的 tar 包,並使用 Sigstore 對修改後的工件進行簽署。竊取的憑證隨後會洩漏到攻擊者控制的公共 GitHub 倉庫中,這些倉庫的描述為「瘴氣:蔓延的災禍」。
調查人員發現最早包含此描述的提交日期為 2026 年 5 月 29 日,這表明要么是活躍運營的開始,要么是該日期前後的初始測試階段。
在 GitHub 環境中,該惡意軟體會枚舉可被已入侵令牌存取的倉庫,透過 GraphQL 查詢分析工作流程定義,並利用 createCommitOnBranch 突變注入惡意工作流程。這種方法使得惡意變更看起來像是經過驗證和加密簽署的提交。
進階持久性和權限提升功能
分析顯示,該惡意軟體還內建了其他幾項功能:
試圖透過啟動容器來提升權限,這些容器會將主機的 /etc/sudoers.d 目錄綁定掛載,並授予 CI 運行程式免密碼 sudo 存取權限。
在發起惡意活動之前,偵測包括 CrowdStrike、SentinelOne、Carbon Black 和 StepSecurity Harden-Runner 在內的端點安全解決方案。
持久化機制將 SessionStart 鉤子注入 Anthropic Claude 程式碼,並為 Microsoft Visual Studio Code 專案建立配置了 'runOn': 'folderOpen' 的惡意 tasks.json 文件,以確保在未來的開發會話中執行。
更加關注雲端身分洩露
Miasma變種病毒的重大演變是其對雲端身分資訊收集的關注度顯著提高。針對Google雲端平台(GCP)和微軟Azure環境的新模組會收集所有可從受感染機器存取的雲端識別資訊。
以往的變種主要集中在從雲端環境中提取密鑰。而新增的身份資訊收集器則表明,攻擊者的策略重心已轉向獲取直接雲端存取權限,並利用雲端基礎設施中的特權身分。
更糟的是,每次感染都會產生一個獨一無二的加密有效載荷。這種客製化處理會嚴重阻礙基於特徵碼的偵測、惡意軟體追蹤以及跨事件的版本關聯。
初步妥協和供應鏈滲透
現有證據表明,這次攻擊活動源於一名紅帽員工的GitHub帳戶被盜用。調查人員認為,該帳戶是最初的感染點,攻擊者利用該帳戶將惡意程式碼注入受影響的軟體包中。
根據報告,被入侵的帳戶將惡意孤立提交推送到兩個 Red Hat Insights 儲存庫中,繞過了既定的程式碼審查程序,並將惡意有效載荷引入了軟體供應鏈。
事件回應和補救指南
安裝了受影響軟體包版本的組織應立即隔離受影響的系統,移除惡意軟體,輪換所有可能暴露的憑證,調查 GitHub 和 npm 活動是否存在未經授權的存取跡象,並檢查環境中是否存在持久化機制。尤其應關注以下方面的未經授權修改:
~/.claude/settings.json、.vscode/tasks.json、.github/workflows/codeql.yml 和 .github/setup.js。
開發環境和雲端環境中也應強制執行嚴格的存取控制。
由於該惡意軟體在開發者工具中建立了後台執行能力和持久性,因此僅卸載受影響的 npm 套件或刪除 node_modules 目錄不應被視為足夠的補救措施。
對於 CI/CD 環境,應立即暫停受影響的工作流程執行。組織應使暴露期間建立的建置工件失效,並徹底檢查惡意軟體引入環境後是否產生了版本、容器鏡像、npm 套件、部署工件或其他軟體元件。