LLM驱动的代码生成工具的兴起正在重塑开发人员如何编写软件,并在此过程中为软件供应链引入新风险。
这些AI编码助手(如大型语言模型)都有幻觉的习惯。他们建议使用不存在的软件包的代码。
正如我们指出的在三月和九月去年,安全和学术研究人员发现,AI代码助手发明包装名称。在最近的一项研究中,研究人员发现,不存在大约5.2%的商业模型包装建议,而开源模型的21.7%。
在导入不存在的软件包时,运行该代码应导致错误。但是,不幸的人已经意识到,他们可以为自己的利益劫持幻觉。
所需要做的就是在幻觉的软件包名称下创建一个恶意软件包,然后将坏包上传到包装注册表或PYPI或NPM等索引以进行分发。此后,当AI代码助手重新使用选拔的名称时,安装依赖关系和执行代码的过程将运行恶意软件。
复发似乎遵循双峰模式 - 当提示重新运行时,有些幻觉的名称反复出现,而另一些则完全消失 - 建议某些提示可靠地产生相同的幻影包装。
作为著名的去年探索该学科的学术研究人员最近发现,重新运行同样的幻觉触发及时的迅速,导致43%的幻觉包裹每次都重复,而39%的幻觉措施从未重新出现。
利用幻觉的包装名称表示打字,使用常见术语的变化或拼写错误用于欺骗人们。Python软件基金会的安全开发人员Seth Michael Larson称其为“ Slopsquatting”“ Slop”是AI模型输出的常见贬义。
拉尔森告诉寄存器。“由于LLM幻觉,LLM提供商没有更高的透明度,LLM生成的代码,软件包和信息的用户应对现实进行双重检查,然后再进行现实情况,因此很难量化发生了多少次尝试的安装。LLM提供的代码,包装和信息应该对现实进行双重检查,然后再将任何信息投入运行,否则可能会有现实情况。”
拉尔森说,开发人员可能会尝试安装不存在的软件包,包括误解软件包名称,不正确安装内部软件包,而无需检查以查看这些名称是否已经存在于公共索引中(依赖性困惑),软件包名称和模块名称的差异等。
安全公司Socket的首席执行官Feross Aboukhadijeh告诉说:“我们看到了开发人员如何编写代码的真正转变。”寄存器。“随着AI工具成为许多人的默认助手,”氛围编码'正在不断发生。开发人员提示AI,复制建议并继续前进。或更糟糕的是,AI代理只是继续安装推荐的软件包本身。
问题是,这些代码建议通常包括听起来真实但不存在的幻觉包装名称
“问题是,这些代码建议通常包括听起来真实但不存在的幻觉包名称。我亲眼目睹了这一点。您将其粘贴到您的终端中,并且安装失败了,或更糟糕的是,它不会失败,因为有人slop splep squatt squatt squatt thit turn thit package name。”
阿布哈迪耶(Aboukhadijeh)说,这些假套件看起来非常令人信服。
他说:“当我们进行调查时,有时我们会发现看起来很现实的看书,伪造的github存储库,甚至使该软件包显得真实的粗略博客。”
我们生活在什么世界中:AI幻觉的包裹经过了另一个AI的验证和橡胶stamp,它太渴望了
“更糟糕的是,当您谷歌搜索这些斜坡式的包装名称之一时,您通常会从Google本身获得AI生成的摘要,自信地赞扬该包装,称其有用,稳定,良好。但是,它只是使包装的包装既掩盖了,否则没有怀疑,没有一个不错的上下文。
“我们生活的世界:AI幻觉的包裹得到了另一个AI的验证和橡胶stamp,而另一个AI渴望有所帮助。”
Aboukhadijeh指出一月份的事件其中Google的AI概述响应了AI生成的文本搜索查询,建议使用恶意的NPM软件包 @async-Mutex/Mutex,它正在打字说合法的软件包async-Mutex。
他还指出,最近使用“ _iain”这个名字的威胁演员在深色网络论坛上出版了一本剧本,详细介绍了如何使用恶意NPM软件包构建基于区块链的僵尸网络。
Aboukhadijeh解释说,_iain自动创建了成千上万的打字套件(许多针对的是加密库库),甚至使用ChatGpt来生成实际包装名称的真实变体。他分享了其他视频教程,从而使其他型号启动了涉及式的机器,从而使其他型号启动了涉及型号的机器人,可以通过涉及派对的方式来实施一定的努力,从而可以通过一定的手机来进行一定的机器,从而可以通过一定的手机来攻击。AI加速软件供应链攻击。”
拉尔森说,Python软件基金会正在不断努力使包装滥用更加困难,并增加了此类工作需要时间和资源。
“ Alpha-Omega赞助了我们的PYPI安全与保障工程师Mike Fiedler的工作,以降低PYPI上恶意软件的风险,例如通过实施程序化API来报告恶意软件,与现有的恶意软件报告团队合作,并实施更好的检测,以实施更好的检测,以实施最佳项目,”他说。”
“ PYPI和软件包管理人员的使用者通常应该检查他们安装的软件包是现有的众所周知的包裹,名称中没有错别字,并且在安装安装之前已经对包装的内容进行了审查。甚至更好的是,组织可以反映其组织中PYPI的一部分,以便为开发人员提供更多的控制包。”®