AI 幻觉生成的代码依赖正演变为新的供应链安全风险

AI hallucinations

AI hallucinations

一种名为 “slopsquatting”(污名投机) 的新型供应链攻击方式,正在伴随生成式 AI 编程工具的广泛使用而崛起。这类攻击源于大模型在生成代码时,常“幻觉”出并不存在的依赖包名称

“Slopsquatting” 这一术语由安全研究员 Seth Larson 提出,灵感来源于 “typosquatting(拼写投机)”。后者是通过构造与热门库名称极为相似的拼写错误包名,引诱开发者误装恶意依赖。而 slopsquatting 不靠拼写错误取胜,而是利用大模型“幻想”出的虚假包名来布局钓鱼攻击。

攻击者会预先在 PyPI、npm 等软件包仓库中注册这些虚构的包名,并植入恶意代码。一旦有开发者照着 AI 推荐使用这些不存在但“看起来正常”的包名,系统就可能中招。

一篇于 2025 年 3 月发布的研究论文(论文名:we have a package for you! a comprehensive analysis of package hallucinations by code generating llms)指出,在对 57.6 万条由 AI 生成的 Python 与 JavaScript 示例代码分析后,约有 20% 推荐了并不存在的依赖包

在开源模型(如 CodeLlama、DeepSeek、WizardCoder、Mistral)中,该现象更为严重;即便是商用模型如 ChatGPT-4,仍有大约 5% 的依赖为幻觉生成,足以引发广泛安全隐患。

各大主流大模型的“幻觉包”生成率 来源:arxiv.org

各大主流大模型的“幻觉包”生成率 来源:arxiv.org

尽管研究中记录到的“幻觉依赖包”数量超过 20 万个,但其中 43% 在相似提示词中反复出现,而 58% 在 10 次生成中至少出现过一次,说明这类幻觉并非完全随机。

研究还显示:

  • • 38% 的幻觉包名称受真实包启发(如拼写相近或语义相似),

  • • 13% 属于拼写错误导致,

  • • 剩下 51% 则是模型完全杜撰出来的

虽然目前尚未发现有攻击者大规模利用该手法发动攻击,但开源网络安全公司 Socket 的研究人员指出,这类幻觉包的重复性强、结构合理且语义可信,具备高度可预测性,攻击者完全可以据此构建“slopsquatting”钓鱼攻击面。

“整体来看,在 10 次生成中,有 58% 的幻觉包被重复提及,这表明这些并非偶发错误,而是模型在面对某些提示时的固定响应模式。”
——来自Socket 的研究说明:http://socket.dev/blog/slopsquatting-how-ai-hallucinations-are-fueling-a-new-class-of-supply-chain-attacks

“而正是这种可重复性,大大提升了这些幻觉包对攻击者的价值 —— 攻击者仅需观察少量生成结果,就能精准筛选出潜在的攻击目标。”

供应链风险概览 来源:arxiv.org

供应链风险概览 来源:arxiv.org

应对这类风险的唯一有效方式是:手动核实依赖包名称绝不能轻信 AI 生成的代码片段中提到的包一定真实或安全

安全专家建议通过以下方法加强依赖管理安全:

  • • 使用依赖扫描工具(dependency scanners)

  • • 启用锁文件(lockfiles)

  • • 通过哈希值校验(hash verification)将依赖锁定为已知且可信的版本

研究还发现,降低 AI 的“温度值”(temperature),即减少随机性,可以有效减少依赖包“幻觉”的出现。因此,如果你常使用 AI 协助编程或追求灵感式写代码,这一点值得特别留意。

归根结底:所有 AI 生成的代码都应在隔离、安全的环境中测试后,再部署到实际生产环境中使用。

参考:https://www.bleepingcomputer.com/news/security/ai-hallucinated-code-dependencies-become-new-supply-chain-risk/

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值