ArcSign / Blog / LiteLLM 供應鏈攻擊事件

LiteLLM 供應鏈攻擊事件:環境變數遭竊,為什麼冷錢包是你最後的防線

2026-03-25 · 閱讀時間約 15 分鐘 安全事件 供應鏈攻擊 冷錢包防護
LiteLLM 供應鏈攻擊事件示意圖 — 環境變數遭竊取
目錄

發生了什麼事?LiteLLM 供應鏈攻擊始末

2026 年 3 月 24 日,開源 AI 社群迎來了一場驚天噩夢。每天被下載超過 340 萬次的熱門 Python 套件 LiteLLM,被發現遭到供應鏈攻擊。攻擊者在 PyPI 上發布了兩個被植入惡意程式碼的版本 — v1.82.7v1.82.8 — 會在使用者的電腦上靜默地竊取所有環境變數,包括 API 金鑰、雲端憑證、SSH 金鑰,甚至加密貨幣錢包檔案。

LiteLLM 是一個廣泛使用的 AI 代理框架,讓開發者可以統一呼叫 OpenAI、Anthropic、Google 等各家大型語言模型 API。根據 Wiz 的研究報告,36% 的雲端環境中都存在 LiteLLM。這意味著這次攻擊的潛在影響範圍極為驚人。

攻擊影響範圍

LiteLLM 每天下載量達 340 萬次,存在於 36% 的雲端環境中。惡意版本在 PyPI 上存活了約 3 小時才被隔離。任何在此期間安裝並執行過受影響版本的系統,都應假設所有環境中的憑證已被洩露。

這起事件最令人不安的地方在於:攻擊者不是直接入侵 LiteLLM,而是先滲透了另一個知名的開源安全工具 — Aqua Security 的 Trivy 漏洞掃描器。透過 Trivy 的 CI/CD 流程,攻擊者取得了 LiteLLM 在 PyPI 的發布憑證(PYPI_PUBLISH token),然後以合法維護者的身份發布含有後門的版本。這就是現代供應鏈攻擊的可怕之處:你信任的工具,可能已經被武器化了

攻擊時間線

這次攻擊是一個精心策劃的多步驟行動,由一個名為 TeamPCP 的駭客組織執行。以下是完整的攻擊時間線:

3 月 19 日 — Trivy 遭入侵

攻擊者 TeamPCP 入侵了 Aqua Security 的開源漏洞掃描工具 Trivy。Trivy 被廣泛用於 CI/CD pipeline 中進行安全掃描,是許多開源專案信任的基礎設施。

3 月 21 日 — 攻擊擴散到 Checkmarx 和 KICS

TeamPCP 將攻擊範圍擴大到 Checkmarx 和 KICS 的 GitHub Actions,利用這些被入侵的 CI/CD 工具作為跳板,收集更多目標的認證憑證。

3 月 24 日 — LiteLLM 被植入後門

利用從 Trivy 取得的 PyPI 發布憑證,TeamPCP 以 LiteLLM 維護者的身份發布了包含惡意程式碼的 v1.82.7 和 v1.82.8 版本。惡意程式碼在 Python 啟動時自動執行。

3 月 24 日(約 3 小時後)— 惡意版本被隔離

安全研究人員發現異常後,PyPI 團隊緊急隔離了受影響的版本。但在這 3 小時內,已有大量使用者下載並執行了惡意套件。

攻擊手法深度解析:.pth 檔案的致命漏洞

這次攻擊最巧妙的地方,是利用了一個鮮為人知的 Python 機制 — .pth 檔案

Python 的 .pth 檔案原本的設計目的是修改模組搜尋路徑。但它有一個致命的特性:如果 .pth 檔案中的行以 import 開頭,該行會在 Python 直譯器啟動時自動執行。這意味著惡意程式碼不需要使用者明確 import LiteLLM — 只要 Python 被啟動(任何 Python 程式),惡意程式碼就會執行。

關鍵技術細節

惡意套件安裝時會放置一個名為 litellm_init.pth 的檔案。這個檔案會在每次 Python 直譯器啟動時自動執行,而非僅在 import litellm 時。這意味著即使你只是執行一個與 LiteLLM 完全無關的 Python 腳本,你的環境變數也已經被竊取了。

攻擊的完整流程如下:

1 安裝觸發

使用者安裝 pip install litellm==1.82.8,惡意的 litellm_init.pth 檔案被放置到 Python 的 site-packages 目錄中。

2 自動執行

下次任何 Python 程式啟動時,.pth 檔案中的 import 語句自動執行,載入惡意 payload。整個過程完全靜默,沒有任何提示或警告。

3 資料收集

惡意程式碼掃描整台電腦,收集環境變數、SSH 金鑰、雲端憑證、錢包檔案等所有可以找到的敏感資料。

4 資料外傳

收集到的資料被加密後傳送到攻擊者控制的遠端伺服器。整個過程在背景執行,使用者完全不知情。

被竊取的敏感資料清單

根據 ReversingLabs、Snyk 和 Sonatype 的分析,惡意程式碼竊取的資料範圍極為廣泛,幾乎涵蓋了開發者電腦上的所有敏感資訊

資料類型 具體內容 風險等級
環境變數 所有 ENV 變數,包括 API 金鑰、密碼、Token 極高
SSH 金鑰 ~/.ssh/ 目錄下的所有金鑰檔案 極高
AWS 憑證 Access Key、Secret Key、Session Token 極高
GCP 憑證 Service Account Token、Application Default Credentials 極高
Azure 憑證 Client Secret、Managed Identity Token 極高
Kubernetes 設定 ~/.kube/config 叢集存取設定 極高
資料庫密碼 環境變數中的 DB 連線字串與密碼 極高
Git 設定 .gitconfig 中的認證資訊
Shell 歷史記錄 .bash_history.zsh_history 中曾輸入的指令
加密貨幣錢包檔案 本機上的錢包設定檔、keystore 檔案 極高
最致命的一點

許多開發者習慣將 API 金鑰和錢包私鑰存放在環境變數或本機設定檔中。這次攻擊精準地針對這些位置。如果你用 MetaMask 或其他熱錢包,你的加密資產可能已經不安全了。

加密貨幣使用者面臨的特殊威脅

對加密貨幣持有者來說,這次攻擊的危險性遠超一般的資料外洩。原因很簡單:加密貨幣的交易不可逆。一旦私鑰被竊取、資產被轉走,就永遠追不回來了。

熱錢包使用者的噩夢

如果你是使用 MetaMask、Trust Wallet 或其他瀏覽器擴充 / 軟體錢包的開發者,你的處境尤其危險。這些熱錢包的私鑰或 keystore 檔案通常存放在本機磁碟上,而惡意程式碼正是針對這些檔案進行掃描和竊取。

更糟糕的是,許多開發者為了在 DeFi 測試或自動化腳本中使用,會將錢包私鑰直接寫在環境變數裡(例如 PRIVATE_KEY=0x...)。這次攻擊竊取的第一個目標就是環境變數 — 你的私鑰就這樣以明文形式被傳送到了攻擊者的伺服器。

硬體錢包使用者也不能完全放心

即使你使用 Ledger 或 Trezor 等硬體錢包,如果你曾在受影響的電腦上透過瀏覽器錢包與 DApp 互動,你的 Token Approvals(代幣授權)可能已被攻擊者利用。攻擊者雖然拿不到你的私鑰,但如果你的環境中有 session token 或已授權的 DApp 連線資訊被竊取,攻擊者可能找到利用的途徑。

開發者常見危險操作

以下做法在 LiteLLM 攻擊事件中被證實是致命的:在 .env 檔案中存放錢包私鑰、在環境變數中設定助記詞、在本機保存未加密的 keystore 檔案、在 Shell 歷史中留下包含私鑰的指令。這些做法在供應鏈攻擊面前完全不堪一擊。

為什麼 ArcSign 冷錢包能倖免於難

現在讓我們回到核心問題:如果你是 ArcSign 的使用者,這次 LiteLLM 供應鏈攻擊對你的加密資產完全沒有影響。為什麼?因為 ArcSign 的安全架構從設計之初就考慮到了這種場景。

防護層 1:私鑰從未存在於電腦上

ArcSign 的私鑰儲存在 USB 離線裝置上,而非電腦的硬碟或記憶體中。惡意程式碼可以掃描你電腦上的每一個檔案、每一個環境變數、每一個資料夾 — 它找不到任何私鑰資料,因為私鑰根本不在那裡

這是冷錢包與熱錢包最本質的區別。LiteLLM 的惡意程式碼再怎麼厲害,也無法透過網路讀取一個未插入的 USB 裝置。物理隔離是任何軟體攻擊都無法跨越的鴻溝。

防護層 2:XOR 三分片加密

即使攻擊者物理取得了你的 USB 裝置(這在供應鏈攻擊中是不可能的),ArcSign 的 XOR 三分片加密技術確保私鑰永遠不以完整形式存在。三個分片分別儲存在不同位置,缺少任何一個分片都無法還原私鑰。

防護層 3:.arcsign 加密備份取代明文助記詞

傳統錢包的備份方式是抄下 12 或 24 個助記詞 — 一張紙就能毀掉你的所有資產。ArcSign 的 .arcsign 加密備份檔匯出即 AES-256 加密,不需要額外設定密碼。即使備份檔被竊取,沒有 USB 裝置上的解密金鑰,攻擊者也無法取得任何有價值的資訊。

防護層 4:mlock 記憶體保護

當 ArcSign 短暫需要在記憶體中處理私鑰時(例如簽署交易),它使用 mlock 記憶體保護技術,防止作業系統將敏感資料寫入 swap 分區。LiteLLM 的惡意程式碼即使嘗試掃描記憶體,也無法從 swap 檔案中找到私鑰殘留。

防護層 5:Token Approvals 管理

退一萬步說,即使你在不安全的環境中意外授權了可疑的智能合約,ArcSign 內建的 Token Approvals 管理功能讓你可以跨 6 條 EVM 鏈檢視並撤銷所有代幣授權。Pro 用戶支援批次撤銷,幫助你在發現威脅的第一時間止損。

ArcSign 安全架構 vs LiteLLM 攻擊向量

LiteLLM 惡意程式碼的每一個攻擊向量,都被 ArcSign 的安全架構完美阻擋:環境變數中沒有私鑰(USB 離線儲存)、本機沒有 keystore 檔案(XOR 三分片)、沒有明文助記詞可竊取(.arcsign 加密備份)、記憶體中不留痕跡(mlock 保護)。這就是「設計即安全」的力量。

錢包類型抗供應鏈攻擊能力比較

攻擊向量 瀏覽器 / 軟體熱錢包 傳統硬體錢包 ArcSign USB 冷錢包
環境變數竊取私鑰 完全暴露 — 許多開發者將私鑰存於 ENV 不適用 — 私鑰在硬體裝置中 不適用 — 私鑰在 USB 離線裝置
本機 keystore 竊取 高風險 — 加密的 keystore 可被暴力破解 不適用 不適用 — 且有 XOR 三分片保護
記憶體 / Swap 掃描 可能洩露私鑰 簽名時短暫暴露交易資訊 mlock 保護,不寫入 swap
備份檔案竊取 助記詞明文備份,一旦被偷看即可竊取 同樣依賴紙本助記詞 .arcsign 加密備份(AES-256)
Shell 歷史分析 可能含有私鑰或助記詞 可能含有操作記錄 不影響 — 私鑰未經過 Shell
惡意 Token Approvals 需第三方工具管理 需第三方工具管理 內建 Token Approvals 管理(6 鏈)
價格 免費 $79–$149 USD 免費

如果你受到影響:緊急應對 SOP

如果你在 2026 年 3 月 24 日前後安裝或更新過 LiteLLM,或者你不確定自己的環境是否受到影響,請立即執行以下步驟:

1 檢查安裝版本

執行 pip show litellm 確認你安裝的版本。如果是 v1.82.7 或 v1.82.8,你的系統已被入侵。即使版本不同,如果你在 3 月 24 日當天有執行 pip install,也應提高警覺。

2 輪換所有憑證

立即輪換所有 API 金鑰(OpenAI、Anthropic、Google Cloud 等)、雲端服務憑證(AWS、GCP、Azure)、SSH 金鑰、資料庫密碼。假設所有在該環境中可存取的憑證都已被洩露

3 保護加密資產

如果你的電腦上有任何加密錢包的私鑰、keystore 檔案或助記詞(即使是在 .env 檔案中),立即將所有資產轉移到一個全新的錢包地址 — 最好是 ArcSign 這樣的離線冷錢包。

4 撤銷可疑授權

使用 ArcSign 的 Token Approvals 功能或 Revoke.cash,檢視並撤銷所有你不認識的智能合約授權。供應鏈攻擊取得的 session 資訊可能被用來發起惡意授權。

5 清理並重建環境

升級到 LiteLLM 的安全版本,或在確認安全前暫時移除。檢查是否存在可疑的 .pth 檔案。理想情況下,在乾淨的環境中重新設定開發機器。

開發者自保指南:5 個關鍵防護措施

LiteLLM 事件給所有開發者上了血淋淋的一課。以下是我們建議的 5 個關鍵防護措施,幫助你在下一次供應鏈攻擊來臨時安然度過:

1. 將加密資產與開發環境徹底隔離

這是最重要的一條。永遠不要在開發機器的環境變數或設定檔中存放真實的錢包私鑰。使用 ArcSign 冷錢包將私鑰保存在離線 USB 裝置上,需要簽署交易時透過 WalletConnect 安全連接。開發和測試請使用專門的測試錢包和測試網路。

2. 鎖定套件版本,使用 lockfile

使用 pip freezepoetry.lock 鎖定所有相依套件的精確版本。不要使用 pip install litellm(這會安裝最新版),而是指定已知安全的版本號。Lockfile 能確保你不會意外安裝到被污染的新版本。

3. 在虛擬環境中隔離執行

為每個專案建立獨立的 Python 虛擬環境(venvconda)。即使某個虛擬環境被污染,它的影響範圍也限於該環境,不會擴散到你的全域 Python 安裝或其他專案。

4. 啟用依賴安全掃描

在 CI/CD pipeline 中整合依賴安全掃描工具(如 Snyk、Dependabot、Socket),對每次安裝的套件進行安全檢查。諷刺的是,Trivy 本身也是這類工具 — 這告訴我們不能只依賴單一安全方案,多層防禦才是王道

5. 定期審核 Token Approvals

不管你使用哪種錢包,定期檢查並撤銷不再需要的智能合約授權。ArcSign 的 Token Approvals 管理功能支援跨 6 條 EVM 鏈一站式檢視所有授權,讓你不需要逐鏈手動檢查。這是防範未知攻擊的最後一道安全網。

核心理念:設計即安全

安全不應該是事後追加的功能,而應該是架構設計的核心原則。ArcSign 從第一天就採用 USB 離線儲存 + XOR 三分片 + mlock 記憶體保護 + AES-256 加密備份的多層防禦架構。這次 LiteLLM 事件證明:當供應鏈攻擊來襲時,只有「設計即安全」的產品才能真正保護使用者。

常見問題 FAQ

Q:LiteLLM 供應鏈攻擊是怎麼發生的?

攻擊者 TeamPCP 先入侵了開源安全掃描工具 Trivy,取得 LiteLLM 的 PyPI 發布憑證。接著發布了含有惡意程式碼的 litellm v1.82.7 和 v1.82.8,利用 Python 的 .pth 檔案機制在使用者啟動 Python 時自動執行,竊取環境變數、SSH 金鑰、雲端憑證和加密錢包檔案。

Q:這次攻擊竊取了哪些敏感資料?

被竊取的資料包括:所有環境變數(含 API 金鑰和 Token)、SSH 金鑰、AWS/GCP/Azure 雲端憑證、Kubernetes 設定檔、資料庫密碼、.gitconfig 檔案、Shell 歷史記錄,以及加密貨幣錢包檔案。影響範圍極為廣泛。

Q:ArcSign 冷錢包如何保護使用者不受此類攻擊影響?

ArcSign 的私鑰儲存在離線 USB 裝置上,並透過 XOR 三分片加密保護。即使惡意軟體掃描整台電腦,也無法在硬碟或記憶體中找到任何可用的私鑰資料。此外,.arcsign 加密備份檔(AES-256)取代了傳統的明文助記詞備份,徹底杜絕了竊取備份檔後破解的可能性。

Q:如果我已經安裝了受影響的 LiteLLM 版本,該怎麼辦?

你應該假設所有在該環境中可存取的憑證都已被洩露。立即輪換所有 API 金鑰、雲端憑證和密碼;檢查並撤銷所有可疑的 Token Approvals;如果你的加密錢包私鑰以明文或可解密形式存在於該電腦上,立即將資產轉移到全新的冷錢包地址。

Q:開發者如何避免供應鏈攻擊對加密資產的威脅?

最根本的做法是將加密資產的私鑰與開發環境完全隔離。使用像 ArcSign 這樣的 USB 冷錢包,私鑰永遠不會出現在連網電腦上。此外,鎖定套件版本、使用 lockfile、啟用依賴漏洞掃描、在隔離的虛擬環境中運行不信任的套件,都是降低風險的有效措施。

別讓下一次供應鏈攻擊奪走你的加密資產

免費下載 ArcSign,私鑰離線儲存 + XOR 三分片加密 + .arcsign 加密備份 — 從架構層面徹底隔絕軟體供應鏈攻擊。

免費下載 ArcSign