Hades降临PyPI:Miasma供应链攻击最新波次技术拆解
19个PyPI恶意包,利用Python启动时自动执行的.pth文件,下载Bun运行时执行凭证窃取器,还能反向欺骗AI安全扫描器。这不是一次独立的攻击事件,而是Miasma供应链攻击血系在PyPI生态的最新分支——代号Hades。
一、从Miasma到Hades:一条攻击血系的进化
2026年6月初,安全公司Socket披露了一个新的PyPI供应链攻击活动,代号”Hades”。如果你一直在关注今年的供应链安全事件,你会注意到一系列名字:Shai-Hulud、Miasma、现在又来了Hades。
它们不是独立的事件,而是同一个攻击组织的持续演化。Socket安全研究团队明确指出:“Hades最好被理解为Mini Shai-Hulud/Miasma血系在PyPI上的分支,而非一次独立的Python恶意软件事件。”
攻击者的核心策略没有变:滥用可信的包分发渠道,在正常包使用之前执行恶意代码,部署Bun运行时驱动的JavaScript凭证窃取器,通过GitHub进行数据外泄和传播。
但Hades在技术层面做了显著升级,让它比前辈更加危险。
二、.pth文件:Python启动时自动执行的隐蔽入口
Hades最显著的技术创新是利用Python的 .pth 文件作为恶意代码的执行入口。
在Python的 site 模块中,.pth 文件用于配置模块搜索路径。但 .pth 文件有一个不太为人所知的行为:如果文件中包含以 import 开头的行,Python会在解释器启动时自动执行该导入语句。
这意味着什么?你甚至不需要在代码中 import 那个恶意包,只要它安装在你的Python环境中,每次启动Python解释器时,恶意代码就会自动运行。
这是Python生态中npm postinstall 钩子的等价物。npm生态中的安装钩子滥用已经被Shai-Hulud和Miasma反复利用,现在同样的攻击模式扩展到了Python世界。
Hades的 .pth 文件执行后,会下载Bun JavaScript运行时(从GitHub获取独立ZIP文件),然后执行一个高度混淆的JavaScript载荷 _index.js。
为什么选择Bun而不是Node.js? 因为Bun可以作为独立的ZIP文件下载,不需要系统安装,不依赖传统的包管理器控制,也不会出现在网络代理的日志中。这使得恶意代码可以在没有Node.js安装的环境中运行复杂的JavaScript任务。
三、19个恶意包的完整画像
Hades活动涉及19个PyPI包,共37个恶意wheel制品。这些包涵盖了科学计算、任务执行框架、生物信息学工具等多个领域:
第一组:通用工具包(.pth入口)
包括 bramin、cmd2func、coolbox、dynamo-release、executor-engine、executor-http、funcdesc、magique、magique-ai、mrbios、napari-ufish、nucbox、okite、pantheon-agents、pantheon-toolsets、spateo-release、synago、ufish、uprobe。
第二组:生物信息学包(init.py入口)
包括 embiggen、ensmallen、gpsea、mflux-streamlit、nhmpy、ppkt2synergy、pyphetools。这一组使用了不同的入口方式:在包的 __init__.py 文件中嵌入混淆的单行导入钩子。
值得注意的是,这些包的领域集中在计算生物学、生物信息学和基因型-表型分析——一个拥有大量研究数据和计算资源的目标群体。攻击者的目标定位非常精准。
四、窃取了什么:凭证收割的全景
Hades窃取的凭证范围极其广泛,几乎覆盖了现代开发环境中的所有关键凭证:
代码仓库与包管理器:GitHub、npm、PyPI、RubyGems、JFrog、CircleCI的凭证和令牌
云服务提供商:AWS、GCP、Azure的访问密钥和配置
容器与编排:Docker配置文件、Kubernetes凭证、Vault令牌
AI服务:Anthropic API密钥、Claude/MCP配置文件
系统凭证:SSH密钥、Shell历史、.env文件、.npmrc文件、.pypirc文件
CI/CD管道:GitHub Actions Runner的进程内存中的组织Secrets
每一个被窃取的凭证都可能成为攻击者进入企业基础设施的新入口。一个开发者的笔记本电脑被感染,可能导致整个组织的云基础设施沦陷。
五、反AI检测:对抗安全分析器的新战场
Hades引入了一个令人担忧的新能力:针对LLM安全分析工具的提示注入攻击。
恶意代码中嵌入了明文的提示注入文本,试图欺骗基于LLM的包分析工具(如Socket的AI分析器),让模型将恶意包分类为”安全”。
这是供应链攻击与AI安全的交叉点——攻击者不仅在利用AI工具(通过投毒.cursorrules和CLAUDE.md等AI配置文件),还在主动对抗AI安全分析工具。
此外,Hades还针对12个主流AI编程助手进行了后门化处理,包括:Anthropic Claude、OpenAI Codex、Google Gemini、Microsoft Copilot、Cline、Aider、Tabby、Amazon Q、Cody、Bolt、Continue等。当开发者使用这些AI助手分析受感染的工作空间文件夹时,后门会触发代码执行。
六、“核弹”机制:凭证撤销即数据销毁
Hades中最具破坏性的功能之一是一个名为 gh-token-monitor 的后台服务。
这个服务的逻辑简单而残忍:
- 窃取开发者的GitHub Token
- 安装一个后台监控服务,持续检查该Token是否仍然有效
- 如果开发者发现Token被盗并撤销了它——监控服务检测到Token失效
- 执行
rm -rf ~/和rm -rf ~/Documents,删除用户主目录下的所有数据
这比传统的勒索软件更加阴险。勒索软件至少给你一个”付钱赎回数据”的选择。Hades的”核弹”机制将凭证撤销变成了数据销毁的触发器——你越积极地响应安全事件,损失越大。
这是典型的”防御者困境”设计:让安全响应本身成为二次伤害的来源。
七、gpt-pilot事件:CI lint规则——意外的供应链防线
在Hades活动的背景下,另一个相关事件值得特别关注。
攻击者入侵了Pythagora-io/gpt-pilot开源AI开发工具的维护者GitHub账户(用户名LeonOstrez),并强制推送了Shai-Hulud变种到main分支。恶意代码被设计为在不知情的开发者运行项目时静默激活。
但攻击被一个出人意料的”防御者”阻止了:ruff,一个Python代码格式化工具。
攻击者推送的恶意Python文件没有通过项目CI配置中的格式化和代码检查规则。攻击者尝试了两次,两次都因为注入的代码不符合项目的linting规则而失败。
StepSecurity的联合创始人兼CTO Ashish Kurmi总结道:“攻击者两次尝试让恶意代码通过CI都失败了,因为注入的Python文件与项目的格式化和linting规则不匹配。”
这个事件提供了一个重要的安全启示:严格的CI/CD代码质量标准不仅是代码质量的保障,也是供应链安全的意外防线。 那些看起来”烦人”的lint规则——行长度限制、import顺序、类型标注要求——在不经意间阻止了一次供应链攻击。
八、防御清单:开发者应该做什么
面对Hades及整个Miasma攻击血系,开发者和安全团队需要采取以下措施:
1. 包依赖审计
- 审查所有Python依赖,与上述恶意包清单比对
- 使用
pip list或pipdeptree检查已安装的包 - 特别关注
site-packages目录下的.pth文件
2. 监控Bun运行时下载
- 在网络代理中监控从GitHub下载Bun ZIP文件的行为
- 检查系统中是否存在非预期的Bun安装
3. AI配置文件安全
- 审查项目中的
.cursorrules、CLAUDE.md、.github/copilot等AI配置文件 - 对PR中的AI配置文件修改进行额外审查
- 不要盲目信任AI工具对代码的分析结果
4. 凭证轮换
- 如果使用了上述任何恶意包,立即轮换所有相关凭证
- 包括GitHub Token、SSH密钥、云服务访问密钥、.env文件中的所有密钥
- 注意:轮换GitHub Token前,先检查是否有可疑的后台服务运行
5. 加强CI/CD安全
- 在CI管道中加入严格的linting和格式化检查
- 使用依赖锁定文件(requirements.txt/poetry.lock)
- 配置
pip install的--no-cache-dir和哈希校验
6. 使用包安全工具
- Socket、Snyk、Semgrep等工具已更新检测规则
- 考虑在CI中加入自动化包安全扫描步骤
九、结语:供应链攻击的军备竞赛正在加速
从Shai-Hulud到Miasma再到Hades,我们看到的是一个攻击组织在持续迭代进化。每一波攻击都在前一波的基础上增加了新的能力——新的入口方式、新的规避技术、新的破坏机制。
更令人担忧的是,攻击者已经开始将AI工具和AI安全分析器纳入了攻击目标。从投毒AI编程助手的配置文件,到直接对AI分析器进行提示注入攻击,供应链攻击的战场正在扩展到AI领域。
Cloudsmith的安全分析师总结得好:“Miasma活动证明,拥有签名密钥和认证的维护者账户不再是安全的绝对保证。当上游注册表和代码仓库被入侵时,公开代码成了最简单、最直接的被黑方式之一。”
在开源生态中,信任是基础设施。但当信任本身成为攻击面时,我们需要重新思考如何构建和维护这种信任。严格的CI规则、包安全审计、AI配置文件的安全审查——这些不再只是”最佳实践”,而是开发者日常安全的必需品。
参考资料: – Socket Security, “Shai-Hulud Descends to Hades: Miasma PyPI Wave”, June 2026 – StepSecurity, “The Hades Campaign: PyPI Packages”, June 2026 – StepSecurity, “Pythagora-io/gpt-pilot Compromised on GitHub: Shai-Hulud Credential Stealer Blocked by Python Linter”, June 2026 – Snyk, “node-gyp Supply Chain Compromise: Self-Propagating npm Worm”, June 2026 – Cloudsmith, “Miasma Worm’s Path of Destruction”, June 2026
本文由点滴安全(www.dripsafe.cn)技术团队出品,关注前沿网络安全技术与实战防御。