文章摘要
NX系统被黑客入侵,用于窃取用户钱包和凭证,引发安全警报。Semgrep提醒用户注意代码安全,并提供相关产品和服务以帮助修复漏洞,确保代码和供应链的安全性。
文章总结
安全警报 | NX 被利用窃取钱包和凭证
2025年8月27日,Semgrep发布了一则安全警报,指出流行的构建工具nx被恶意利用,导致至少1400名用户的密钥、钱包和凭证被窃取。攻击者通过nx的安装后钩子(post-install hook)执行恶意代码,窃取用户的敏感信息,并将其上传至GitHub上一个名为s1ngularity-repository的公开仓库中。
事件概述
攻击者利用nx的漏洞,窃取了用户的.npmrc文件、环境变量、API密钥等信息,并将这些数据存储在GitHub的s1ngularity-repository仓库中。恶意代码还会检查系统中是否安装了Claude Code CLI或Gemini CLI,并利用这些工具进一步扫描文件系统中的钱包和密钥信息。
受影响版本
受影响的nx版本包括:
- 21.5.0 至 21.8.0
- 20.6.0 至 20.12.0
这些版本已被从npm中移除。
应对措施
- 检查是否受影响:用户可以通过GitHub搜索
s1ngularity-repository来确认是否被攻击。 - 更新
nx:建议用户将nx更新至安全版本21.4.1。 - 删除恶意仓库:如果发现
s1ngularity-repository仓库,应立即删除。 - 轮换密钥:由于泄露的信息可能包括GitHub、npm的API密钥以及SSH密钥,建议用户立即轮换这些凭证。
- 检查系统文件:用户应检查
bashrc等系统文件中是否存在恶意指令,并予以删除。
事件时间线
- 2025年8月26日 18:00 PDT:攻击者发布了8个恶意
nx版本。 - 2025年8月26日 20:30 PDT:首次有用户报告GitHub上的可疑活动。
- 2025年8月26日 22:45 PDT:npm移除了受影响的版本。
- 2025年8月26日 23:45 PDT:
nx的维护者(nrwl)移除了被攻陷的npm账户。 - 2025年8月27日 01:00 PDT:发现更多与
@nx/相关的恶意npm包。
恶意代码工作原理
恶意代码通过nx的安装后钩子执行,利用telemetry.js运行恶意脚本。该脚本会捕获进程的环境变量,并尝试使用GitHub CLI工具获取认证令牌,用于创建s1ngularity-repository仓库。如果系统中安装了Claude Code CLI或Gemini CLI,恶意代码会调用这些工具,进一步扫描文件系统中的钱包和密钥信息,并将结果编码后上传至GitHub。
参考资料
- 官方安全公告:GitHub Advisory
- 相关GitHub Issues:#32522, #32523
关于Semgrep
Semgrep是一款领先的静态应用安全测试(SAST)工具,帮助开发团队在代码构建前发现并修复安全问题。Semgrep平台旨在减少噪音,帮助开发团队实施安全的编码实践。
保护您的代码,立即采取行动!
评论总结
评论主要围绕以下几个观点展开:
安全风险与恶意软件:
- 评论1指出,恶意软件作为攻击媒介的潜在威胁极大,能够扫描并窃取高价值数据。
- "The level of potential hostility from agents as a malware vector is really off the charts."
- 评论8提到,恶意软件利用本地LLM(大型语言模型)寻找敏感信息,绕过静态分析。
- "the truly chilling part is using a local llm to find secrets."
- 评论1指出,恶意软件作为攻击媒介的潜在威胁极大,能够扫描并窃取高价值数据。
供应链攻击与依赖管理:
- 评论5强调,开发者应谨慎添加依赖,避免供应链攻击。
- "People really need to start thinking twice when adding a new dependency."
- 评论15质疑,为何没有代码签名机制来防止此类攻击。
- "isn’t code signing designed to stop attacks exactly like this?"
- 评论5强调,开发者应谨慎添加依赖,避免供应链攻击。
AI工具的安全性与沙箱化:
- 评论13认为,AI工具应被沙箱化,不应有对用户文件系统的无限制访问。
- "Basic security 101 requirements for these tools is that they should be sandboxed."
- 评论17建议,Claude Code等工具应在虚拟机或容器中运行,以减少攻击面。
- "I would never feel comfortable running it outside of some kind of sandbox."
- 评论13认为,AI工具应被沙箱化,不应有对用户文件系统的无限制访问。
技术债务与工具滥用:
- 评论4批评,技术债务的增加和工具的滥用并未带来预期的产品改进。
- "And where are all the new incredible products we were promised?"
- 评论16讽刺了安全编码的宣传与实际安全漏洞之间的差距。
- "Secure Vibe Coding Starts Here. Wherever code is built, we keep it secure."
- 评论4批评,技术债务的增加和工具的滥用并未带来预期的产品改进。
恶意软件的技术细节:
- 评论2详细描述了恶意软件如何通过npm包传播,并利用postinstall脚本收集用户信息。
- "The compromised package contained a postinstall script that scanned user's file system."
- 评论9质疑恶意软件为何只上传文件路径而非内容,推测其可能为数据收集或概念验证。
- "Why does the payload only upload the paths to files without their actual contents?"
- 评论2详细描述了恶意软件如何通过npm包传播,并利用postinstall脚本收集用户信息。
总结:评论普遍对当前AI工具和依赖管理的安全性表示担忧,认为恶意软件和供应链攻击的风险日益增加。许多评论者建议通过沙箱化、代码签名和谨慎依赖管理来提升安全性,同时对技术债务和工具滥用的现状表示不满。