当 AI 太安全,恶意软件就安全了|拒绝注入式攻击
帝亚梵的商业点评:上一次看到【社会工程学】似乎已经是初中的事情了,那时还沉迷与破解世间的难题…如今的社会工程学已经进化到关注AI的弱点了,驱动技术进步的果然还是这些不上台面的角落~ 别的不说,安全领域一定会产生专用的AI模型,这就是平衡一二类问题的必然结果。
最近,安全公司 Socket 披露了一批针对 PyPI、npm 等软件包生态的攻击样本。
其中一个细节很有意思:恶意文件 _index.js 的开头,不是直接执行的攻击代码,而是一大段 JavaScript 注释。注释不会被 Node、Bun 或浏览器执行。对程序来说,它只是空气。
但这段空气里塞满了会触发大语言模型安全拒绝机制的危险文本,如果一个 AI 安全扫描器只把文件开头交给大模型分析,模型会直接摆烂停止工作。
真正的恶意代码藏在后面,程序会跳过注释,继续向下运行。
这就是这个案例最有意思的地方:攻击者不是绕过 AI 的安全机制,而是利用了 AI 的安全机制。
过去两年,安全行业已经习惯讨论“提示注入”,攻击者把一段指令藏进网页、邮件、文档或代码注释里,诱导 AI 忽略原有规则,执行攻击者想让它做的事。
这次的逻辑更微妙。攻击者不是让模型做坏事,而是让模型不做该做的事。
如果说提示注入利用的是模型的服从性,那么这类新技巧利用的就是模型的谨慎。我们可以暂时把它称为“拒绝注入”。
恶意代码的新读者
软件供应链攻击并不新鲜。攻击者长期利用开源生态的信任结构:注册一个近似知名项目名称的包,接管维护者账号,污染依赖链,或者在安装脚本里插入凭证窃取代码。
开发者一旦安装,攻击者就可能拿到 GitHub、npm、PyPI、云服务、Docker、SSH、.env 文件、CI/CD 令牌等高价值权限。
这类攻击的目标是开发者背后的生产系统。一个维护者的凭证,可能打开一整个组织的软件发布链路;一个 CI/CD 令牌,可能让攻击者把恶意代码带进正式版本。
所以安全行业开始把越来越多自动化能力放到依赖扫描里。传统工具负责识别安装脚本、混淆字符串、异常网络连接、危险 API 调用、包名相似度、维护者行为变化;大语言模型则被引入到更上层的解释环节:阅读代码、总结行为、辅助判断恶意意图。
这原本是合理的。恶意包越来越多,安全团队不可能逐个手工拆解。AI 可以帮助分析员更快理解复杂样本,尤其是那些经过多层包装、跨语言执行、混合 Python 与 JavaScript 的攻击链。
但当 AI 成为安全管线的一环,攻击者也会开始研究 AI。
幼稚的 LLM-first 管线
必须说明,这不是一个能绕过所有安全工具的魔法。
Socket 在分析中也明确指出,YARA 规则、熵检测、AST 解析…各种传统方法仍然有效。真正脆弱的是那些过度依赖“先让大模型看一眼”的幼稚流程。
这种流程常见于团队为了提高效率,把代码文件、日志片段、软件包内容直接喂给模型,让模型判断“是否恶意”。
如果模型输出“看起来正常”,系统就降低告警优先级;如果模型拒绝,系统可能把任务标记为不可分析;如果模型只读了文件开头,后面的 payload 甚至不会进入上下文窗口。
攻击者很快适应这种流程。
他们不一定需要攻破模型本身,只要攻破模型周围的工作方式。
比如,把恶意载荷放在超长文件后部;把关键代码拆分到多个包;把可疑行为隐藏在安装钩子、.pth 启动文件、原生扩展或 CI 脚本里;再在文件开头放上一段会污染 AI 判断的文本。
过去,攻击者研究操作系统、浏览器、包管理器、云权限和开发者习惯。现在,他们还要研究模型拒绝机制、上下文窗口、扫描器截断策略、AI 分类器的阈值,以及人类分析师对 AI 结论的依赖。
当 AI 成为安全团队的一员,攻击者就会把 AI 当成安全团队里最年轻、最容易被话术影响的那个人。
软件供应链的第二层风险
这件事之所以值得写,不只是因为攻击技巧新奇,而是因为它揭示了软件供应链安全的第二层风险。
第一层风险是代码本身被污染。恶意包进入依赖树,安装脚本执行,凭证泄露,攻击者横向移动。
第二层风险是防御系统的认知流程被污染。AI 没有被要求执行恶意代码,却被诱导停止分析恶意代码。
这和现代安全工具的发展方向有关。随着代码规模、依赖数量和攻击样本爆炸,安全产品越来越像一个“自动化分析工厂”。
它们不仅检测特征,还要解释意图;不仅给出告警,还要判断优先级;不仅服务安全专家,还要服务普通开发者。
于是,谁能影响这个分析工厂的输入、排序和解释,谁就能影响组织对风险的感知。
开发、构建、测试、发布链路已经成为攻击者的重要目标。原因很简单:现代软件不是一次写完再交付,而是在持续集成、持续部署中不断被机器装配出来。攻击者只要控制其中一个环节,就可能污染下游无数用户。
AI 的加入,让这条链路多了一个认知环节。它不一定直接拥有部署权限,但它会影响人类是否相信某个包安全、某个告警重要、某次变更需要阻断。
认知环节一旦被污染,后面的决策就会偏移。



夜雨聆风