返回首页

PyPI LiteLLM Telnyx 攻击:供应链保护

PSF 关于通过 Trivy 的 litellm 和 telnyx 泄露的报告:恶意版本窃取秘密并确保持久性。推荐包括 P3D 冷却期、带 hashes 的 lock-files 和 OSS 项目保护的 trusted publishers。

恶意 LiteLLM 和 Telnyx 版本:如何保护自己
Advertisement 728x90

PyPI供应链攻击:LiteLLM与Telnyx案例及实用建议

攻击者通过泄露Trivy依赖中的API令牌,入侵了litellm和telnyx软件包。2026年3月19日,恶意版本被发布:litellm 1.82.7和1.82.8,telnyx 4.87.0和4.87.2。代码在导入模块时激活,扫描环境中的密钥,并将数据外泄到远程服务器。

litellm中的恶意负载收集SSH密钥、Git/Docker凭证、.env文件、K8s令牌、数据库密码、LDAP配置、shell历史记录和加密密钥。它尝试从元数据服务器和AWS Secrets Manager提取云令牌。数据被发送到models.litellm.cloud。为保持持久性,它创建名为“系统遥测服务”的SystemD服务或从checkmarx.zone加载指令的K8s pod。

在telnyx中,_client.py中的恶意代码从托管在8.42.209.203的WAV文件加载阶段。在Windows上,它将msbuild.exe放入启动文件夹以实现自动启动;在其他操作系统上,它使用Python脚本。版本4.87.1包含一个阻止执行的拼写错误。通信通过加密密钥与TeamPCP关联。

Google AdInline article slot

开发人员通过轮换令牌、删除发布并在PyPI上实施可信发布者来响应。

针对流行开源软件包的攻击特征

与典型的PyPI攻击(如域名抢注或新软件包)不同,这里恶意代码被注入到现有高流量项目中。攻击链:入侵仓库 → 窃取PyPI/GitHub令牌 → 发布恶意软件 → 从开发机器收集凭证 → 重复入侵。

攻击期间,LiteLLM被下载超过11.9万次。约40-50%的安装未指定版本(最新版),约1700次安装/分钟。PyPI响应时间:

Google AdInline article slot
  • LiteLLM:从发布到隔离 — 2小时32分钟(13个用户报告)。
  • Telnyx:3小时42分钟(可信用户自动隔离)。

PyPI针对恶意软件的防护措施

每天新增约700-800个项目。PyPI依赖社区通过“报告为恶意”进行扫描和报告。此功能于2024年引入,加速了隔离过程。可信发布者支持自动化响应。

建议:依赖冷却期

延迟安装新版本为恶意软件检测提供时间。格式:RFC 3339(P3D = 3天)。

  • uv:全局在~/.config/uv/uv.toml或pyproject.toml中:
[tool.uv]
exclude-newer = "P3D"
  • pip v26.1+:在pip.conf中:
[install]
uploaded-prior-to = P3D
  • pip 26.0(绝对日期):
python -m pip install --uploaded-prior-to=$(date -d '-3days' -Idate) package

安全补丁的变通方案:--uploaded-prior-to=P0D或使用Dependabot/Renovate(忽略延迟)。

Google AdInline article slot

锁定依赖以确保可重现性

带哈希的锁定文件可防止重新安装时代码被替换。

| 工具 | 命令 | 格式 |

|------------|---------|--------|

| uv | uv lock | uv.lock |

| pip-tools | pip-compile --generate-hashes | requirements.txt |

| pipenv | pipenv lock | Pipfile.lock |

pip freeze不足 — 缺少哈希。pip lock(pylock.toml)是预期方案。

保护开源项目

  • 在PyPI上实施可信发布者。
  • 为PyPI/GitHub使用双因素认证+硬件密钥。
  • 限制令牌权限(范围)。
  • 通过webhook监控发布。
  • 使用Trivy/Grype扫描仓库。

对于开发机器:

  • 隔离受感染环境。
  • 轮换所有凭证。
  • 检查持久性(SystemD、K8s pods、启动文件夹)。
  • 分析流量/日志。

关键要点

  • 攻击利用真实开源软件包;验证新版本。
  • P3D冷却期 + 锁定文件 = 基本防护。
  • 隔离前LiteLLM安装超11.9万次;最新版有风险。
  • 外泄包括云元数据和Secrets Manager。
  • 可信发布者和社区加速PyPI响应。

— Editorial Team

Advertisement 728x90

继续阅读