软件恐怖事件:litellm PyPI 供应链攻击

J
AI+留学专家菊叔
AIhackingai黑客

软件恐怖事件:litellm PyPI 供应链攻击。

很多人多liteLLM不熟悉,但是大家应该知道,LLM是我们当前生产性使用的AI的主要模型架构,即所谓大语言模型(large language model)。

我们在使用AI大模型的时候,并不是安装软件,而是通过一个大模型供应商提供的接口(API)和自己的钥匙(key),来访问和与大模型交互。

而liteLLM则是一个大模型接口(API)的代理(proxy)或者说路由器(router)。你可以把openai,google,kimi,阿里,等各种大模型服务商的api都统一接入liteLLM,再由它提供一个单一的管理界面和中转。

 

只需简单的 pip install litellm 即可窃取 SSH 密钥、AWS/GCP/Azure 凭据、Kubernetes 配置、git 凭据、环境变量(所有 API 密钥)、shell 历史记录、加密钱包、SSL 私钥、CI/CD 密钥、数据库密码。

LiteLLM 本身每月下载量高达 9700 万次,这已经非常糟糕了,但更糟糕的是,这种风险会蔓延到任何依赖于 LiteLLM 的项目。例如,如果你执行了 pip install dspy(它依赖于 LiteLLM >= 1.64 0) ,那么你的系统也会被攻破。任何其他依赖于 LiteLLM 的大型项目都会面临同样的风险。

据我所知,被植入恶意代码的版本只运行了不到一个小时。这次攻击存在一个漏洞,而这个漏洞正是导致攻击被发现的原因——Callum McMahon 在 Cursor 中使用了一个 MCP 插件,该插件引入了 litellm 作为传递依赖项。当 litellm 1.82.8 安装后,他们的机器内存耗尽并崩溃。因此,如果攻击者没有使用 vibe 编写这段攻击代码,那么这次攻击可能数天甚至数周都无法被发现。

这个地方更加吊诡和讽刺,就是AI vibe编程,不光被用来生产屎山代码,而且也被用来进行黑客活动。

像这样的供应链攻击可以说是现代软件中最可怕的事情。每次安装依赖项时,都可能在依赖树的深处引入一个被篡改的软件包。对于可能拥有大量依赖项的大型项目来说,这种风险尤其高。每次攻击中被窃取的凭证可以被用来控制更多账户并入侵更多软件包。

传统的软件工程会让你相信依赖关系是好事(我们用砖块建造金字塔),但我认为这需要重新评估,这也是我越来越反感依赖关系的原因,我更喜欢在足够简单和可行的情况下使用 LLM 来“窃取”功能。

点击转发,手留余香