軟體開發界的噩夢真實上演了。知名 AI 底層相依性函式庫 LiteLLM 的 PyPI 發布版本剛剛遭遇了嚴重的供應鏈攻擊。AI 大牛 Andrej Karpathy 對此極度震驚,直言這是現代軟體中最可怕的事情。
破壞力有多驚人?只要你在終端機敲下一句極其常規的安裝指令 pip install litellm,你的核心底牌就會被徹底看光。
攻擊者會直接捲走機器上能找到的所有關鍵憑證,包括 SSH 金鑰、各大雲端服務供應商(AWS、GCP、Azure)憑證、Kubernetes 設定、Git 憑證、所有包含 API 金鑰的環境變數、Shell 歷史記錄、加密貨幣錢包、SSL 私鑰、CI/CD 機密檔案以及資料庫密碼。
這一切的罪魁禍首是 LiteLLM 1.82.8 版本。該版本被植入了一個帶有 Base64 編碼指令的特殊檔案 litellm_init.pth。它不僅能把上述機密發送到遠端伺服器,甚至還具備自我複製的能力。
要知道,LiteLLM 每月的下載量高達 9,700 萬次,這本身就夠驚悚了。但更致命的是病毒般的傳染性。如果你安裝了底層相依 LiteLLM 的其他大型專案,同樣會立刻中招。比如當你試圖安裝要求 LiteLLM 版本大於等於 1.64.0 的 DSPy 函式庫時,你的電腦就已經被攻破了。
而且,事情正在向更壞的方向發展。有人在 GitHub 上公開提交了相關的漏洞問題,但隨即被專案擁有者以不打算處理為由直接關閉。這幾乎可以認定,專案維護者的帳號已經完全淪陷。
萬幸的是,這個帶毒版本上線不到一小時就被發現了。而發現的過程充滿戲劇性,完全是因為攻擊者的程式碼寫出了 Bug。
當時,開發者 Callum McMahon 正在 Cursor 編輯器裡使用 MCP 外掛,這個外掛在底層間接地拉取了 LiteLLM。結果 1.82.8 版本一安裝,他的電腦直接記憶體耗盡並徹底當機。如果不是攻擊者寫出了這種導致系統當機的極差程式碼,這次高危攻擊恐怕會潛伏數天甚至數週而不被察覺。
在 Karpathy 看來,這種供應鏈攻擊是極度危險的。你每次安裝任何相依性項目,都可能會在看不見的深層相依性樹中拉入一個帶毒的程式碼套件。這對於擁有海量相依性的大型專案來說風險極高。而且,駭客透過攻擊竊取到的憑證,又會被用來接管更多帳號,進而攻陷更多的程式碼套件,形成惡性循環。
面對這種現狀,Karpathy 的軟體工程觀念正在發生改變。傳統古典軟體工程觀念認為相依性函式庫是好東西,開發者就像在使用現成的磚塊建造金字塔。但他現在必須重新評估這種做法,並且越來越排斥使用外部相依性項目。他目前的態度是,只要功能足夠簡單且條件允許,他更傾向於直接用大語言模型把功能程式碼抓過來自己用,以此規避可怕的安全風險。