重點摘要
9700 萬次月下載的 LiteLLM 遭 TeamPCP 植入竊密程式,一小時內竊取全球開發者的 API keys、雲端憑證與加密貨幣錢包
Python .pth 機制允許套件安裝時自動執行任意程式碼,PyPI 缺乏強制雙因素驗證與發布審查,形成結構性安全缺口
受影響系統必須立即輪換所有憑證、審查 API 存取日誌,並改用短期 token 或 OIDC 授權機制
AI 工具鏈供應鏈攻擊成為新常態,開發環境隔離與依賴版本固定從可選實踐升級為核心防禦策略
前情提要
章節一:LiteLLM PyPI 套件遭竄改始末
2026 年 3 月 24 日 10:52 UTC,流行的 Python AI 代理庫 LiteLLM 的 1.82.7 和 1.82.8 版本被植入惡意程式碼並發布到 PyPI。攻擊者為 TeamPCP 威脅組織,他們在 3 月 19 日入侵了 Aqua Security 的 Trivy 漏洞掃描工具,並利用該工具存取 LiteLLM 專案 CI/CD pipeline 中的 PyPI 發布 token,取得上傳權限。
惡意版本在被發現前於 PyPI 上存活約一小時,但 LiteLLM 每月下載量高達 9700 萬次,且在許多專案中作為未固定版本的依賴項(如 DSPy),意味著該時段內的所有安裝都會拉取惡意版本。維護團隊在發現後立即隔離套件、輪換所有維護者帳號,並刪除 GitHub、Docker、CircleCI 和 PyPI 的所有發布憑證。
團隊同時聘請 Google Mandiant 進行事件調查。社群讚賞維護者的透明回應,一位 Hacker News 使用者表示「相較於典型企業公關話術,這種人性化的溝通真的很棒」。完整攻擊時間軸已由社群重建並發布於 ramimac.me,被形容為「既迷人又可怕」。
名詞解釋
PyPI(Python Package Index) 是 Python 官方套件倉庫,開發者可透過 pip install 指令安裝套件。
章節二:LM Studio 惡意軟體疑雲與 GlassWorm 關聯
同日,Windows Defender 將 LM Studio 0.4.7 版本的 index.js 標記為 Trojan:JS/GlassWorm.ZZ!MTB,引發社群恐慌。Reddit 討論串中多位使用者回報可重現的檢測結果。LM Studio 官方隨後確認這是誤報:該檔案屬於 Electron app 的 webpack bundle,因混淆的 JavaScript 程式碼(用於智慧財產權保護的標準壓縮手法)觸發啟發式檢測,但實際為合法程式碼。
Microsoft 已快速更新檢測特徵值,LM Studio 團隊強調他們並未使用 LiteLLM,因此不受該供應鏈攻擊影響。真正的 GlassWorm 是一個活躍的供應鏈攻擊活動,使用竊取的 GitHub tokens 在 3 月 3-9 日期間入侵至少 151 個 Python repositories,並在 1 月 31 日後發現 72 個惡意 Open VSX 擴充套件。
攻擊手法包括在 setup.py、main.py 等檔案中附加使用不可見 Unicode 字元隱藏的混淆程式碼,目標涵蓋 Django apps、ML 研究程式碼、Streamlit dashboards 和 PyPI 套件。GlassWorm 竊取 npm、GitHub、Git 憑證以及加密貨幣錢包、macOS 系統資料、瀏覽器資料、鑰匙圈資料庫、Safari cookies 和 VPN 設定。儘管 LM Studio 事件為誤報,但與 LiteLLM 攻擊的時間重疊凸顯了 AI 開發工具鏈面臨的多重威脅。
名詞解釋
啟發式檢測 (Heuristic Detection) 是防毒軟體透過分析程式碼行為模式(如混淆、加密)來識別潛在威脅的技術,可能產生誤報。
章節三:AI 開發工具鏈的供應鏈安全隱患
LiteLLM 事件是 TeamPCP 一週內的第三起攻擊:繼 Trivy(3/19) 和 Checkmarx KICS GitHub Action(3/23) 後,形成了一條完整的攻擊鏈——從安全掃描工具到 AI 代理庫。The Register 報導指出,Trivy 本身作為漏洞掃描工具被攻陷,進而成為入侵下游專案的跳板,展現了「誰來監督監督者」的弔詭困境。
Snyk 分析強調,LiteLLM 位於應用程式與 LLM 服務(OpenAI、Anthropic 等)之間的中介位置,使其成為極具價值的攻擊目標——一旦攻陷,攻擊者可攔截所有 API keys 和對話內容。這與傳統供應鏈攻擊不同,AI 工具鏈的憑證通常具有更高的商業價值和更廣的橫向移動能力(如 Kubernetes clusters)。
攻擊者在 proxy_server.py 中注入 base64 編碼的惡意 payload,並利用 Python 的 .pth 自動載入機制——在安裝目錄下放置 litellm_init.pth 檔案,使其在每次 Python 程序啟動時自動執行,無需 import 套件即可觸發。
第一階段竊取範圍包括 SSH keys、AWS/GCP/Azure 憑證、Kubernetes configs、Docker configs、CI/CD secrets、資料庫憑證、加密貨幣錢包。第二階段具備遠端 payload 傳送能力、Kubernetes 後門部署,並包含特殊邏輯:若偵測到系統時區為 Asia/Tehran 則執行 rm -rf /。
竊取的資料使用 4096-bit RSA + AES-256-CBC 加密,打包成 tar 壓縮檔後傳送至偽裝網域 models.litellm.cloud(與 LiteLLM 官方基礎設施無關)。
名詞解釋
.pth 檔案是 Python 的 site-packages 機制,原本用於新增模組搜尋路徑,但允許執行任意程式碼,成為攻擊者植入後門的管道。
章節四:開發者自保指南與社群回應
社群共識聚焦於四項防禦策略。首先是依賴版本固定:「固定每個依賴項版本,生產環境絕不自動更新」成為最多被提及的建議。LiteLLM 在多數專案中為未固定依賴,導致自動拉取惡意版本。
其次是憑證立即輪換:所有在攻擊時段(3/24 10:52-11:52 UTC)安裝 LiteLLM 的系統,必須立即輪換所有 API keys,尤其是 OpenAI、Anthropic、AWS、GCP 等服務憑證。OX Security 建議同時輪換 Slack、Discord tokens。
第三是環境隔離與短效憑證。Lobste.rs 討論中建議使用本地沙箱隔離開發環境,並頻繁輪換認證 tokens 以縮小暴露視窗。第四是版本盤點工具:社群成員建立腳本來清點系統中的 LiteLLM 版本,Docker 部署使用 1.82.3 版本的確認未受影響。
官方 GitHub Issue #24518 提供完整時間軸與狀態更新。安全研究機構 Wiz、Mend.io、Snyk 均發布深度分析報告,Wiz 將此次攻擊命名為「Threes a Crowd」,強調 TeamPCP 的持續性威脅。事件凸顯 AI 時代的供應鏈安全已成為開發者的核心技能,而非可選的最佳實踐。
政策法規細節
核心條款
本次攻擊暴露的安全缺口主要集中在三個層面。第一,PyPI 套件發布機制缺乏強制性的雙因素驗證和發布審查機制,攻擊者只需取得 API token 即可上傳惡意版本。第二,Python 的 .pth 檔案機制允許在套件安裝時自動執行任意程式碼,且無明確的安全邊界。第三,CI/CD pipeline 中的憑證管理普遍缺乏最小權限原則和短期輪換機制。
適用範圍
此安全事件直接影響所有在 2026 年 3 月 24 日 10:52-11:52 UTC 期間安裝 LiteLLM 1.82.7 或 1.82.8 版本的系統,包括個人開發環境、企業生產環境、CI/CD runners、容器映像。間接影響範圍擴及所有依賴 LiteLLM 的專案(如 DSPy、LangChain 整合)以及使用類似 CI/CD 架構的 Python 專案。
執法機制
PyPI 官方已撤下惡意版本並暫時凍結 LiteLLM 套件的發布權限。GitHub 已啟動針對 TeamPCP 組織的全面調查,並協助受影響專案重置憑證。各主要雲端服務商(AWS、GCP、Azure)已發布安全公告,建議客戶檢視在攻擊時段的 API 存取日誌。Google Mandiant 的事件調查報告預計於 2026 年 4 月公開,將作為產業後續防護標準的參考依據。
合規實作影響
工程改造需求
所有 Python 專案必須立即實施依賴版本固定(使用 requirements.txt 或 poetry.lock 指定確切版本號)。CI/CD pipeline 需改用短期 token 或 OIDC 授權機制,禁止在環境變數中長期儲存 PyPI、Docker Hub、雲端服務憑證。開發環境建議採用容器化隔離(如 Docker、Guix containers),避免套件安裝直接存取主機的 /.ssh、/.aws 等敏感目錄。建立套件安裝前的自動掃描流程,使用 pip-audit、safety 等工具檢測已知惡意套件。
合規成本估計
初期成本包括全面憑證輪換的人力時間(估計每個專案 2-4 小時)、受影響系統的日誌審查與入侵排查(每個環境 4-8 小時)、CI/CD pipeline 重構以支援短期憑證(每個 pipeline 1-2 天)。持續成本包括依賴版本更新的測試負擔增加、容器化環境的維護成本、安全掃描工具的授權費用(開源工具免費,商業方案如 Snyk 每年每開發者 $100-500)。大型組織可能需要聘請專職 DevSecOps 工程師(年薪 $120K-180K)。
最小合規路徑
- 立即檢查所有環境的 LiteLLM 版本(執行
pip list | grep litellm),若為 1.82.7 或 1.82.8,立即降級至 1.82.6 或更早版本 - 輪換在攻擊時段可能暴露的所有憑證,優先級:OpenAI/Anthropic API keys > AWS/GCP/Azure credentials > GitHub tokens > 資料庫密碼
- 審查 3 月 24 日 10:52-11:52 UTC 的 API 存取日誌,尋找異常請求或未授權的資源存取
- 在所有 requirements.txt 或 pyproject.toml 中指定 LiteLLM 的確切版本號(如
litellm==1.82.6),禁止使用>=或^範圍語法 - 為 CI/CD pipeline 啟用 GitHub Actions 的 OIDC 授權或 CircleCI 的 Context 限制功能,移除長期 API token
產業衝擊
直接影響者
首當其衝的是所有使用 LiteLLM 的 AI 應用開發者,包括 AI agent 框架開發者(DSPy、LangChain)、企業 AI 平台(使用 LiteLLM 作為統一 LLM 閘道)、AI SaaS 服務商(使用 LiteLLM 管理多模型路由)。若憑證外洩導致 OpenAI/Anthropic API 濫用,相關費用可能由開發者承擔(單一 API key 若被用於大量請求,可能產生數千至數萬美元帳單)。此外,所有依賴 Trivy 或 Checkmarx KICS 進行安全掃描的專案,其 CI/CD pipeline 都需要重新審查憑證安全性。
間接波及者
供應鏈上游包括 PyPI 平台(需強化套件發布審查機制)、GitHub(需改善 token 權限管理和異常偵測)、CI/CD 服務商(CircleCI、GitLab CI 等需重新檢視 secrets 管理最佳實踐)。下游包括終端使用者(若 AI 服務因憑證外洩而中斷,影響業務連續性)、雲端服務商(需處理大量異常 API 請求和帳單爭議)、開源專案維護者(需處理安全報告和社群恐慌)。
成本轉嫁效應
短期內,開發者可能面臨 API 使用費用暴增(若憑證被盜用於大量請求,OpenAI/Anthropic 通常不會豁免費用)。中期內,企業客戶可能要求 AI 服務商提供更嚴格的安全稽核報告,增加合規成本。長期來看,整個 Python 生態系統可能引入強制性的套件簽章機制(類似 npm 的 package provenance),增加開發和發布流程的複雜度。最終使用者可能面臨 AI 服務價格上漲(安全成本轉嫁)或服務中斷(因防禦措施導致的部署延遲)。
時程與展望
TeamPCP 組織入侵 Aqua Security 的 Trivy 漏洞掃描工具
TeamPCP 攻陷 Checkmarx KICS GitHub Action
LiteLLM 1.82.7 和 1.82.8 惡意版本發布到 PyPI
惡意版本被發現並撤下,LiteLLM 團隊啟動應變程序
Windows Defender 將 LM Studio 0.4.7 誤報為 GlassWorm 惡意軟體
LiteLLM 團隊聘請 Google Mandiant 進行事件調查
受影響組織完成憑證輪換、日誌審查與入侵排查
Google Mandiant 發布調查報告,PyPI 推出強化安全措施
Python 社群可能引入套件簽章機制,AI 工具鏈制定供應鏈安全標準
唱反調
過度恐慌可能導致開發效率下降:強制容器化隔離、嚴格的依賴版本固定會增加開發摩擦,對小型團隊和個人開發者而言成本過高
責任轉嫁至開發者:PyPI 和 CI/CD 平台的基礎設施缺陷應由平台方修復,而非要求每個開發者自行實施複雜的防護措施
攻擊者技術失誤顯示威脅被高估:vx-underground 指出 payload 品質低劣導致應用程式崩潰,實際竊密成功率可能遠低於理論值
社群風向
鑒於今天的 LiteLLM 供應鏈攻擊,大家現在在 macOS 上偏好使用什麼開發環境沙箱?我認為是時候在某個地方運行我的開發環境,讓惡意程式碼無法竊取我所有的 ~/... 憑證檔案
軟體恐怖故事:LiteLLM PyPI 供應鏈攻擊。僅僅執行 pip install litellm 就足以竊取 SSH keys、AWS/GCP/Azure 憑證、Kubernetes 設定、Git 憑證、環境變數(所有 API keys)、Shell 歷史記錄、加密貨幣錢包、SSL 私鑰、CI/CD secrets、資料庫憑證
老兄,某個蠢蛋攻陷了 LiteLLM 並成功發動供應鏈攻擊影響 9700 萬台裝置,但 payload 寫得太爛導致應用程式直接崩潰。你是地球上最差的惡意軟體作者,怎麼能搞砸 9700 萬台機器
軟體原始碼供應鏈攻擊在 AI 時代將變得非常普遍。保持安全!
不需要那些胡扯工具。Guix 可以在數秒內建立隔離容器,完全不觸碰你的 $HOME,並在現場匯入所有 Python/NPM/任何依賴項
炒作指數
行動建議
使用 Docker 或 Guix containers 隔離開發環境,避免套件直接存取主機的 ~/.ssh、~/.aws 等敏感目錄
建立 CI/CD pipeline 的短期憑證機制(GitHub Actions OIDC 或 CircleCI Context),移除環境變數中的長期 API token
追蹤 Google Mandiant 調查報告(預計 4 月發布)與 PyPI 的安全機制改進,評估是否需要遷移至 conda-forge 等替代套件源