返回首页

LiteLLM供应链攻击事件全解析:AI基础设施成为攻击者的首选目标

供应链攻击事件全解析:基础设施成为攻击者的首选目标

hero

2026年3月24日,几乎支撑了整个生态的包LiteLLM遭遇供应链攻击。攻击者TeamPCP通过Trivy安全扫描工具的凭据泄露链,入侵了LiteLLM的PyPI发布流程,投毒了1.82.7和1.82.8两个版本。恶意代码窃取了环境变量中的所有 密钥,影响范围覆盖数百万个AI应用实例。

攻击链还原:从Trivy到LiteLLM的级联入侵

section

LiteLLM供应链攻击的精妙之处在于它利用了安全工具本身的信任链。攻击者TeamPCP首先入侵了Aqua 的Trivy(一款广泛使用的容器安全扫描工具)的构建流程。Trivy在管道中运行时会接触大量凭据——而LiteLLM恰好在其自身的构建流程中使用Trivy进行安全扫描。

当LiteLLM的自动化CI/CD系统运行Trivy扫描时,被污染的Trivy组件将构建管道中的凭据外泄。TeamPCP利用这些凭据获取了LiteLLM维护者的PyPI发布权限,然后在3月24日凌晨发布了两个恶意版本。

时间线 事件
3月初 TeamPCP入侵Trivy构建流程
3月23日 攻击者获取LiteLLM维护者的PyPI凭据
3月24日 ~12:00 UTC 恶意版本1.82.7和1.82.8发布到PyPI
3月24日 ~14:00 UTC PyPI紧急隔离litellm项目,删除恶意版本
3月24日 ~16:00 UTC LiteLLM团队发布1.82.9修复版本
3月25日 Aqua Security发布Trivy安全公告

数据来源:Comet, Hugging Face Blog, Medium, Aviatrix

恶意代码分析:API密钥窃取机制

投毒版本中的恶意代码经过精心伪装,主要执行以下操作:

  1. 环境变量扫描:遍历所有以OPENAI_ANTHROPIC_AZURE_COHERE_GOOGLE_AWS_等前缀开头的环境变量,这些正是LLM API密钥的标准命名约定
  2. 配置文件读取:读取~/.litellm/~/./等目录下的配置文件,提取其中存储的API密钥和token
  3. 数据外泄:将窃取的密钥通过HTTPS POST请求发送到攻击者控制的C2服务器(域名在恶意版本发布后数小时内被注册)
  4. 持久化:在某些场景下,恶意代码会修改sitecustomize.py以在每次Python启动时执行

安全研究人员估计,受影响的API密钥数量达到9700万个请求级别——因为LiteLLM在生产环境中处理的API调用量极大,许多企业将其作为所有LLM调用的统一网关。

# 检查是否安装了受影响版本
pip show litellm | grep Version
# 如果显示 1.82.7 或 1.82.8,立即卸载

# 卸载恶意版本
pip uninstall litellm -y

# 安装安全版本
pip install litellm>=1.82.9

# 检查环境变量是否可能已泄露
env | grep -iE "(OPENAI||AZURE|||AWS).*KEY"

影响范围:谁在使用LiteLLM

LiteLLM是Python生态中最流行的LLM API统一接口库,支持超过100种LLM提供商。它的核心功能是将不同厂商的API统一为OpenAI兼容格式。根据PyPI下载统计,LiteLLM每周下载量超过200万次。

受影响最严重的群体包括:

用户类型 影响程度 原因
AI 开发者 Agent框架普遍依赖LiteLLM路由LLM调用
企业AI平台 将LiteLLM作为内部LLM网关,集中管理密钥
应用 许多RAG管道使用LiteLLM调用Embedding模型
独立开发者 直接pip install litellm,可能未锁定版本
CI/CD管道 自动化部署可能在投毒窗口期拉取了恶意版本

LiteLLM的使用场景决定了这个供应链攻击的影响呈指数级放大——一个被窃取的企业API密钥可能暴露整个组织的AI使用模式、成本数据和业务逻辑。

检测与应急响应

如果你的系统在2026年3月23日至24日期间执行过pip install litellmpip install -r requirements.txt(其中包含litellm依赖),应立即执行以下检查:

# 1. 检查已安装版本
pip list | grep litellm

# 2. 检查pip缓存中是否有恶意版本
find ~/.cache/pip -name "litellm-1.82.*" 2>/dev/null

# 3. 检查网络连接日志()
journalctl -u NetworkManager | grep -i "202[6]-03-24" | grep -vE "(google|cloudflare|aws)"

# 4. 检查sitecustomize.py是否被修改
python3 -c "import site; print(site.ENABLE_USER_SITE)"
cat $(python3 -c "import site; print(site.getusersitepackages())")/sitecustomize.py 2>/dev/null

# 5. 如果确认受影响,轮换所有LLM API密钥
# OpenAI: https://platform.openai.com/api-keys
# Anthropic: https://console.anthropic.com/settings/keys
# Azure OpenAI: https://portal.azure.com -> Cognitive Services

供应链安全的系统性反思

LiteLLM事件暴露了开源供应链安全的三个结构性问题:

第一,安全工具本身可能成为攻击向量。 Trivy作为安全扫描工具,其构建流程本应是最安全的。但攻击者正是利用了这种信任——CI/CD管道中的安全工具拥有高权限访问,一旦被入侵,危害远超普通依赖包。

第二,PyPI缺乏强制性的发布签名机制。 虽然PyPI支持2FA和可信发布者(Trusted Publishers),但许多维护者仍未启用。LiteLLM事件后,PyPI宣布将在2026年底前强制要求所有高下载量项目启用2FA。

第三,AI基础设施的供应链风险被严重低估。 生态系统的依赖链极其复杂——一个典型的AI应用可能依赖200+个Python包,其中许多来自个人维护者。每个包都是潜在的攻击面。

# 防御措施:锁定依赖版本
# 1. 使用pip freeze生成精确版本锁定文件
pip freeze > requirements.lock

# 2. 使用pip-audit检查已知漏洞
pip install pip-audit
pip-audit --fix

# 3. 使用hash校验确保包完整性
pip install --require-hashes -r requirements.txt

# 4. 配置pip只从可信源安装
pip config set global.index-url https://pypi.org/simple
pip config set global.trusted-host pypi.org

开源安全加固建议

针对LiteLLM事件及类似的AI供应链攻击,以下是企业级防御策略:

  1. 依赖锁定:所有生产环境必须使用requirements.lockpoetry.lock,精确锁定每个包的版本和哈希值
  2. SBOM管理:维护软件物料清单(Software Bill of Materials),在漏洞披露时快速定位受影响组件
  3. 发布监控:使用Socket.dev、Snyk或Dependabot监控依赖包的异常发布行为
  4. 网络隔离:LLM API密钥应通过密钥管理系统(Vault、AWS Secrets Manager)注入,而非环境变量硬编码
  5. 零信任API调用:为每个LLM API密钥设置最小权限范围和速率限制,即使泄露也能控制损失
  6. CI/CD安全:为CI/CD管道中的每个工具维护独立的凭据,避免级联泄露

数据来源与参考文献

  1. Comet. "LiteLLM Supply Chain Attack: What Happened." comet.com/site/blog, March 2026.
  2. Hugging Face. "How the LiteLLM PyPI Supply Chain Attack Happened." huggingface.co/blog, March 2026.
  3. Aviatrix. "LiteLLM Supply Chain Compromise Exposes Risks." aviatrix.ai/threat-, 2026.
  4. Medium (Krishnendu Bhowmick). "They Poisoned the Package That Holds All Your AI Keys." medium.com, 2026.
  5. Aqua Security. "Trivy Security Advisory: Build Pipeline Compromise." aquasec.com, March 2026.
  6. PyPI. "Security Incident Report: litellm Project." pypi.org, March 2026.

更新时间:2026-06-18

评论