Hades PyPI供应链攻击:19个恶意包窃取凭据深度分析与防御(2026)
概述
2026年6月,安全研究人员发现了一个名为Hades的攻击组织对Python包索引(PyPI)发起了大规模供应链攻击。攻击者通过Typosquatting(拼写错误欺骗)和依赖混淆(Dependency Confusion)技术,向PyPI仓库投放了至少19个恶意Python包。这些恶意包在安装时会自动运行Bun运行时凭据窃取器(Credential Stealer),窃取开发者的AWS密钥、GitHub Token、npm Token等敏感凭据。此次攻击的精密程度远超以往的PyPI投毒事件,显示了供应链攻击正在变得越来越专业化和自动化。
技术原理
攻击手法分析
1. Typosquatting(拼写欺骗)
攻击者注册了与流行包名称相似的恶意包:
requests2→ 模仿requestspython-dateutil2→ 模仿python-dateutilcolorama2→ 模仿colorama
2. 恶意载荷分析
# 恶意setup.py中的混淆代码
import os, base64
exec(base64.b64decode(
'aW1wb3J0IHVybGxpYi5yZXF1ZXN0OyBvcy5zeXN0ZW0o...'))
3. Bun凭据窃取器
攻击者使用Bun运行时(而非Node.js)执行窃取脚本,原因:
- Bun的二进制文件不被传统杀毒软件检测
- Bun可以直接执行TypeScript,无需编译
- Bun的网络请求比Node.js更快
4. 窃取目标
~/.aws/credentials- AWS访问密钥~/.gitconfig- Git凭据~/.npmrc- npm Token~/.ssh/id_rsa- SSH私钥- 浏览器Cookie和密码数据库
实战指南
检测恶意包
# 检查已安装的包是否包含恶意包
pip list | grep -iE "(requests2|colorama2|dateutil2)"
# 使用pip-audit检查依赖安全性
pip install pip-audit
pip-audit
# 使用Safety检查
pip install safety
safety check
# 检查是否有异常的postinstall脚本
pip show <suspicious-package>
清除恶意包
# 卸载所有可疑包
pip uninstall -y <package-name>
# 清理可能被窃取的凭据
# 1. 轮换AWS密钥
aws iam create-access-key --user-name <user>
aws iam delete-access-key --user-name <user> --access-key-id <old-key>
# 2. 轮换GitHub Token
# GitHub Settings → Developer Settings → Personal Access Tokens → Delete old, Create new
# 3. 更改SSH密钥
ssh-keygen -t ed25519 -C "[email protected]"
预防措施
# 使用pip的hash验证模式
pip install --require-hashes -r requirements.txt
# 配置私有PyPI镜像
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
# 使用依赖锁定
pip freeze > requirements.txt
# 或使用poetry/pdm
poetry lock
变现方式
供应链安全变现路径
1. 供应链安全审计
- 企业依赖链安全审查:¥40,000-150,000
- 包仓库安全评估:¥30,000-80,000
2. 安全工具开发
- 私有包仓库搭建(DevPaaS):月费¥5,000-20,000
- 依赖链安全扫描工具:¥50,000-200,000/年
- 软件成分分析(SCA)工具
3. 安全培训
- 软件供应链安全课程:¥15,000-40,000/期
- 开发者安全意识培训:¥10,000-20,000/场
4. 应急响应
- 供应链攻击应急响应:¥50,000-200,000/次
- 凭据泄露应急处理:¥20,000-80,000/次
学习资源
学习资源
来源: https://thehackernews.com/2026/06/hades-pypi-attack-19-packages-poisoned.html
发布时间: 2026-06-10
严重程度: 高危 | CVSS: 8.6
评论