攻擊者透過入侵 TanStack 專案的 GitHub Actions 發布流程,將 TanStack 堆疊中的 42 個 NPM 套件的 84 個惡意版本發佈到了 NPM 倉庫。其中一些被入侵的包每週下載量超過 10 萬次。
獲得發布權限的原因包括:GitHub Actions 中 pull_request_target 的「Pwn Request」設定錯誤(在設定中指定掩碼導致 pull_request_target 針對第三方 fork 發起 pull 請求)、透過 fork 污染 GitHub Actions 快取,以及能夠透過 /procner 目錄的內容從程式中擷取的內容 2.令牌。 /mem。
5月11日晚上10:20至10:26(莫斯科時間)期間,惡意修改的NPM軟體包被發布,20分鐘後被偵測到,一個半小時後被攔截。每個受影響的NPM軟體包都發布了兩個惡意版本,每個版本都包含啟動mini-shai-hulud蠕蟲的程式碼。該蠕蟲會在目前環境中搜尋令牌和憑證。如果偵測到與NPM目錄的連接令牌,蠕蟲會自動發布針對目前環境中正在開發的軟體包的新惡意版本,從而影響依賴關係樹。超過400個使用TanStack軟體包作為依賴項的NPM軟體包因此受到影響。
該蠕蟲病毒被植入 router_init.js 檔案中,並在開發者手動安裝受影響的軟體包或在持續整合環境中使用「npm install」、「pnpm install」或「yarn install」命令自動安裝時啟動。啟動後,該蠕蟲病毒會在系統中搜尋 NPM(~/.npmrc)、AWS、GCP、Azure、HashiCorp 和 KubernetesK8s 的令牌以及 SSH 私鑰。它找到的資料會透過去中心化的 P2P 訊息傳遞工具 getsession.org 傳送給攻擊者。
該蠕蟲被設計成在攔截到的 NPM 令牌被撤銷時執行破壞性操作。系統配置為定期運行腳本 ~/.local/bin/gh-token-monitor.sh,該腳本每 60 秒通過訪問 api.github.com/user 檢查令牌的活動,並在令牌被撤銷時執行命令“rm -rf ~/”。
來源: opennet.ru
