freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

AI Agent:功能、架构与安全风险
转载情报员 2025-03-29 23:30:50 95850
所属地 上海

虽然RAG在提供上下文感知回答方面很强大,但如果希望LLM应用能够自主执行任务呢?这正是AI Agent的用武之地。本文Understanding AI Agent Security[1] 就介绍了AI Agent:功能、架构与安全风险

什么是AI Agent?

LLM Agent是能够动态决定自身流程来执行特定任务的系统。与执行过程在代码中预先确定的工作流不同,Agent拥有自主性和知识,使其能够根据输入做出细致入微的决策。

我们正在见证一波新的Agent系统进入市场,特别是通过解决复杂行业问题的初创公司。虽然这些Agent可能被称为"AI助手"或"AI协作伙伴",但核心原则不变:它们是由模型驱动的系统,具有执行任务的自主权。

从本质上讲,Agent系统需要四个基本能力:

  1. 具备推理和规划能力的模型
  2. 检索机制
  3. 工具和API
  4. 记忆系统

AI Agent组件

AI Agent可以从简单(如查询天气数据)到复杂(如访问受限数据并代表用户采取行动的客服聊天机器人)不等。像OpenAI和Anthropic这样的基础实验室在他们的示例中提供了基本案例,比如Anthropic的带有客户端工具的客服Agent。

当我们思考LLM架构时,存在着不同层次的复杂性:

  1. 基础模型对话:用户通过提示和响应与模型直接交互
  2. RAG增强查询:通过向量数据库的上下文增强的模型交互
  3. 用户到Agent交互:用户与自主AI Agent的互动
  4. RAG支持的Agent:能够访问知识库并执行功能的Agent
  5. Agent到API通信:Agent与外部API的交互
  6. Agent间协作:多个Agent共同实现目标

实际应用通常结合多个层次。例如,旅行聊天机器人可能处理基本对话,检索客户档案(RAG),修改预订(用户到Agent),并通过外部预订系统预订餐厅(Agent到API)。随着Agent在现实世界中不断增加,我们应该预计会看到更多复杂的Agent系统和Agent间互动。

AI Agent的核心组件

所有AI Agent都必须被赋予一定程度的自主权来做决策并执行任务。这需要一个能够推理和规划的模型,检索信息的机制,执行任务的工具和API,以及存储信息的记忆系统。

推理和规划

Agent必须评估问题并确定实现目标所需的行动。这涉及理解上下文,分解复杂任务,并确定最佳行动顺序。并非所有模型都具备推理和规划能力,因此选择能够处理任务复杂性的模型非常重要。

工具

为了执行任务,AI Agent必须调用工具。这些工具可以简单如Python函数,也可以复杂如第三方API和数据库查询。创建AI Agent时,你需要向Agent注册这些工具。

提供这些工具并不意味着AI Agent会在每次响应时都调用它们。相反,你可以构建AI Agent来"推理"并确定是否应该调用工具。对于某些模型,你也可以强制模型调用函数。

在Anthropic的客服Agent示例中,用户发送消息随后触发LLM"思考"。

LLM可以访问三个客户端工具:get_customer_info(获取客户信息)、get_order_details(获取订单详情)和cancel_order(取消订单)。根据用户消息,它必须确定应该使用哪个工具来执行任务。在这个例子中,它确定应该调用get_customer_info函数并返回适当的结构化响应。

记忆

AI Agent需要记忆来克服无状态LLM架构的挑战。AI Agent通常使用两种类型的记忆:

  1. 短期记忆:当前对话的记忆,用于存储对话历史和任务上下文。
  2. 长期记忆:AI Agent知识的记忆,用于存储世界知识和任务知识。

检索和知识

检索是从知识源(如向量数据库)访问信息的过程。AI Agent可能需要访问向量数据库来检索相关信息,无论是搜索执行任务所需的存储信息,还是检索有助于Agent成功完成功能的相关信息。

AI Agent还可能被授予访问数据库(如SQL数据库)的权限,以检索用户或另一个Agent请求的信息。

Agent架构

单Agent

单Agent架构最适合定义明确的流程和范围狭窄的工具。与单Agent交互时,它将按顺序规划和完成任务,这意味着第一步操作必须完成后才能执行下一步。

多Agent

多Agent系统非常适合需要多角度视角或并行处理的任务。这些可以通过两种方式组织:

水平层级

  • Agent在没有指定领导的情况下协作
  • 非常适合需要大量反馈的任务
  • Agent之间可能出现无重点的"闲聊"风险

垂直层级

  • 一个Agent领导,其他Agent支持
  • 明确的分工
  • 减少干扰但可能面临沟通瓶颈

AI Agent的安全风险

根据Agent架构的类型,AI Agent可能仍然容易受到RAG架构常见的安全风险,如访问控制缺陷、数据投毒和提示注入。除了这些风险外,AI Agent还可能引入其他类型的漏洞。

Agent劫持

针对Agent系统的最大风险之一是新创造的"Agent劫持[2]"概念,即通过直接或间接提示注入来利用AI Agent。Agent劫持是一种需要多个漏洞才能构成严重风险的链式攻击。第一个是AI Agent的基本配置错误,允许过度权限或自主权。第二个是来自不可信用户输入的直接或间接提示注入的存在。当这两者链接在一起时,AI Agent可能被"劫持"执行来自用户的恶意命令。

直接提示注入发生在用户直接与AI Agent交互(例如通过聊天机器人)并包含绕过LLM系统原始意图的恶意指令时。间接提示注入通过污染LLM Agent的检索系统发生,例如在RAG知识库中包含一个被污染的文档,随后被LLM检索。

过度Agent权限和提示注入攻击结合在一起,可能强制AI Agent以非预期或恶意方式行动,比如代表攻击者发送精心制作的钓鱼消息,提升权限以检索未经授权的数据给用户,或向用户提供恶意或非法信息。

Agent权限过高

具有过度访问权限(或不受限制的访问权限)的AI Agent可能对工具、API和数据库构成巨大的数据泄露和敏感信息披露风险。如果没有应用速率限制和输入净化,它们还会引入数据库和API的无限消耗攻击风险。这是由于缺乏健全的授权机制、过于宽松的工具调用和缺乏输入净化造成的。

上图是AI Agent中SQL注入的一个例子。由于提示没有净化,而且AI Agent对数据库有不受限制的访问权,它可以运行SQL命令来转储数据库内容。

拒绝付费(DoW)攻击

从设计上讲,AI Agent需要更复杂的推理和规划来执行任务。由于计算需求,这些模型本身比用于聊天完成的简单模型更昂贵,推理模型(如OpenAI的o1)的推理成本几乎比gpt-4o高出150%。能够访问公司Agent系统的用户可能滥用或误导Agent系统,导致其推理出现循环或不必要地完成任务,从而导致来自推理提供商的巨额账单。

多轮对话攻击

并非所有攻击都能在单个提示中执行。LLM Agent可能容易受到多步攻击,攻击者通过对话序列直到能够完成攻击。这些多轮、对话式策略在强制Agent生成有害输出或在有状态应用中执行任务方面非常有效,通过逐渐说服AI Agent随着时间推移违背其预期目的行事。

如GOAT和Crescendo策略。

无意(但有害)的行为

虽然意图并非恶意,但AI Agent可能会无意中使用其获得的资源采取有害行动。例如,配置错误的编码Agent可能会将不安全的代码提交到生产环境。如果没有适当的控制措施来减轻生产系统中Agent的风险,这些Agent可能会破坏平台的可操作性或可用性,暴露敏感数据如API令牌,或引入可能随后被攻击者利用的不安全代码。

客户服务等领域的AI Agent也可能犯错,例如以公司被迫履行的错误价格做出承诺。它还可能提供关于公司政策的错误信息,或根据提供的事实得出错误结论。

AI Agent也可能容易受到欺诈,应该监控异常活动。例如,攻击者可能坚称没有收到包裹递送,强制Agent调用工具取消递送或退款。

传统越狱

AI Agent不能免疫传统越狱。除了上述列出的漏洞外,AI Agent仍然容易受到基础越狱尝试的影响,这可能强制Agent披露有害信息或绕过固有的安全护栏。重要的是要注意,部署Agent系统并不能消除来自更简单LLM系统的漏洞类别,而是由于Agent所需的多层架构而增加风险。因此,AI Agent仍应具有适用于对话AI或基础模型的深度防御措施,如红队测试和护栏。

Agent安全最佳实践

在许多方面,AI Agent应该像安全团队处理组织内员工的访问控制一样对待。Agent与人类一样,根据工作记忆、可用工具和可访问的知识源做出决策并执行任务。像员工一样,AI Agent通常希望与更大目标保持一致,表现出色地执行任务,但也容易犯错,披露信息或受到社会工程攻击。

AI Agent的最佳实践是强制执行最小特权和需要知道的原则。AI Agent的访问权限(包括对向量数据库、工具和第三方API的访问)应定期审计和重新认证。所有Agent活动都应记录并监控,并为可疑活动设置警报,不再使用的AI Agent应该停用。

部署AI Agent时,请考虑以下控制措施:

AI Agent 安全控制措施

工具清单

  • 维护 AI agent 可访问的工具、函数、API 和数据库清单
  • 列出 AI agent 预期任务及通过工具访问应实现的目标
  • 根据授权任务(读取、写入、删除等)、数据敏感程度(机密、高敏感、PHI、PCI、PII)和暴露范围(公开、内部)记录 AI agent 风险等级

最小权限授权

  • 严格限制 AI agent 使用工具的权限。例如,若 AI agent 仅需在数据库上执行查询,就不应有删除、新或删表权限,最好将其限制在预设查询或准备好的语句范围内
  • 同样要严格控制能访问工具的用户权限
  • 限制对 AI agent 的访问,必要时立即终止

输入输出净化

  • 对 AI agent 的提示和输出进行验证和净化
  • 部署数据泄漏防护技术,降低敏感信息外泄风险
  • 实施 API 请求签名验证,防止篡改

系统提示配置

  • 视系统提示中所有信息为公开内容
  • 严格隔离私有数据与提示上下文
  • 禁止 agent 透露提示或上下文信息,并设置防护机制

Agent 沙箱化

  • 将 AI agent 置于安全隔离环境中,限制资源和功能访问
  • 与生产环境和网络分离,降低 SSRF 攻击风险

制定 AI 行为准则

  • 联合法律、营销、合规和安全团队建立并执行 AI 行为准则
  • 开展红队测试,确保 AI agent 不违反行为准则或其他治理政策

监控和预警

  • 为 AI agent 建立监控预警系统,检测异常行为
  • 实施适用于其他系统或员工的辅助控制措施,如欺诈预警机制和敏感交易的多因素认证

小结

参考资料

[1]https://www.promptfoo.dev/blog/agent-security/: https://www.promptfoo.dev/blog/agent-security/

[2]Technical Blog: Strengthening AI Agent Hijacking Evaluations: https://www.nist.gov/news-events/news/2025/01/technical-blog-strengthening-ai-agent-hijacking-evaluations

# AI安全
本文为 转载情报员 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
转载情报员 LV.1
这家伙太懒了,还未填写个人描述!
  • 40 文章数
  • 16 关注者
Telegram惊现数据抓取机器人:560亿条公开群聊记录被索引,涉8.6亿用户
2025-03-30
关于公开征求《中华人民共和国网络安全法(修正草案再次征求意见稿)》意见的通知
2025-03-28
Gartner发布2025年网络安全六大预测
2025-03-06
文章目录