AI 圈地震:月安装量约 9500 万次的 API 网关 LiteLLM 遭投毒,波及 OpenAI / Anthropic 等用户
事件背景:LiteLLM 的关键角色
LiteLLM 是一款广受欢迎的开源 Python SDK 和 API 网关,其核心功能是统一不同大模型提供商(如 OpenAI、Anthropic、AWS Bedrock 等)的接口格式,使开发者能够以标准化的方式调用多种模型。
- 体量巨大:该工具在 Python 包管理器 PyPI 上的月下载量高达约 9500 万次,GitHub 星标数超 2.1 万,被广泛应用于企业级生产环境。
- 依赖链风险:作为底层基础设施组件,LiteLLM 能够直接接触并处理调用大模型的 API 密钥(API Keys)和用户输入的提示词(Prompts)。一旦该组件被投毒,将导致极其敏感的凭证和数据泄露。
投毒详情:拼写错误导致的供应链攻击
此次安全事件源于一种被称为“拼写错误占用”(Typosquatting)的供应链攻击手段。
- 恶意组件发布:攻击者在 PyPI 上发布了名为
litellm的恶意版本(版本号包括 1.35.10、1.35.11、1.35.12 等)。 - 域名重定向:这些恶意代码并未在本地运行,而是包含了一段关键的恶意指令。当用户在代码中导入
litellm时,该包会强制将系统中的所有 HTTPS 请求重定向至攻击者控制的域名(如https://litellm-api[.]com或http://104.247.245.224:8212)。 - 流量与密钥劫持:
- 所有本应发送给 OpenAI、Anthropic 等官方 API 端点的请求,实际上都被转发到了攻击者的服务器。
- 攻击者充当中间人(MitM),不仅能记录用户发送给 AI 的敏感业务数据,还能截获并窃取用于身份验证的 API 密钥。
受影响范围与潜在危害
由于 LiteLLM 的广泛使用,此次投毒事件的波及范围极广,后果严重。
- 直接风险:凡是安装了上述恶意版本
litellm的系统,其发送的所有 AI 请求均已“裸奔”,被攻击者完全掌控。 - 数据泄露:用户发送给 AI 的提示词可能包含个人身份信息(PII)、商业机密或专有代码,这些数据均面临泄露风险。
- 经济损失与滥用:攻击者获取 API 密钥后,可利用受害者的账户额度调用昂贵的 AI 模型,导致受害者产生巨额费用;或者利用这些密钥进行恶意活动,破坏用户声誉。
- 受害者画像:受影响的不仅是直接使用该库的开发者,还包括依赖这些开发者构建的 AI 应用程序和服务的最终用户。
处置与防范建议
针对此严重安全事件,安全社区和项目维护者已迅速做出反应。
- 移除恶意版本:PyPI 官方和 LiteLLM 维护者已迅速移除了被投毒的版本(1.35.10, 1.35.11, 1.35.12)。
- 紧急隔离:安全机构强烈建议所有使用 LiteLLM 的开发者立即检查环境,确认未安装上述恶意版本。
- 补救措施(关键步骤):
- 撤销凭证:任何曾使用过受影响版本的用户,必须立即撤销并轮换所有相关的 OpenAI、Anthropic 等服务商的 API 密钥。这不仅限于直接配置在 LiteLLM 中的密钥,也包括在相关环境中可能被暴露的密钥。
- 彻底卸载:执行
pip uninstall litellm进行卸载,并确保清除缓存。 - 升级更新:在核实安全的情况下,升级至官方修复后的版本(如 1.35.13 或更高版本)。