译者 | 晶颜
审校 | 重楼
代理式人工智能(Agentic AI)具备自主编写与部署代码的能力,由此衍生出新的安全风险,因而需要人工监督与强有力的保障机制。
自2022年底ChatGPT及生成式人工智能(GenAI)成为主流以来,其影响力的持续攀升对软件开发行业产生了直接影响。生成式人工智能工具编写可执行代码的能力被视作显著优势之一,且此后人工智能一直在持续迭代优化。代理式人工智能的兴起是软件开发领域的下一个重大变革,它能够自主编写、调试代码,并将代码部署至运行环境,这一特性也要求我们从安全视角对其进行重新审视。
长期以来,网络安全专业人士始终强调“左移”方法是至关重要的安全支柱,即尽可能在软件开发生命周期的早期阶段集成安全控制措施。然而,随着人工智能的智能化程度不断提升,当前我们面临着在完全由人工智能编写、无需人类参与的环境中保障软件安全的新课题。
本文旨在研究这一范式转变所带来的新挑战,以及为应对代理式人工智能环境,必须实施的人机协同审查机制。
人工智能软件代理的兴起
近年来,人工智能生成代码的技术迅速发展,亚马逊Q Developer、GitHub Copilot和谷歌Gemini等工具借助大型语言模型(LLM)实现代码生成功能。这些工具起初扮演辅助开发者的角色,助力代码创建与调试工作,而代理式人工智能则通过赋予系统自主性,将这一能力提升至全新高度,使其能够在无人干预的情况下完成代码生成、调试、测试及部署全流程操作。
这种功能并不局限于单个人工智能代理,实际应用中已出现多个AI代理协同作业的场景,它们分别承担软件设计、测试、编码及项目管理等不同角色。这一模式转变影响深远,不仅改变了软件开发的传统模式,也对网络安全领域产生了颠覆性影响,从根本上重塑了网络安全威胁格局。
除了传统软件开发中已存在的风险外,人工智能生成的代码还可能引入新的安全隐患,任何有意在软件开发中采用人工智能代理的企业,都必须对这些潜在问题予以充分考量。
新的威胁形势
以下将对这一模式引入的新型安全风险展开分析:
1. 安全性设计薄弱
传统软件开发过程中,开发人员与网络安全专业人士凭借自身经验,能够充分考虑潜在威胁场景,遵循安全设计模式,并运用专业领域知识进行开发。然而,人工智能代理若未得到明确指导,便缺乏实际应用场景理解与威胁建模能力。
若在提示信息或训练数据中未融入安全设计原则,人工智能代理生成的代码虽可能具备基础功能,但在抵御攻击方面存在严重缺陷,例如出现硬编码密钥、未对输入进行安全校验、访问控制配置错误等问题。
2. 有毒的训练数据和模型偏差
人工智能代理高度依赖从公共存储库中抓取的大型数据集。若这些数据集中包含不安全代码或恶意模式(如已知存在安全漏洞的依赖项、不良编程实践等),代理可能会在无意识的情况下“学习”并复制这些不安全行为。
此外,攻击者可能试图投毒训练数据集或注入恶意代码,诱使代理生成包含后门的代码。在持续集成(CI)环境中使用人工智能代理时,这一问题尤为突出,可能引发严重的安全后果。
3. 缺乏可追溯性
在人工开发模式下,Git等版本控制系统能够完整记录代码编写的历史信息,实现代码的可追溯性。但人工智能代理生成的代码片段往往缺乏明确的来源标识与背景信息。这种可追溯性的缺失使得以下问题难以确定:
- 代码是从哪里来的;
- 代码是否复用自存在安全隐患或已遭破坏的来源;
- 是否存在违反软件许可证使用规定的情况。
4. 代理式AI漏洞
如果代理能够访问文档、外部应用程序编程接口(API)及运行时环境,这些代理自身便成为攻击目标。恶意提示、被污染的文档或不安全的插件,都可能操纵代理生成不安全的配置或导致凭证泄露。
这意味着软件安全防护工作已延伸至保护人工智能代理的运行环境,而这一全新挑战或许超出了当前网络安全专业人士的应对能力范畴。以下为具体威胁场景分析:
(1)与开发者意图不一致
代理系统无法真正理解人类价值观及企业安全政策,仅以任务成功执行为优化目标,这可能导致目标不一致问题。例如,开发人员创建用于“自动化新工程师入职流程”的人工智能代理,该代理可能出于追求效率与简便性,为新用户账户赋予过高的管理权限,从而违反企业最小权限原则。此类情况并非出于恶意,而是自然语言表达与安全设计理念之间存在理解偏差所致。
(2)代理接管和提示劫持
具备文件、命令或API读写权限的代理系统,可能因恶意或已遭破坏的数据源而被攻击者劫持。这类攻击可能类似于供应链攻击,不同之处在于此处的“供应链”涉及文档、提示信息或插件等。截至2025年,已有相关案例报道显示代理遭受攻击后执行了未经授权的操作。
新方法:Secure-AI-DevOps
对人工智能代理的安全防护不能仅局限于代码审查与扫描,而需重新审视“左移”策略的实施方式。为此,我们提出一种全新的方法——Secure-AI-DevOps,该方法集成了以下核心原则:
1. 人在循环(HITL)监督
无论人工智能代理的技术如何先进,人类监督始终是整个流程中不可或缺的关键环节,具体涵盖以下方面:
- 对人工智能生成的代码进行逻辑错误检查;
- 手动开展威胁建模工作;
- 运用静态和动态分析工具对代码进行验证;
- 对架构决策进行核实,尤其是当代理生成基础设施即代码(Infrastructure as Code,IaC)模板时,需进行严格审查。
代理防护机制和提示工程
提示工程已成为保障安全的关键技能。如同编写安全的函数一样,我们必须精心设计安全的提示内容。例如:
- “编写一个采用安全密码哈希算法和速率限制机制的登录函数”;
- “避免出现任何硬编码密钥或明文日志记录”;
- “在身份与访问管理(IAM)角色中遵循最小权限原则”。
此外,还应为人工智能代理设置下述防护措施:
- 限制其可导入的软件包范围;
- 在代码执行前执行严格的质量标准检查;
- 隔离其对生产环境的访问权限,防止潜在风险扩散。
3. 人工智能代理行为监测
人工智能代理不应仅被视为开发工具,而应作为具有实际操作影响的软件实体进行全面监控。需重点关注以下行为:
- 代理是否对不应修改的配置进行了变更;
- 是否调用了未经验证的应用程序编程接口(API);
- 是否在生产环境而非预发布环境中创建资源。
将人工智能代理的行为监测、日志记录及警报机制集成到持续集成/持续交付(CI/CD)管道中,是保障系统安全的重要控制手段。
4. 协同责任机制
在人工智能时代,开发人员的角色不再局限于编写代码,同时还需承担人工智能输出内容优化与审核的工作。安全保障也演变为多方协作的模式,各相关方需共同承担以下责任:
- 开发人员:编写安全提示内容,审查代码,并确保开发过程符合相关规范;
- 安全团队:构建自动化扫描工具并制定人工智能安全策略;
- 运维团队:实时监控代理活动,维护环境隔离;
- 法律/合规部门:追踪软件许可证使用情况及代码来源,确保合规性;
- 从被动到主动:安全防护必须从被动应对转向主动防御,安全性应从首个提示输入阶段便开始嵌入。
核心结论
- 人工智能代理正逐渐从单纯的生产力工具转变为具备自主编码能力的实体,在GPT-4.1、Gemini Code Assist等工具的推动下,深刻影响着应用程序开发模式。
- 当人工智能代理生成的代码缺乏明确的设计意图与威胁建模时,便容易出现安全漏洞,进而导致逻辑缺陷、不安全默认设置及配置隐患等问题。
- 当前,网络安全威胁形势正在不断演变,数据投毒、代码来源不透明以及因代理行为导致的攻击面扩大等新型风险日益凸显。
- 在此背景下,Secure-AI-DevOps这一全新范式成为必要选择,它融合了人工监督、安全提示设计、软件溯源以及人工智能代理行为监测等关键要素。
- 开发人员需要转变角色定位,不仅要履行编码职责,更要承担起人工智能监督者的重任,确保代理生成的内容符合安全标准与组织策略要求。
- 安全防护工作需再次深化“左移”理念,从提示输入、约束条件设定到工作流程设计的各个初始环节,均应引导人工智能代理的行为,以保障系统安全。
原文标题:Securing Software Created by AI Agents: The Next Security Paradigm,作者:Pranjal Sharma