Backslash Security 的最新研究揭示了一个令人担忧的趋势:像 GPT-4.1 这样的大型语言模型 (LLM),以及其他广泛使用的模型,默认情况下倾向于生成不安全的代码。这意味着,在没有针对安全性的特定指令或指导方针的情况下,这些人工智能系统生成的代码通常容易受到常见弱点和漏洞的攻击。然而,该研究也表明,通过提供额外的安全指导或实施基于规则的治理,可以显著提高生成代码的安全性。
为了进一步探讨这个问题,Backslash Security 宣布推出模型上下文协议 (MCP) 服务器,以及专为 Agentic 集成开发环境 (IDE) 设计的规则和扩展。这些工具旨在解决 LLM 生成代码中发现的安全漏洞,并为开发人员提供创建更安全应用程序的手段。
LLM 和不安全的代码生成:默认情况
Backslash Security 对七个不同版本的流行 LLM 进行了系列测试,包括 OpenAI 的 GPT 模型、Anthropic 的 Claude 和 Google 的 Gemini。目标是评估各种提示技术如何影响模型生成安全代码的能力。代码输出的安全性是根据其针对十个常见弱点枚举 (CWE) 用例的弹性进行评估的,这些用例代表了一系列常见的软件漏洞。
这些测试的结果一致表明,随着更复杂的提示技术,生成代码的安全性得到提高。然而,总体主题是,所有测试的 LLM 通常在没有外部干预的情况下会生成不安全的代码。这表明这些模型在其默认配置中没有优先考虑安全性,并且通常无法解决常见的编码弱点。
幼稚的提示:漏洞的根源
当被呈现简单的、’幼稚的’、未明确提及安全考量的提示时,所有测试的 LLM 都生成了不安全的代码,至少容易受到十个常见 CWE 中的四个的攻击。这突出了这些模型在没有特定指导的情况下运行时的固有缺乏安全意识。
以安全为中心的提示的影响
总体上指定需要安全性的提示导致了更安全的结果,表明 LLM 在明确指示这样做时能够生成更安全的代码。此外,请求符合开放 Web 应用程序安全项目 (OWASP) 最佳实践的代码的提示产生了更好的结果。OWASP 是一个致力于提高软件安全性的非营利基金会。然而,即使使用这些更复杂的提示,在七个测试的 LLM 中仍有五个存在一些代码漏洞,这突显了使用 LLM 一致地生成安全代码的挑战。
基于规则的提示:安全代码的道路
生成安全代码最有效的方法涉及绑定到 Backslash 指定的规则的提示,以解决特定的 CWE。这些基于规则的提示产生了安全的代码,并且不容易受到测试的 CWE 的攻击。这表明为 LLM 提供具体、有针对性的指导对于确保生成代码的安全性至关重要。
LLM 之间的性能差异
总体而言,OpenAI 的 GPT-4o 在所有提示中表现出最低的性能,当使用’幼稚的’提示时,仅实现了 1/10 的安全代码结果。即使被提示生成安全代码,它仍然产生不安全的输出,容易受到十分之八的问题的影响。GPT-4.1 在使用幼稚的提示时,性能没有显着提高,得分为 1.5/10。
相比之下,Claude 3.7 Sonnet 成为测试的 GenAI 工具中表现最佳的工具。在使用幼稚的提示时,它的得分为 6/10,而在使用以安全为中心的提示时,得分为完美的 10/10。这表明,即使在没有明确指令的情况下,某些 LLM 也能更好地处理安全考量。
Backslash Security 的安全代码生成解决方案
为了解决通过其 LLM 提示测试揭示的问题,Backslash Security 正在推出多项新功能,旨在实现安全的代码生成。代码生成是指使用像 LLM 这样的人工智能工具生成代码的实践。
Backslash AI 规则和策略
Backslash AI 规则和策略提供机器可读的规则,这些规则可以注入到提示中,以确保 CWE 覆盖率。这些规则可以与像 Cursor 这样的流行代码编辑器一起使用。此外,AI 策略通过 Backslash 平台控制哪些 AI 规则在 IDE 中处于活动状态,允许组织自定义其安全设置。
Backslash IDE 扩展
Backslash IDE 扩展直接集成到开发人员的现有工作流程中,允许他们接收由人类和 AI 编写的代码的 Backslash 安全审查。这种集成对于确保在整个开发过程中解决安全考量至关重要。
Backslash 模型上下文协议 (MCP) 服务器
Backslash 模型上下文协议 (MCP) 服务器是一个上下文感知 API,符合 MCP 标准。它将 Backslash 连接到 AI 工具,从而实现安全编码、扫描和修复。MCP 标准为 AI 工具提供了一个通用的框架来通信和共享信息,从而促进了安全 AI 驱动的应用程序的开发。
解决 AI 生成代码的挑战
Backslash Security 的联合创始人兼首席技术官 Yossi Pik 强调了 AI 生成代码对安全团队构成的挑战。他指出,’AI 生成的代码,或者代码生成,对于安全团队来说可能感觉像一场噩梦。它会产生大量新代码,并带来 LLM 风险,例如幻觉和提示敏感性。’ 幻觉指的是 LLM 生成不正确或无意义信息的情况,而提示敏感性指的是 LLM 根据输入提示中的细微变化产生不同输出的趋势。
然而,Pik 也认为,如果使用正确的控制,AI 可以成为 AppSec 团队的宝贵工具。他认为,’通过正确的控制,例如组织定义的规则和插入到专门构建的安全平台的上下文感知 MCP 服务器,AI 实际上可以从一开始就为 AppSec 团队提供更多的控制。’ Backslash Security 旨在通过其动态的基于策略的规则、上下文敏感的 MCP 服务器和 IDE 扩展来提供这些控制,所有这些都是为新的编码时代而设计的。
不安全 AI 生成代码的含义
Backslash Security 研究的发现对软件开发行业具有重要意义。随着 AI 驱动的代码生成工具越来越普遍,重要的是要了解在没有适当安全措施的情况下依赖这些工具所涉及的风险。
增加遭受网络攻击的脆弱性
不安全 AI 生成的代码可能会创建新的漏洞,网络犯罪分子可以利用这些漏洞。这些漏洞可能导致数据泄露、系统破坏和其他安全事件。
难以识别和修复漏洞
AI 生成代码的庞大数量使得识别和修复漏洞具有挑战性。安全团队可能难以跟上代码生成的快速步伐,从而导致安全问题的积压。
开发人员缺乏安全意识
许多开发人员可能没有完全意识到与 AI 生成代码相关的安全风险。这种缺乏意识可能导致开发人员无意中将漏洞引入到他们的应用程序中。
法规合规性挑战
依赖 AI 生成代码的组织可能面临法规合规性挑战。许多法规要求组织实施适当的安全措施来保护敏感数据。不安全 AI 生成的代码可能使得满足这些要求变得困难。
安全 AI 驱动的代码生成的最佳实践
为了减轻与不安全 AI 生成代码相关的风险,组织应采用以下最佳实践:
为开发人员提供安全培训
开发人员应接受关于与 AI 生成代码相关的安全风险的培训。该培训应涵盖诸如常见 CWE、安全编码实践以及如何使用安全工具等主题。
实施安全策略和程序
组织应实施解决 AI 生成代码使用的安全策略和程序。这些策略应定义可接受的使用案例、安全要求以及审查和批准 AI 生成代码的流程。
使用安全工具扫描 AI 生成代码
组织应使用安全工具扫描 AI 生成代码中的漏洞。这些工具可以帮助识别常见的 CWE 和其他安全问题。
实施安全开发生命周期 (SDLC)
组织应实施一个安全开发生命周期 (SDLC),该生命周期将安全考虑因素纳入到整个开发过程中。这包括对 AI 生成代码进行安全审查、执行渗透测试以及实施安全监控。
建立漏洞奖励计划
组织应建立一个漏洞奖励计划,以鼓励安全研究人员查找和报告 AI 生成代码中的漏洞。这可以帮助识别内部安全团队可能错过的漏洞。
随时了解最新的安全威胁
组织应随时了解影响 AI 生成代码的最新安全威胁和漏洞。这可以帮助他们主动解决潜在的安全问题。
与安全专家合作
组织应与安全专家合作,以评估其 AI 生成代码的安全性,并制定减轻风险的策略。
安全 AI 驱动的代码生成的未来
随着 AI 驱动的代码生成工具不断发展,优先考虑安全性至关重要。通过实施上述最佳实践,组织可以利用 AI 驱动的代码生成的好处,同时减轻与不安全代码相关的风险。
AI 安全方面的进展
正在进行的研究和开发工作侧重于提高 AI 系统的安全性。这些努力包括开发用于检测和防止对抗性攻击的新技术、提高 AI 模型的稳健性以及创建更安全的 AI 架构。
将安全性集成到 AI 开发中
安全性正日益集成到 AI 开发过程中。这包括将安全考虑因素纳入到 AI 模型的设计中、使用安全编码实践以及在整个开发生命周期中进行安全测试。
AI 和安全专家之间的合作
AI 和安全专家之间的合作对于确保 AI 系统的安全性至关重要。这种合作可以帮助识别潜在的安全风险并制定有效的缓解策略。
提高对 AI 安全风险的认识
提高对 AI 安全风险的认识正在推动新安全工具和技术的开发。这包括用于检测对抗性攻击、分析 AI 模型安全性的工具以及监控 AI 系统是否存在可疑活动的工具。
通过解决与 AI 生成代码相关的安全挑战,组织可以释放 AI 驱动开发的全部潜力,同时保护其系统和数据免受网络攻击。