电话

18600577194

当前位置: 首页 > 软件开发 > 软件开发

北京软件开发公司揭示软件开发中的AI威胁

标签: 北京软件开发公司 2025-05-21 

研究人员最近完成了迄今为止对使用AI模型开发软件的潜在风险最全面的研究之一。在一篇新论文中,他们展示了特定类型的错误如何对使用AI帮助编写代码的软件开发工程师构成严重威胁。

乔·斯普拉肯(Joe Spracklen)是德克萨斯大学圣安东尼奥分校(UTSA)计算机科学专业的博士生,他领导了一项关于大型语言模型(LLMs)频繁生成不安全代码的研究。他的团队论文已被2025年USENIX安全研讨会接受发表,该研讨会是网络安全和隐私领域的顶级会议。

北京软件开发公司揭示软件开发中的AI威胁

这一多机构合作包括来自德克萨斯大学圣安东尼奥分校的三名额外研究人员:博士生A.H.M. Nazmus Sakib,博士后研究员Raveen Wijewickrama,以及SPr软件ELab(计算机研究实验室,致力于研究安全、隐私、信任和伦理)的副教授Murtuza Jadliwala博士。其他合作者有俄克拉荷马大学的Anindya Ma软件a(前德克萨斯大学圣安东尼奥分校博士后研究员)和弗吉尼亚理工大学的Bimal Viswanath。

LLM中的幻觉是指模型生成的内容与事实不符、没有意义或与输入任务完全无关。到目前为止,大多数现有研究主要集中在经典自然语言生成和预测任务(如机器翻译、摘要和对话AI)中的幻觉。

研究团队专注于包幻觉现象,即当LLM生成或推荐使用一个实际上并不存在的第三方软件库时发生的情况。

使包幻觉成为一个引人入胜的研究领域的是,如此简单的事情——一个单一的日常命令——如何导致严重的安全风险。

“不需要复杂的条件或某些晦涩的事情发生,”Spracklen 说。“只需要输入一个命令,这个命令是每天使用那些编程语言的人们都会输入的。仅此而已。这非常直接和简单。”

“它也无处不在,”他补充道。“你只能用基本的 Python 编程语言做很少的事情。自己编写代码需要很长时间,因此在扩展编程语言的功能以完成特定任务时,依赖开源软件是普遍的做法。”

LLMs在开发者中变得越来越受欢迎,他们使用AI模型来协助程序组装。根据研究,高达97%的软件开发人员将生成型AI整合到他们的工作流程中,今天30%的代码是AI生成的。此外,许多流行的编程语言,如Python的PyPI和JavaScript的npm,依赖于集中式包库的使用。由于这些库通常是开源的,恶意行为者可以上传伪装成合法包的恶意代码。

多年来,攻击者一直使用各种技巧让用户安装他们的恶意软件。软件包幻觉是最新的策略。

“所以,假设我让ChatGPT帮我写一些代码,它也写了。现在,假设在生成的代码中它包含了一个某个包的链接,我信任它并运行了代码,但这个包不存在,是一个虚构的包。一个精明的对手/黑客可以发现这种行为(LLM的行为),并意识到LLM在告诉人们使用这个不存在的包,这个虚构的包。然后,对手可以轻松地创建一个新的与虚构包同名的包,并注入一些恶意代码。现在,下次LLM在生成的代码中推荐相同的包,一个不知情的用户执行了代码,这个恶意包就会被下载并执行在用户的机器上,”Jadliwala解释道。

UTSA 研究人员评估了在不同编程语言、环境和参数下包幻觉的发生情况,探索了错误的包推荐的可能性并确定了根本原因。

UTSA研究人员进行了30项不同的测试,他们在Python和JavaScript中使用LLM模型生成了223万代码样本,其中440,445个代码样本引用了虚构的软件包。研究指出:“与开源模型相比,GPT系列模型生成虚构软件包的可能性低四倍,虚构率为5.2%,而开源模型的虚构率为21.7%。”研究人员发现,Python代码比JavaScript更不易产生虚构。

这些攻击通常涉及将恶意软件包命名为合法软件包,以使其看起来合法,这种策略被称为软件包混淆攻击。在软件包幻觉攻击中,不警惕的LLM用户会在其生成的代码中被推荐该软件包,相信LLM后下载了由adversary-1创建的恶意软件包,从而导致被攻破。

这个漏洞的 insidious 元素在于它利用了对 LLMs 的日益信任。随着它们在编码任务中变得越来越熟练,用户将更有可能盲目信任它们的输出,并可能成为这种攻击的受害者。

“如果你经常编码,很容易明白为什么会发生这种情况。我们与很多人交谈过,几乎所有人都表示他们注意到在编码时曾遇到过包的幻觉,但他们从未考虑过这如何被恶意利用,”Spracklen 解释道。“你在编码时对包发布者有很大的隐含信任,认为他们分享的代码是合法的且没有恶意。但每次你下载一个包时,你都在下载可能有恶意的代码,并赋予它对机器的完全访问权限。”

在将生成的软件包与主列表进行交叉引用可能会有助于减轻幻觉,UTSA 研究人员表示,解决 LLM 基础的最佳方法是在其自身开发过程中解决 LLM 的基础。该团队已将研究结果告知包括 OpenAI、Meta、DeepSeek 和 Mistral AI 在内的模型提供商。