最近安全研究员指出了一个新的软件供应链威胁——“Slopsquatting”(假库占位攻击),听起来是不是很新鲜?其实,它是指攻击者利用 AI 生成代码中的虚构库名 来传播恶意代码的手段!现在,AI 编程工具像 ChatGPT、CodeLlama 等已经成了很多程序员的小助手,但这些工具也可能无意间“坑人”。
什么是“Slopsquatting”?
“Slopsquatting”这个术语由安全研究员 Seth Larson 提出,是一种利用 AI 代码生成漏洞的新型攻击方式。简单来说就是,AI 有时候会凭空“编造”一些库的名字,这些库听起来很真实,但实际上根本不存在!而攻击者会抓住这个机会,在代码库(比如 PyPI 或 npm)中注册这些虚构的库,然后上传恶意代码。一旦开发者不加验证地安装了这些库,恶意代码就这样悄悄混进了项目里。
数据惊人:五分之一的 AI 代码有“假库”!
一项最新研究(2025 年 3 月发布)分析了 576,000 个 Python 和 JavaScript 代码片段,发现 20% 的代码中存在虚构的库!
ChatGPT-4 的出错率为 5%。
开源模型如 DeepSeek、WizardCoder、Mistral 的出错率更高!
研究还显示,这些虚构库的名字非常“合理”,甚至 58% 的假库名在类似查询中重复出现。这意味着,攻击者可以利用 AI 的“可预测性”提前抢注这些名字,进一步放大风险。
为什么开发者容易“中招”?
名字逼真:研究发现,38% 的假库名和真实库非常相似,13% 是拼写错误,剩下的完全是捏造的,但看起来却都很可信。
自动化工具更危险:很多开发者习惯直接复制粘贴 AI 生成的代码,甚至用脚本自动处理,根本没意识到潜在的风险。
如何防止“Slopsquatting”?
虽然这个问题听着挺头疼,但其实只要多加注意,完全可以避免踩坑!以下是安全专家的建议:
1.不要盲目安装库:听过的库不一定真的存在,先去官方文档或代码库查一下再说。
2.使用版本锁定文件(lockfiles):确保项目依赖是明确的版本,避免拉取陌生内容。
3.启用哈希验证:核对库的完整性,避免恶意修改。
4.隔离测试环境:AI 生成的代码先在沙盒环境中跑跑看,别直接用到实际项目里。
5.降低 AI 的“温度参数”:生成代码时,减少随机性,降低出错概率。
写给开发者的最后一句话
AI 工具的确让开发变得更轻松,但别忘了它也是“人工智能”,不是“完美智能”!对于 AI 生成的代码,我们一定要保持审慎,尤其是涉及第三方依赖时。毕竟,代码出问题不仅可能导致项目崩溃,更可能让攻击者“钻了空子”。
所以,用 AI 的时候,一定要带上自己的“开发者大脑”哦!