人工智能与软件开发实践的交叉带来了意想不到的风险。虽然自动编码助手具有创新性,但却使开发者面临前所未有的安全威胁。虚假包名称的传播源于错误的建议,打开了恶意攻击的门户。在开发过程中的每一次安装都可能成为一个可怕的陷阱。软件供应链的后果令人警惕,要求对于由人工智能生成的行为保持高度警惕。
由人工智能驱动的代码生成工具正在彻底改变开发者设计软件的方式。这一演变伴随着威胁软件供应链安全的新风险。许多编码助手,如先进的语言模型,令人担忧地显示出幻觉的趋势,这就是建议实际上不存在的包。
安全和计算机研究人员观察到,这些工具有时会建议虚假的包名称。最新研究显示,大约5.2 %的建议来自商业模型而与任何真实包不符,而对于开放源代码模型,这一比例高达21.7 %。这一现象对那些在没有事先验证的情况下使用这些推荐的开发者构成了重大威胁。
恶意行为者利用幻觉
恶意分子以创造虚假名称的软件包来利用这种幻觉。当人工智能推荐的代码助手重新引入这个被利用的名称作为依赖项时,安装该包可能会导致恶意软件的执行。这个过程是通过意外的助手工具的贡献来加速的,这些工具看似在验证这些虚假的包。
安全公司Socket进行的一项研究揭示了一个有趣的现象。当用户触发幻觉性提示十次时,大约有43 %的幻觉包在每次中都重现。这种复发性暗示人工智能生成的响应中存在可预测的模式,从而增加了对虚假包的依赖风险。
“slopsquatting”现象
网络安全研究人员和专家将这一形式的包名称利用称为“slopsquatting”。该术语指的是使用与常见术语相关的变体或拼写错误来欺骗开发者。Python软件基金会驻开发者Seth Michael Larson指出,尚未对因这些幻觉而尝试的安装进行量化。增加供应商的透明度将有助于对这一现象进行真实的评估。
编码实践的演变
开发者的习惯正面临显著变化。Socket的首席执行官Feross Aboukhadijeh提到“氛围编码”的趋势。开发者与人工智能工具进行互动,复制代码建议,而不一定验证其准确性。这种行为可能导致偏见推荐的整合,从而危害最终产品的质量和安全。
已经提出了具体的恶意包示例,例如npm利用一个合法名称同时隐藏漏洞。这些冒充者通常表面上具有误导性,配备了现实的README、伪造的GitHub存储库,甚至是宣称其真实性的可疑博客。这些伎俩使得开发者在忙碌的情况下更难检测到此类威胁。
后果与解决方案
最近的发展突显出危险:一月份的一起事件显示Google的人工智能建议了一个模仿合法包的恶意包。这类建议的后果可能是灾难性的,使攻击者能够利用安全漏洞。利用人工智能工具创建大量的“slopsquatting”包是一种日益普遍的策略,正如一个名为“Iain”的恶意行为者的案例所示。
Python软件基金会持续采取措施以降低恶意软件的风险,包括实施API以报告恶意软件并改善slopsquatting的检测。PyPI用户与包管理者必须保持高度警觉,并在安装前验证包的完整性。
实现安全开发实践需要回归手动核实命名,并在组织内部建立自主系统。实施关于PyPI的包子集亦可能成为应对当前威胁和预防软件创建过程偏差的前瞻性策略。
帮助栏目
人工智能代码建议带来的主要威胁是什么?
人工智能的代码建议可能引入不存在的包名称,这可能在攻击者在开发周期中利用这些名称时导致恶意软件的安装。
开发者如何保护自己免受人工智能幻觉带来的风险?
开发者应始终验证人工智能建议的包是否存在,使用可靠的包注册并在安装前验证提供的信息。
“slopsquatting”现象为何让开发者感到担忧?
“slopsquatting”构成了巨大的风险,因为它涉及创建类似于流行包名称的恶意包,误导匆忙的开发者,增加安装恶意软件的可能性。
“氛围编码”现象及其对安全的影响是什么?
“氛围编码”发生在开发者在没有验证的情况下应用人工智能的代码建议。这可能导致使用易受攻击的代码或虚假包,使项目面临安全漏洞。
潜在恶意包的警示信号是什么?
这些信号包括缺乏文档、不清晰的README、缺乏在GitHub等受尊重平台上的存储库,以及意外安装失败。
人工智能的幻觉可能促进哪些类型的攻击?
人工智能的幻觉可以促进拼写欺诈和引入恶意后门的攻击,从而增加与软件供应链相关的风险。
企业如何利用人工智能工具改善软件供应链的安全性?
企业应整合安全工具,以分析和验证软件依赖性,同时培训开发者认知与人工智能建议相关的风险。
像PyPI这样的包管理平台是否采取措施来应对这些风险?
是的,目前正在进行减少包滥用的努力,包括实施恶意软件报告API和改善拼写欺诈检测的合作。
人工智能供应商的透明度在应对这些威胁中有多重要?
人工智能供应商的透明度对于理解和量化与代码建议相关的风险至关重要,并使用户能够在安装包时做出明智的决策。
如果人工智能的建议导致安装失败,用户应如何处理?
用户应检查包名称,确保拼写正确,并在尝试重复安装之前查找有关其存在的额外信息。