博客

携手共进:AI 编码工具与具备安全意识的开发人员如何安全协作

October 18, 2024
Matias Madou 博士

AI 生成的代码可能充斥着漏洞和缺陷,但如果与具备安全意识的人类开发人员配合使用,AI 辅助编码工具依然大有裨益。

While 2023 saw a groundswell of activity, coupled with an enormous surge in popularity for artificial intelligence’s latest iteration, generative AI, it is clear that this transformative technology is only just getting started. Most experts predict that 2024 will see it reach even greater heights.

鉴于编写多语言代码是生成式 AI 最早展示的能力之一,近期调查显示高达 93% 的开发团队将 AI 工具纳入工作流程也就不足为奇了。直到最近,这些团队才开始感受到这种选择带来的负面影响,因为 AI 生成的代码可能充满了可被利用的漏洞。

事实上,目前的 AI 编码工具尚无法可靠地识别什么是易受攻击的代码,更不用说在生成新代码时避免这些错误了。在马里兰大学、加州大学伯克利分校、谷歌及其他机构开展的一项综合研究中,研究人员考察了来自四个不同系列的 11 个 AI 模型,并要求它们尝试发现 AI 工具所生成代码中的漏洞。由于误报率高且漏洞检测准确率低,研究人员得出结论:AI 尚未准备好承担这一角色。而且它可能永远无法胜任,因为即便研究人员试图通过输入大量安全代码示例来微调模型,这些模型的失败率依然高得令人无法接受。

在魁北克大学进行的另一项研究中,研究人员要求流行的生成式 AI ChatGPT 用多种语言编写 21 个不同的程序和应用程序。虽然所有由 AI 编写的应用程序都能按预期运行,但从网络安全角度来看,只有 5 个是安全的。其余的都存在危险漏洞,攻击者可以利用这些漏洞入侵任何部署了这些程序的组织。

人类与 AI 团队,携手共进!

对于那些研究 AI 开发的人来说,上述研究以及许多得出类似结果的其他研究(包括我自己的研究)并不令人意外。生成式 AI 可以通过利用大型语言模型来创建新内容,这些模型本质上是庞大的人类知识汇编数据库,AI 知道如何快速导航和解析这些数据库以得出新的响应和内容。问题在于,大型语言模型既包含了人类创造的一切成果,也包含了其中的糟粕。

就代码而言,结果就是这些大型语言模型中包含了大量的漏洞和不良实践。每一个 OWASP 漏洞都绝对隐藏在这些模型中,此外还有成千上万个其他漏洞。如果人类曾经犯过错并编写了易受攻击的应用程序,那么它很可能已被包含在 AI 现在所引用的模型中。而且,当 AI 生成复杂的应用程序时,它很有可能也会使用这些漏洞。

那么,解决方案是什么?我们能否在利用 AI 编码带来的速度优势的同时,又能生成安全的代码?可以,但前提是人类与 AI 必须通力合作,各展所长。

尽管 AI 表现惊人,但它并不真正理解语境。例如,你可以让它为在线商店编写基础设施代码,但它并不真正知道你要卖什么、如何向合适的访客展示合适的产品,也不了解你后端供应链的任何复杂性。编写考虑到所有这些因素的代码更适合人类开发人员,他们的主要任务是编写有助于解决某种业务问题的程序。人类,尤其是那些在各自行业工作了很长时间的人,非常擅长解决这类问题。但即使是最优秀的程序员,在处理复杂实现的具体细节时,有时也需要温故知新。

例如,在最近的 Stack Overflow 开发者调查中,63% 的受访开发者表示,他们每天至少要花费 30 分钟或更长时间来搜索关于如何实现所构建应用程序或程序某一部分的答案。这种所谓的认知切换——即人类必须从创造性过程转向更机械或繁重的研究过程——每天都会消耗大量本可用于高效工作的时间。

但这正是 AI 工具最能提供虚拟帮助的地方。如果人类开发人员正在处理像上述在线商店这样的整体程序或应用程序,而在实现某一方面时遇到了困难,那么 AI 工具就可以派上用场。例如,编写将产品数据库连接到供应链应用程序的代码,AI 工具可以极其快速地完成,且不需要 AI 理解它所处理内容的整体语境或项目的总体使命。如果只让它处理代码中关键的基础性方面,它产生漏洞的可能性也会大大降低。

信任,但要验证

将人类开发人员与 AI 工具配对,让双方各展所长,是一种有益的策略,既能加快编码过程,又能限制 AI 引入代码漏洞所带来的一些风险。让 AI 处理代码创建过程中较小的元素风险较低,但漏洞仍可能出现。

这就是为什么开发人员必须接受安全培训至关重要。如果人类既了解项目的整体语境,又掌握最佳安全实践,那么他们就能迅速验证要求 AI 编写的任何代码部分是否正确,且不存在漏洞或其他诸如业务逻辑缺陷等问题。由于人类开发人员不必去查找如何创建 AI 生成的那部分代码,只需检查确保其安全并修复可能潜入的缺陷,因此仍可节省大量时间。

AI 工具令人印象深刻,可以极大地帮助加快开发过程。然而,它们无法可靠地编写安全代码,近期研究表明它们可能永远无法实现这一目标。不过,只要与技术精湛、训练有素且具备安全意识的开发人员配合使用,它们在软件开发中依然可以发挥巨大的作用。

标语

在 AI 驱动的开发成果发布前实现有效治理

评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。

预约演示
资源库

探索更多博客

获取有关安全编码、人工智能治理和软件风险管理的专家内容。

浏览全部
案例研究
筛选标签
这是 div 块中的一段文本。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

统一的安全文化:Sage 如何打造其安全倡导者项目

了解 Sage 如何通过灵活且以关系为导向的方法提升安全性,成功培养了 200 多名安全倡导者,并实现了显著的风险降低。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

2026年网络安全意识月:理解人工智能安全对企业防御至关重要

目前,大多数顶级人工智能公司已公开呼吁全球放缓人工智能的发展速度,以便安全防护措施能够跟上步伐。然而事实是,严重的安全问题已经显现。随着人工智能实施带来的经济成本和风险不断累积,无数安全领导者和高管团队正处于紧迫的境地。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

赋能要素 8:打造项目品牌

成功的安全编码项目不仅需要优质的内容。赋能要素 8 展示了如何通过品牌化将参与过程转变为一种令人向往、以地位为驱动的体验。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

每一位员工现在都处于 AI 网络安全的最前线

企业技术格局正以一种鲜有人预料到的速度发生剧变,直到为时已晚。我们已正式跨越了从人工编写代码和基础辅助编程,进入“智能体开发生命周期”(ADLC)的时代。虽然自主 AI 智能体有望在多个职能领域实现前所未有的效率,但它们也带来了全新的安全和监管风险。

了解更多

在产品发布前确保 AI 驱动的开发安全

洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。

预约演示
未找到相关项目。