AI幻想出的代码依赖构成新型软件供应链风险

 聚焦源代码安全,网罗国内外最新资讯!

专栏·供应链安全

数字化时代,软件无处不在。软件如同社会中的“虚拟人”,已经成为支撑社会正常运转的最基本元素之一,软件的安全性问题也正在成为当今社会的根本性、基础性问题。

随着软件产业的快速发展,软件供应链也越发复杂多元,复杂的软件供应链会引入一系列的安全问题,导致信息系统的整体安全防护难度越来越大。近年来,针对软件供应链的安全攻击事件一直呈快速增长态势,造成的危害也越来越严重。

为此,我们推出“供应链安全”栏目。本栏目汇聚供应链安全资讯,分析供应链安全风险,提供缓解建议,为供应链安全保驾护航。

注:以往发布的部分供应链安全相关内容,请见文末“推荐阅读”部分。

受 LLM 驱动的代码生成工具的崛起,正在重塑开发人员编写软件的方法,并在此过程中引入新的软件供应链风险。

这些AI编程助手和一般的大语言模型一样,都有幻觉的习惯,它们会给出集成并不存在的软件包代码的建议。

去年3月和9月,安全和学术研究员就发现AI代码助手会编造程序包名称。最近开展的一项研究发现,商用模型建议的约5.2%的包是不存在的,而开源或开放可用的模型生成不存在包的比例是21.7%。当导入不存在的包时,运行该代码可导致错误发生,而恶意人员发现了这种幻觉的可利用性。

攻击者所需做的就是创建一个恶意软件包,并根据幻想出的包的名称命名它,之后将该恶意包上传到包注册表或索引如 PyPI 或 npm 进行发行。之后,当AI代码助手再次幻想出这一名称,安装依赖和执行代码的流程就会运行该恶意软件。

这种重现似乎遵循一种双峰模式——一些被幻想出的名称会在提示符再次运行时重复出现,而其它名称则会完全消失——这说明某些提示会可靠地生成同样的幻觉包。

Socket 公司提到,去年研究此主题的学术研究人员发现,运行10次相同的幻觉触发提示,会导致43%的被幻想的包每次都会重复,而39%的永远不会再次出现。

利用被幻想出的包名称是 typosquatting 的一种形式,即常用词的变体或错误拼写被用于欺骗。Python 软件基金会的自研安全开发人员 Seth Michael Larson 将其命名为“slopsquatting”,而”slop(泔水)”是针对AI模型输出的常见贬损之词。

Larson 提到,“从生态系统级别来看这个问题,我们尚处于非常早期的阶段。LLM幻觉如果没有LLM提供商提供更多的透明度,那么量化安装尝试次数是困难的甚至不可能完成的。LLM生成代码、程序包和信息的用户应当仔细检查LLM输出是否符合事实,之后才能将该信息应用于运营中,否则会对真实世界造成多种后果。”

Larson 表示,开发人员尝试安装并不存在的包,原因很多,包括错误拼写了包名称、在未检查这些名称是否已经存在于公开索引就错误地安装了内部包(依赖混淆)、包名称和模块名称之间的差异等。

Socket 公司的首席执行官 Feross Aboukhadijeh 提到,“我们正在见证开发人员编写代码方式的真正变化。AI工具正在成为很多开发人员的默认助手,‘氛围编程’即刻发生。开发人员提示AI、复制建议并继续编写。或者更糟糕的是,该AI代理自行安装所推荐的程序包。问题在于,这些代码建议通常会包括看似真实但却不存在的幻想出的包名称。我亲自见到了这一情况,将建议粘贴到终端而安装失败,或者更糟糕的情况是它并未失败,因为有人slopsquatt 这个包名称。” Aboukhadijeh 表示,这些虚假包看似非常令人信服。他提到,“当我们调查时,有时会看到看似真实的 README、虚假的GitHub 仓库、甚至是让程序包看似真实的简单的博客文章。”

尽管并未有证据表明攻击者已经开始利用这种新型攻击类型,但研究人员提醒称,幻想出的包的名称很常见、反复出现并在语法上看似是合理的,因此制造出一种能被轻易武器化的攻击面。研究人员提到,“整体而言,58%的幻想出的包会在每10轮后至少重复一次,这说明大多数幻觉并非只是随机噪音,而是可重复的关于模型如何响应某些提示的工件。这种可重复性增加了它们对于攻击者的价值,使其通过观测少量模型输出,就能更轻松地找到可行的slopsquatting 目标。”

缓解措施

缓解该风险的唯一方法是手动验证程序包名称,并永远不要假设由AI生成的代码片段中提到的程序包是真实安全的。

使用依赖扫描器、锁定文件以及哈希验证将程序包与已知的可信任版本关联,是提升安全性的一种有效方法。

这项研究表明,降低AI的“温度”设置(更少的随机性)减少幻觉,因此对于使用AI协助或“氛围编程”的用户而言,这是需要考虑的一个重要因素。

开源卫士试用地址:https://sast.qianxin.com/#/login

代码卫士试用地址:https://codesafe.qianxin.com


推荐阅读

PosionSeed:针对密币和邮件提供商的供应链攻击

GitHub Actions 供应链攻击因受陷的 SpotBugs 令牌引起

GitHub Action 被攻陷,引发连锁供应链攻击

热门 GitHub Action 遭供应链攻击

GitHub Actions 漏洞可导致攻击者投毒开发管道

有人滥用 GitHub Actions在 GitHub 服务器挖掘密币,且正在蔓延

Solana 热门 Web3.js npm库有后门,可触发软件供应链攻击

软件供应链投毒 — NPM 恶意组件分析

软件供应链投毒 — NPM 恶意组件分析(二)

在线阅读版:《2023中国软件供应链安全分析报告》全文

Npm 库XMLRPC 插入恶意代码,窃取数据部署密币矿机

Python、npm和开源生态系统中的入口点可用于发动供应链攻击

NPM恶意包假冒 “noblox.js”,攻陷 Roblox 开发系统

恶意npm包利用镜像文件隐藏后门代码

奇安信入选全球《软件成分分析全景图》代表厂商

奇安信入选全球《静态应用安全测试全景图》代表厂商

奇安信开源卫士率先通过可信开源治理工具评估

全球软件供应链安全指南和法规概览

英韩:Lazarus 黑客组织利用安全认证软件 0day 漏洞发动供应链攻击

Okta 支持系统遭攻陷,已有Cloudflare、1Password等三家客户受影响

黑客攻陷Okta发动供应链攻击,影响130多家组织机构

Okta 结束Lapsus$ 供应链事件调查,称将加强第三方管控

Okta 提醒:社工攻击正在瞄准超级管理员权限

《软件供应商手册:SBOM的生成和提供》解读

原文链接

https://www.theregister.com/2025/04/12/ai_code_suggestions_sabotage_supply_chain/

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

题图:Pexels License

本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

    觉得不错,就点个 “在看” 或 "赞” 吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值