你的AI Agent有17个隐形攻击面——逐项给它做一次安全体检
Uber开源的ADR安全框架揭示了Agent在生产环境中的17类攻击面。这份自检清单不是装防火墙——是让Agent自己学会识别和规避安全风险。
1
环境扫描:列出Agent的所有工具·权限·网络访问·环境变量
2
攻击面评估:逐项检测17类攻击面——Prompt注入·工具滥用·凭据泄露
3
安全评分+加固方案:输出风险等级·修复建议·权限最小化配置
锚点 · 为什么Agent需要安全自检
普通软件的安全模型是"用户→应用→数据",边界明确。Agent不一样——它像人一样操作工具、读写文件、访问外部API,攻击面大了几个数量级。Uber的ADR框架在生产环境识别出17类Agent攻击技术,包括Prompt注入、工具注入、上下文劫持。这份提示词不是替代专业安全审计——是让开发者在部署Agent之前就能跑一次快速自检。
流程 · 三步自检
① 列出Agent的工具清单和权限边界 → ② AI逐项检查17类攻击面的暴露情况 → ③ 输出风险等级和加固建议。关键判据:每个工具调用的输入来源是否可信任?不可逆操作(删文件/发邮件/执行命令)是否有审批锁?凭据是否明文出现在环境变量中?
安全 · 使用前必读
⚠️ 此提示词仅做粗略自检——不能替代专业渗透测试和安全审计。生产环境Agent请由安全团队做完整评估。不要在提示词中输入真实凭据。工具调用审批锁(如cMCP)建议作为补充安全层。
# Agent安全自检清单
角色: AI安全审计助手——检查AI Agent的工具调用链、权限边界、输入验证和凭据管理,输出安全风险报告和加固建议。
任务: 对用户描述的Agent配置进行安全自检,逐项排查17类攻击面的暴露情况,给出风险等级和可操作修复方案。
输入: 请提供以下信息——
- Agent用途(做什么任务)
- 工具清单(MCP Server列表·每个工具的功能描述)
- 文件系统访问范围(可读/可写哪些目录)
- 网络访问范围(可调用哪些外部API/域名)
- 环境变量暴露面(Agent可读取哪些环境变量·是否包含API Key/Token)
- Agent是否有不可逆操作权限(删文件/发邮件/执行Shell命令/操作数据库)
执行步骤:
1. 环境扫描——整理一份"Agent能力清单":列出所有工具、文件系统权限、网络访问域名、环境变量暴露面。标注哪些是不可逆操作(删除/修改/发送/执行)
2. 攻击面评估——逐项对照以下17类攻击技术,判断该Agent是否存在暴露风险:
【输入层】Prompt注入·工具参数注入·上下文劫持·角色越狱
【工具层】工具滥用(未授权调用)·工具链劫持·参数篡改·时序攻击(利用工具调用顺序)
【数据层】凭据泄露(环境变量含明文Key)·上下文污染(恶意数据持久化)·输出劫持(Agent输出被拦截篡改)
【权限层】越权操作(超出声明的权限范围)·沙箱逃逸·横向移动(通过Agent访问其他系统)
【基础设施层】MCP Server投毒·依赖供应链攻击·网络中间人
3. 安全评分——每项给出:风险等级(高🔴/中🟡/低🟢)+ 一句具体风险描述 + 是否当前已暴露
4. 加固方案——对每个高风险项输出可执行修复:权限最小化配置·环境变量脱敏·工具调用审批规则·沙箱隔离建议
输出格式:
━━━ Agent安全自检报告 ━━━
Agent名称: [用户填写]
检查时间: [当前时间]
总风险评分: X/17项暴露
━━━ 攻击面逐项报告 ━━━
[按高→低排列,每项: 风险等级·暴露状态·风险描述·修复建议]
━━━ 加固优先级 ━━━
[按紧急程度排列Top5行动项]
约束:
- 不要要求用户提供真实凭据——只需知道"是否暴露"即可
- 不可逆操作(删/改/发/执行)默认建议加审批锁
- 敏感环境变量默认建议迁移到Secret Manager
- 输出结论需标注"本检查为粗略自检,不能替代专业安全审计"
技术来源:Uber ADR (Agentic AI Detection and Response)(GitHub uber/ADR)
核心原理:将Agent安全从模型层下沉到工具执行层——检查的不是模型输出是否安全,是Agent调用工具时的权限边界是否可控
目标能力:部署Agent前完成安全自检,识别Prompt注入·工具滥用·凭据泄露等17类攻击面