整起事件可以追溯到 2026 年 5 月 11 日,當時 npm 與 PyPI 生態系遭到一次大規模供應鏈攻擊。該行動被歸因於威脅組織 TeamPCP,攻擊者入侵 TanStack 專案的 CI/CD 發佈流程,發布帶有惡意程式的套件版本。
這些套件被植入名為 Mini Shai‑Hulud 的憑證竊取惡意程式,其目的是分析開發者環境並蒐集敏感憑證,包括 GitHub Actions 與其他 CI 系統中的存取 token。
安全研究人員之後發現,這場攻擊迅速擴散到整個開源生態系,影響超過 160 個 npm 與 PyPI 套件,其中不少是廣泛使用的開發工具。
Grafana 的內部調查顯示,其中一個被植入惡意程式的 TanStack 套件曾在其開發流程中執行。套件內的憑證竊取模組成功擷取到 GitHub workflow token,該 token 原本用於 Grafana 的 CI/CD 自動化流程。
當整個 TanStack 供應鏈攻擊曝光後,Grafana 立即開始進行憑證輪替。然而在過程中,有一個 GitHub workflow token 沒有被更新或撤銷,導致該憑證仍然有效。
攻擊者正是利用這個遺漏的 token,成功登入 Grafana 的 GitHub 環境並取得多個儲存庫的存取權。
根據 Grafana 的說明以及外部資安報導,入侵者主要進行了以下行動:
部分報導指出,下載內容可能還包括 內部協作文件、商業聯絡資訊以及電子郵件地址,因為這些資訊儲存在內部 GitHub 儲存庫中。
Grafana 強調,調查結果顯示 沒有客戶資料或個人資料被存取。
在下載儲存庫資料之後,攻擊者向 Grafana 發出 勒索要求,威脅若不支付贖金就公開竊取的資料。
公開資訊顯示事件時間線大致如下:
Grafana 表示公司沒有支付贖金,並立即停用遭竊的憑證並啟動數位鑑識調查。
Grafana 強調,這起事件 僅限於 GitHub 儲存庫環境,而非其產品或雲端服務基礎設施。
公司調查指出:
換句話說,這次事件主要涉及 GitHub 中的原始碼與內部文件,而不是實際運行服務的系統。
Grafana 表示,攻擊者的活動主要是 下載資料(data exfiltration),而不是竄改程式碼。
目前公開資訊顯示:
不過外界也指出,這項結論主要基於 Grafana 的內部鑑識結果,因為完整的第三方鑑識細節並未公開。
Grafana 事件其實是 Mini Shai‑Hulud 供應鏈攻擊的典型後續案例。
該攻擊透過惡意套件滲透開發者工具與 CI/CD 環境,其常見攻擊鏈如下:
在 Grafana 的案例中,竊取的 CI token 再加上一個未輪替的憑證,就足以讓攻擊者進入 GitHub 儲存庫並下載公司原始碼。
整起事件也凸顯現代供應鏈攻擊的一個重要趨勢:攻擊者不再只針對最終產品,而是直接鎖定 開發流程與 CI/CD 管線。一旦取得自動化流程的 token,就可能直接取得企業的原始碼與內部系統存取權。