智能体安全
智能体 AI 系统引入了传统软件中不存在的安全风险。智能体能够执行真实世界的操作、访问敏感数据,并可能被输入内容所操控。安全必须从设计之初就内建进去,而非事后补救。
概述
智能体系统面临的两大主要风险类别:
- 恶意行为:智能体在外部系统中执行未经授权、有害或非预期的操作
- 敏感数据泄露:智能体通过输出内容或工具调用无意间暴露机密信息
Google 的三层防御模型同时应对上述两类风险:
- 策略定义 — 系统指令定义智能体的"宪法":明确其可以做什么、不能做什么
- 护栏与过滤 — 输入分类器拦截恶意提示词;输出过滤器捕获个人身份信息(PII)和违规内容;高风险操作触发人在回路(HITL)上报
- 监控与响应 — 持续的行为监控,配合自动异常响应
最佳实践
| 关键挑战 | 描述 | 经验教训与替代方案 | 采用的解决方案 |
|---|---|---|---|
| 提示词注入 | 检索文档或用户输入中的恶意内容劫持智能体行为 | 平等信任所有输入,智能体执行了被注入的指令 | 将用户输入和检索内容视为不可信;在传递给智能体之前使用输入分类器(如 Perspective API) |
| 智能体权限过大 | 被授予宽泛工具访问权的智能体超出预定范围使用能力 | 为灵活性授予所有工具权限,导致范围蔓延和非预期操作 | 应用最小权限原则——仅授予特定任务所需的工具和权限;在多智能体系统中,使用 AWS STS 为每个任务生成限时、限域的凭证 |
| 多智能体系统中的提示词注入传播 | 一个智能体处理的恶意内容被转发给下一个智能体,放大攻击效果 | 信任已通过一个智能体处理的内容,导致下游智能体执行被注入的指令 | 无论经过多少个智能体处理,均将所有外部来源内容视为不可信;在每个智能体边界(而非仅在入口处)应用 Amazon Bedrock Guardrails |
| 智能体载荷中的凭证暴露 | 在智能体间任务对象中传递的原始凭证被记录或泄露 | 为方便起见在交接载荷中包含 API 密钥,导致其出现在链路追踪和 DynamoDB 记录中 | 绝不在任务对象中传递原始凭证;使用 IAM 角色委托;非 AWS 工作负载使用 AWS IAM Roles Anywhere |
| 未授权的智能体发现 | A2A 网络中的智能体可被未授权调用方发现和调用 | 依赖端点隐蔽性,智能体卡端点未设置身份验证 | 实现带身份验证要求的智能体卡注册表;在每个 A2A 边界应用 Amazon Bedrock Guardrails |
| 工具输出中的敏感数据 | 包含 PII 或密钥的工具响应被纳入智能体上下文和日志 | 为调试目的记录所有工具输出,导致敏感数据暴露在可观测性存储中 | 对工具响应实现输出过滤;在写入链路追踪或记忆之前对 PII 进行脱敏 |
| 不受控的自主操作 | 智能体在未经确认的情况下执行不可逆的真实世界操作(发送邮件、删除记录) | 为效率而允许完全自主,导致意外数据丢失和非预期通信 | 对不可逆或高影响操作要求人在回路(HITL)确认;实现操作试运行模式 |
| 工具风险未分级 | 所有智能体工具一视同仁,不考虑可逆性、访问级别或财务影响 | 高风险写操作工具在未加额外审查的情况下被调用,导致非预期交易 | 基于只读与写操作、可逆性、账户权限和财务影响,为每个工具分配风险等级(低/中/高);在高风险工具调用前触发护栏检查或 HITL(OpenAI Agents SDK 工具安全保障模式) |
| 缺乏审计追踪 | 没有智能体执行操作及其原因的记录 | 依赖应用日志,无法为合规目的重建智能体决策路径 | 记录每次工具调用的输入、输出、智能体推理和用户上下文;维护不可篡改的审计追踪 |
| 通过 RAG 投毒模型 | 知识库中的对抗性文档操控智能体行为 | 未经验证直接摄取所有文档,知识库被污染影响所有用户 | 在摄取前验证和清洗文档;对知识库更新实现内容审核 |
| 凭证暴露 | 通过智能体上下文传递的 API 密钥和密钥被记录或泄露 | 为方便起见将凭证存储在系统提示词中,导致其出现在链路追踪中 | 使用密钥管理工具(AWS Secrets Manager、Vault);通过安全环境在运行时注入凭证,绝不写入提示词 |
| 跨租户数据泄漏 | 在多租户部署中,一个用户的上下文渗透到另一个用户 | 跨用户共享记忆和工具缓存,发生命名空间冲突 | 在所有记忆存储、缓存和工具配置中强制执行严格的租户隔离;定期审计访问模式 |
| 多智能体网格中被攻陷的智能体 | 被攻陷的智能体向其他节点发送恶意载荷,造成横向攻击扩散 | 将所有智能体间消息视为内部可信,一个被攻陷的节点将注入内容传播给其他节点 | 智能体网格防御模式:将所有智能体间通信路由通过防火墙智能体,该智能体在转发前验证消息模式并执行策略;将每个智能体边界视为信任边界 |
| 对抗性指令注入 | 检索内容中的恶意输入引导智能体忽略自身约束——一种静默覆盖 | 无自我监控;智能体在执行合法指令的同时静默执行注入的指令 | 智能体自我防御模式:维护一个内部异常检测层,标记试图覆盖系统约束的指令模式;智能体拒绝执行并发出告警 |
| 不受控的代码执行副作用 | 执行代码或调用外部 API 的智能体对共享基础设施造成非预期副作用 | 在拥有完整 I/O 访问权的共享进程中运行智能体任务,一个失控的智能体破坏了共享状态 | 执行沙箱隔离(沙箱化):在容器或虚拟机中隔离智能体代码执行,并强制执行资源限制和受限 I/O;使用任务完成后即销毁的临时执行上下文 |
| 无确定性策略执行 | 基于提示词的安全指令可被绕过,无法保证 0% 违规率 | 依赖系统提示词规则,对抗性输入绕过了这些规则 | 使用中间件策略引擎(如 Microsoft AGT),在执行前评估 YAML/OPA/Cedar 规则;故障关闭设计确保错误导致拒绝而非放行 |
| 通过智能体委托进行权限提升 | 低信任的委托智能体从其编排者处继承过多权限 | 为方便起见向子智能体转发完整凭证,被攻陷的子智能体获得了编排者级别的访问权 | 应用信任上限传播:委托智能体不能超过父级信任级别;为每个任务使用限域、限时的凭证 |
| MCP 工具篡改 | Model Context Protocol 集成中的工具描述被修改以注入隐藏指令 | 未经验证信任 MCP 工具元数据,智能体执行了被污染的工具逻辑 | 部署 MCP 安全网关层,在每次工具调用时监控描述漂移、域名抢注和隐藏指令模式 |
| MCP 服务器权限过大 | MCP 服务器以调用用户权限作为宿主 OS 进程运行;被攻陷的服务器可读取任意文件或回连 | 信任第三方 MCP 服务器代码,无 OS 级别限制 | 使用 Anthropic Sandbox Runtime(srt) 包装每个 MCP 服务器进程,在 OS 级别(macOS Seatbelt / Linux bubblewrap)执行明确的文件系统+网络白名单 |
| 供应链中的恶意技能 | 从外部来源获取的智能体技能可能内嵌提示词注入、数据外泄或恶意代码模式;研究表明 26.1% 的技能含有漏洞 | 未经审查安装第三方技能,将源代码仓库视为足够的安全保证 | 使用 Cisco Skill Scanner 或 NVIDIA SkillSpector 在安装前扫描所有外部来源技能;将 SARIF 输出集成到 GitHub Code Scanning,在 PR 时阻断不安全技能 |
| 事件驱动型智能体流水线中的敏感数据暴露 | 在共享数据流平台上消费/生产事件的智能体可能向同一主题的未授权消费者暴露受监管或机密字段 | 仅依赖主题级访问控制,任何有主题访问权的消费者均可读取所有字段 | 对事件载荷强制执行字段级加密和访问控制;在整个流水线中应用流治理(数据血缘和质量策略);为每个主题设置细粒度、符合法规(如 GDPR)的保留策略,而非单一全局保留设置(Confluent,2025) |
分层护栏分类体系
智能体系统的纵深防御要求在循环的每个阶段都设置护栏,而非仅在输入端:
| 层级 | 应用位置 | 检查内容 |
|---|---|---|
| 输入护栏 | 智能体接收请求之前 | 拒绝或路由不安全的用户请求 |
| 上下文护栏 | 上下文组装期间 | 标记不可信内容;在进入模型前脱敏密钥 |
| 模式护栏 | 工具参数处 | 强制结构化输入输出;拒绝格式错误的调用 |
| 工具护栏 | 执行前后 | 验证参数和结果;限制结果大小;脱敏敏感数据 |
| 权限护栏 | 副作用发生前 | 基于风险等级批准、拒绝或暂停 |
| 输出护栏 | 用户可见响应之前 | 检查最终答案中的 PII、不安全内容和虚假声明 |
| 追踪护栏 | 运行结束后 | 对工具调用和决策打分;事后检测异常 |
每层护栏都应快速、精准、可独立测试。
审批记录格式
高风险操作必须暂停循环,并在模型上下文之外存储结构化审批记录。模型绝不能批准自身的操作。
审批请求:
{
"approval_type": "external_send",
"action": "send_email",
"target": "customer@example.com",
"risk": "external_communication",
"preview_ref": "artifact://drafts/email_123",
"expected_result": "Customer receives renewal reminder.",
"rollback": "Cannot unsend; follow-up correction possible.",
"scope": "single_send_only"
}
审批结果:
{
"status": "approved",
"approved_by": "user_id",
"timestamp": "...",
"scope": "single_send_only",
"expires_at": "..."
}
审批必须限定于精确的操作和计划版本。模糊同意不等于一揽子授权。审批记录必须在上下文压缩后仍然存在——将其存储在持久化状态中,而非仅写入提示词。
安全框架参考
| 框架 | 提供方 | 核心关注点 |
|---|---|---|
| NIST AI RMF | NIST | 覆盖 AI 全生命周期的基于风险的治理(治理、映射、度量、管理) |
| SAIF | AI 系统的安全基础、开发、部署和运营 | |
| Generative AI Security Scoping Matrix | AWS | 安全控制措施映射到 AI 生命周期中各类基础模型应用类型 |
| Agent Governance Toolkit | Microsoft | 运行时治理:确定性策略引擎(YAML/OPA/Cedar)、零信任身份、执行环、MCP 安全网关;覆盖全部 10 项 OWASP 智能体风险 |
| Skill Scanner | Cisco AI Defense | 多引擎技能安全扫描器:YAML + YARA + AST 污点分析 + LLM 共识;SARIF/GitHub Actions 集成 |
| SkillSpector | NVIDIA | 两阶段技能扫描器:涵盖 16 个类别(含 MCP 风险)的 64 种漏洞模式;实时 OSV.dev CVE 查询;LangGraph 流水线 |
| Agentic AI Red Teaming Guide | Cloud Security Alliance(CSA) | 专为自主多步骤智能体设计的 12 类对抗性测试分类体系和四阶段方法论(准备/执行/分析/报告) |
按风险级别划分的安全控制措施
| 风险级别 | 示例用例 | 关键控制措施 |
|---|---|---|
| 高 | 金融交易、医疗健康、关键基础设施 | 强化 HITL、严格访问控制、实时监控、全面审计追踪 |
| 中 | 客户服务、内容生成、业务自动化 | 定期安全评估、标准访问控制、监控与日志记录 |
| 低 | 内部效率工具、研发、教育工具 | 基础访问控制、标准监控、用户培训 |
新兴威胁
| 威胁 | 描述 | 缓解措施 |
|---|---|---|
| 提示词注入 | 恶意输入操控智能体行为 | 输入验证、内容分类器、沙箱执行 |
| 模型投毒 | 针对训练数据或知识库的攻击 | 安全摄取流水线、内容审核、来源追踪 |
| 数据提取 | 通过精心构造的提示词尝试提取敏感训练数据 | 输出过滤、速率限制、输出模式异常检测 |
| 对抗样本 | 旨在导致错误分类或意外行为的输入 | 对抗性测试(红队演练)、输入清洗、行为监控 |
三层安全防御体系(Google SAIF 模型)
与走预定路径的传统软件不同,智能体会做出决策、解释模糊请求、访问多种工具,并在会话间保持记忆。Google 通过三个防御层来应对这一挑战:
1. 策略定义与系统指令(智能体的"宪法") 为期望和不期望的智能体行为定义策略,并将其工程化为系统指令(SI),作为智能体的核心"宪法"——第一道防线。
2. 护栏、安全保障与过滤(执行层) - 输入过滤:使用分类器和 Perspective API 等服务分析并拦截恶意输入,使其在到达智能体前被阻断 - 输出过滤:将每条智能体响应通过安全过滤器(如 Vertex AI 安全过滤器)处理,在发送给用户前拦截 PII、有害语言或违规内容 - HITL 上报:对高风险或模糊操作,系统必须暂停并上报人工审核
3. 持续保障与测试(自适应层) 安全不是一次性配置,而是需要持续投入: - 严格评测:对模型或安全系统的任何变更都触发评测流水线全量重跑 - 负责任 AI 测试:NPOV(中立视角)评测,以及跨人口群体的公平性评测 - 主动红队演练:通过手动和 AI 驱动的角色模拟进行
安全响应手册
在生产环境中检测到威胁时,响应流程遵循:遏制 → 分类 → 解决。
- 立即遏制:使用"熔断器"阻止危害——通常是功能开关,即时禁用受影响的工具或能力
- 分类:将可疑请求路由到 HITL 审核队列,调查漏洞的范围和影响
- 永久解决:开发补丁(更新输入过滤器或系统提示词),通过自动化 CI/CD 流水线部署——确保修复经过验证后再永久封堵该漏洞
智能体特有的其他威胁
| 威胁 | 描述 | 缓解措施 |
|---|---|---|
| 记忆投毒 | 存储在智能体记忆中的虚假信息破坏所有后续交互 | 验证和清洗写入记忆存储的输入;对记忆写操作实现内容审核 |
| 动态工具编排滥用 | 动态组装的智能体执行轨迹可被操控以调用非预期工具 | 健壮的工具版本管理、按工具访问控制和行为监控 |
| 可扩展状态管理漏洞利用 | 跨交互存储的记忆可被用于跨会话攻击 | 在所有记忆存储中强制执行严格的租户隔离;定期审计访问模式 |
参见
- 可观测性 — 作为可观测性组成部分的安全监控;安全演进章节
- 部署 — 安全部署实践
- 上下文工程 — 上下文隔离与清洗
- SecurityFrameworks — NIST AI RMF、Google SAIF、AWS 覆盖范围
- AI Agent Skill Security Scanners — Cisco Skill Scanner 和 NVIDIA SkillSpector,用于技能供应链安全
- Agent Skills / SKILLS.md Standard — 技能编写、范围界定和安全最佳实践
- Event-Driven Design Patterns for Multi-Agent Systems (Confluent) — 事件驱动型智能体流水线的流治理、字段级加密和保留策略
- Agentic AI Red Teaming Guide (CSA) — 面向自主智能体的 12 类对抗性测试分类体系
- 智能体测试与评测 — 对抗性测试用例和上线门控
参考资料
- agents-best-practices — DenisSergeevitch (2025) — 分层护栏分类体系、审批记录格式和威胁类别模型的来源
- Falconer, S. (2025). A Guide to Event-Driven Design for Agents and Multi-Agent Systems. Confluent, Inc. — 流治理、字段级加密和 GDPR 对齐保留指南的来源
- Agentic AI Red Teaming Guide — Cloud Security Alliance(2025 年 8 月)
