3月24日,PyPI緊急隔離了下載量破百萬的LiteLLM庫。事情很簡單:攻擊者往1.82.7和1.82.8版本里塞了竊密代碼,用戶只要安裝——甚至不用import——憑證就自動外泄。
28種密鑰路徑被硬編碼進惡意腳本,從SSH私鑰到加密貨幣錢包,從AWS憑證到瀏覽器歷史,一網打盡。
安全研究員Simon Willison在博客中披露了完整攻擊鏈。這次供應鏈攻擊的起點頗具諷刺意味:LiteLLM團隊在CI流程中使用的安全掃描工具Trivy,本身先被攻破了。
攻擊者怎么藏的:.pth文件的陰招
Python的.pth文件本是個便利機制。它放在site-packages目錄下,Python啟動時會自動執行其中的代碼。LiteLLM 1.82.8版本的攻擊者把惡意代碼用base64編碼塞進litellm_init.pth,這意味著pip install完成的瞬間,代碼就已運行。
1.82.7版本的攻擊手法更"傳統"一些——代碼藏在proxy/proxy_server.py里,需要用戶主動import才會觸發。但1.82.8的升級堪稱"用戶體驗優化":連import這一步都省了。
解碼后的惡意腳本做了件非常系統化的臟活。它遍歷28個特定路徑,涵蓋開發者的全套數字身份:SSH密鑰、Git憑證、云服務商令牌、容器配置、數據庫密碼、加密貨幣錢包、Shell歷史記錄。Willison列出的清單讀起來像一份"如何偷光一個程序員"的操作手冊。
攻擊鏈復盤:安全工具怎么成了軟肋
時間線指向一個熟悉的劇本。LiteLLM團隊使用Trivy進行容器安全掃描,而Trivy在近期遭遇漏洞利用——攻擊者很可能借此竊取了PyPI發布憑證。
拿到憑證后,攻擊者直接向官方倉庫推送了帶毒版本。PyPI的隔離響應算快的,窗口期只有"幾個小時",但供應鏈攻擊的恐怖之處就在于此:合法渠道、官方源、正常版本號,用戶沒有任何理由懷疑。
這次事件暴露了CI/CD鏈條的脆弱性。團隊用安全工具保護自己,安全工具本身卻成為攻擊跳板。Trivy作為CNCF畢業項目、GitHub Star數超22k的知名工具,它的淪陷說明沒有絕對可信的節點。
影響范圍:誰該檢查自己的機器
如果你在過去幾天執行過pip install litellm,或者CI流程自動拉取了最新版本,需要立即排查。隔離前的1.82.7和1.82.8均已被污染,且1.82.8的.pth機制意味著"安裝即中招"。
檢查清單包括:輪換所有可能暴露的密鑰,審查~/.ssh、~/.aws等目錄的訪問記錄,查看是否有異常網絡連接。加密貨幣錢包用戶需要額外警惕——攻擊者明確瞄準了Bitcoin、Ethereum、Monero等主流幣種的路徑。
LiteLLM本身是個挺實用的項目,它給大模型API做了統一封裝,讓開發者能用同一套代碼調用OpenAI、Anthropic、Azure等幾十家服務。這種"中間層"工具一旦出問題,下游影響面極廣。
PyPI的隔離機制阻止了進一步擴散,但已經安裝的毒包不會自動消失。這引出一個尷尬的現實:包管理器的"最新版本"策略,在供應鏈攻擊面前成了雙刃劍。自動更新本意是修漏洞,這次卻主動把漏洞送進生產環境。
開發者的應對策略正在分化。有人開始鎖定依賴版本到精確號,有人轉向私有鏡像和簽名驗證,更多人則在CI里加了"安裝后掃描"步驟——用安全工具檢查安全工具,套娃式防御。
Willison在博客結尾開了個玩笑:"贊助我每月10美元,我會給你發一封精選郵件,總結當月最重要的LLM進展——付錢讓我少發點內容。"這個冷幽默放在供應鏈攻擊的語境下,莫名貼切:信息過載時代,篩選本身就成了服務。
你現在檢查CI流程了嗎?還是準備先去看看自己的~/.ssh目錄?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.