Python的人工智能库供应链被黑客攻击,可盗窃秘钥等核心信息,对软件公司来说安全很重要,对所有人来说,测试更重要.
软件恐怖事件:litellm PyPI 供应链攻击。
只需简单的 `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 编写这段攻击代码,那么这次攻击可能数天甚至数周都无法被发现。
像这样的供应链攻击可以说是现代软件中最可怕的事情。每次安装依赖项时,都可能在依赖树的深处引入一个被篡改的软件包。对于可能拥有大量依赖项的大型项目来说,这种风险尤其高。每次攻击中被窃取的凭证可以被用来控制更多账户并入侵更多软件包。
传统的软件工程会让你相信依赖关系是好事(我们用砖块建造金字塔),但我认为这需要重新评估,这也是我越来越反感依赖关系的原因,我更喜欢在足够简单和可行的情况下使用 LLM 来“窃取”功能。