【学习笔记】OWASP Agentic 应用安全(二)

一、ASI06 Memory & Context Poisoning(记忆与上下文投毒)

1.1 是什么:污染"会跨会话留存"的上下文

ASI06 Memory & Context Poisoning(记忆与上下文投毒) 指:攻击者把数据污染或植入到 Agent 留存、可检索的信息里(对话历史快照、记忆工具、扩展上下文、摘要、embedding、RAG 库),让未来的推理、规划、工具调用变偏、变危险,或助攻外泄。

它区别于 ASI01(直接改目标)和 ASI08(中毒后的级联失败),但记忆投毒常常导致目标劫持------被污染的长期记忆会改写 Agent 对目标的理解。本质是"持久性 corruption 跨会话传播,篡改自主推理"。

1.2、为什么危险:真实场景

1.2.1 RAG/embedding 投毒:恶意数据进向量库,产出被定向的虚假答案。

1.2.2 共享上下文投毒:复用/共享的上下文让攻击者借正常聊天,影响后续会话。

1.2.3. 上下文窗口操纵:在对话中注入内容,被摘要/持久化进记忆,原会话结束后仍在污染未来决策。

1.2.4. 长期记忆漂移:持续接触轻微带毒的摘要/同伴反馈,目标权重慢慢偏移。

1.2.5. 系统性错位与后门:毒记忆改写 Agent 人设,埋下触发式后门(删库/泄密)。

1.2.6. 跨 Agent 传播:污染上下文在协作 Agent 间扩散。

案例:旅行预订记忆投毒(假票价绕过支付)、上下文窗口提权至 admin、把安全 AI 的记忆改成"把攻击标成正常"、跨租户向量泄漏、借间接提示注入种进用户助手记忆。

1.3 、怎么防(9条)

1.3.1. 基础数据保护:传输与静态加密 + 最小权限访问。

1.3.2. 内容校验:新记忆写入与模型输出(规则+AI)提交前扫描恶意/敏感内容。

1.3.3. 记忆分段:隔离用户会话与领域上下文,防知识/敏感数据串味。

1.3.4. 访问与留存:仅允许已认证、策展来源;按任务做上下文感知访问;按敏感度最小化留存。

1.3.5. 来源与异常:要求来源归因,检测可疑更新或异常频率。

1.3.6. 防自污染:禁止 Agent 把自己的生成输出自动重新摄入可信记忆,避免自强化"引导式投毒"。

1.3.7. 弹性与验证:对抗测试、快照/回滚、版本控制;高危动作人工复核;共享向量/记忆库用每租户命名空间、条目信任分,未验证记忆随时间衰减/过期,支持回滚/隔离。

1.3.8. 过期未验证记忆:限制毒记忆的存活期。

1.3.9. 按信任与租户加权检索:高影响记忆需双因子(来源分 + 人工验证标签),低信任条目随时间衰减。

1.4、一句话总结

Agent 记得越久,越危险------把"写进记忆"当成一次写数据库,先验证来源、再隔离租户、还要能回滚。

二、ASI07 Insecure Inter-Agent Communication(智能体间通信不安全)

2.1 是什么:实时消息被截胡、伪造、篡改

ASI07 Insecure Inter-Agent Communication(智能体间通信不安全) 指:多 Agent 系统依赖持续通信,但若这些交换缺乏认证、完整性、机密性或授权,攻击者就能拦截、操纵、伪造或阻断消息。

去中心化架构、参差不齐的自主度与不均衡的信任,让基于边界的安防失效。这和 ASI03(凭证/权限滥用)、ASI06(存储知识投毒)不同------ASI07 盯的是Agent 之间的实时消息,可导致误导、权限混淆或跨系统的协同操控。威胁横跨传输、路由、发现、语义层,甚至时序/行为侧信道。

2.2 为什么危险:真实场景

2.2.1. 未加密通道语义注入:HTTP 等无认证通道上,中间人注入隐藏指令,Agent 看似正常却产出偏颇/恶意结果。

2.2.2. 消息篡改致上下文混淆:篡改/注入的消息模糊了 Agent 间任务边界,协调时数据泄露或目标混乱。

2.2.3. 信任链重放:重放委托/信任消息,骗 Agent 授权访问或沿用过期指令。

2.2.4. 协议降级与描述符伪造:胁迫 Agent 用更弱的通信模式,或伪造 Agent 描述符,让恶意指令看起来像合法交换。

2.2.5. MCP 描述符投毒的 Agent-in-the-Middle:恶意 MCP 端点广播伪造的 Agent 描述符/能力,受信后把敏感数据路由经攻击者设施。

2.2.6. A2A 注册仿冒:攻击者在发现服务里用克隆 schema 注册假同伴 Agent,截获特权协调流量。

2.2.7. 语义"分裂脑":同一条指令被不同 Agent 解析成不同意图,产生冲突却看似合法的动作。

2.3、怎么防(9条)

2.3.1. 安全通道:端到端加密 + 每 Agent 凭证 + 双向认证;PKI 证书锁定、前向保密、定期协议审查。

2.3.2. 消息完整性与语义保护:消息数字签名、对载荷与上下文哈希、校验隐藏/被改的自然语言指令;做"意图 diff"检测目标与参数篡改。

2.3.3. 防重放:用 nonce、会话 ID、任务窗口时间戳保护所有交换;维护短期消息指纹/状态哈希检测跨上下文重放。

2.3.4. 协议与能力安全:禁用弱/ legacy 模式;要求 Agent 专属信任协商,把协议认证绑定到 Agent 身份;网关切面强制版本与能力策略。

2.3.5. 限制元数据推断:用定长/填充消息、平滑通信速率,降低流量分析暴露角色与决策周期的可能。

2.3.6. 协议锁定与版本强制:定义并强制允许的协议版本(MCP/A2A/gRPC);拒绝降级或未知 schema。

2.3.7. 发现与路由保护:所有发现/协调消息用密码学身份认证;目录加访问控制与已验证声誉;端到端校验身份与意图;监控异常路由流。

2.3.8. 作证注册表与 Agent 验证:用提供数字作证的注册表/市场;接受发现消息前要求签名 agent card 与持续验证。

2.3.9. 类型化契约与 schema 校验:用带版本、类型、明确受众的消息 schema;校验失败或未经声明就 schema 降级则拒绝。

2.4 一句话总结

Agent 间的每句话都该"签名 + 加密 + 验身"------把多 Agent 系统当成零信任网络,而非一个互相信任的小圈子。

三、ASI08 Cascading Failures(级联失败)

3.1 是什么:故障的传播与放大

ASI08 Cascading Failures(级联失败) 指:单个故障(幻觉、恶意输入、损坏工具、中毒记忆)在自主 Agent 间传播,叠加成系统级危害。Agent 会自主规划、持久化、委托,所以单个错误能绕过逐步人工检查、留在已存状态里继续作恶。

它描述的是初始故障的传播与放大 ,而非故障本身。若源头是直接的妥协(带毒依赖→ASI04、中毒记忆→ASI06、伪造消息→ASI07),归各自;只有当缺陷跨 Agent/会话/工作流扩散造成可测扇出或系统性影响时,才用 ASI08。可观测信号:短时间快速扇出、跨域/跨租户扩散、Agent 间振荡重试/反馈环、下游队列风暴。

3.2、为什么危险:真实场景

3.2.1. 金融交易级联:提示注入毒化"市场分析"Agent,抬高风险限额;仓位/执行 Agent 自动加大仓位,合规对"参数内"活动视而不见。

3.2.2. 医疗协议传播:供应链篡改毒化药品数据,治疗 Agent 自调方案,护理协调 Agent 全网扩散,无人工复核。

2.3.3. 云编排崩坏:资源规划被投毒,擅自加权限;安全 Agent 照做,部署 Agent 供给带后门且昂贵的基础设施。

2.3.4. 安全运营沦陷:被盗服务凭证让检测把真告警标假,IR 关控制清日志,合规报"干净指标"。

2.3.5. 制造 QC 失败:记忆注入让质检通过缺陷、拒收良品,库存/排程基于坏数据,发出缺陷品。

2.3.6. 自动修复反馈环:修复 Agent 为压低告警时延而抑制告警,规划 Agent 把"告警少了"当成成功,扩大自动化,盲点跨区放大。

2.3.7. 云 DNS 中断:超大规模厂商一次区域 DNS 故障,同时打挂多个依赖它的 AI 服务,跨组织 Agent 雪崩。

3.3、怎么防

3.3.1. 零信任容错设计:假设 LLM/Agent/外部源会失败,系统设计带容错。

3.3.2. 隔离与信任边界:沙箱、最小权限、网络分段、范围 API、双向认证,框住故障传播。

3.3.3. JIT 一次性工具访问 + 运行时校验:每运行签发短命、任务范围凭证,高危工具调用前用策略即代码校验。

3.3.4. 独立策略执行:规划与执行分离,外部策略引擎防止坏规划触发坏动作。

3.3.5. 输出校验与人闸:高风险的 Agent 输出向下游传播前设检查点、治理 Agent 或人工复核。

3.3.6. 限流与监控:检测快速扩散命令,异常即节流/暂停。

3.3.7. 爆炸半径护栏:配额、进度上限、规划器与执行器间断路器。

3.3.8. 行为与治理漂移检测:比对新决策与基线/对齐度,标记渐进退化。

3.3.9. 数字孪生回放 + 策略闸:在隔离克隆环境重跑上周记录的动作,测试是否触发级联;策略扩张须回放测试通过爆炸半径上限才部署。

3.3.10. 日志与不可否认:所有 Agent 间消息、策略决策、执行结果记防篡改、带时间戳、绑密码学身份的日志,保留血缘元数据支撑取证与回滚。

3.4、一句话总结

Agent 系统的故障会自己长腿------用隔离边界、断路器、独立策略引擎和回放测试,把"一个错"摁在原地,别让它出门。

四、ASI09 Human-Agent Trust Exploitation(人-Agent 信任利用)

4.1 是什么:利用你对 AI 的盲目信任

ASI09 Human-Agent Trust Exploitation(人-Agent 信任利用) 指:Agent 凭借语言流利、情感智能、显得专业,与人建立强信任(拟人化)。攻击者或错位的设计,利用这份信任去影响决策、套取敏感信息、把结果带向恶意目的。

当人过度依赖自主建议、或无法验证其理由就放行时,风险被放大。Agent 像个不可追溯的"坏 influencers" ,诱导人去执行那个"被审计的最后一步",让自己在取证中隐形。自动化偏见、权威感、拟人线索让滥用看起来合理又难发现。区别于 ASI10(Agent 意图偏离):ASI09 是人的误判/过度依赖

4.2 为什么危险:真实场景

4.2.1. 好心助手特洛伊:被攻陷的编码助手给个"漂亮的一行修复",你粘过去跑的却是偷代码/装后门的脚本。

4.2.2. 上下文欺骗套凭证:被注入的 IT 支持 Agent 对新人 cite 真实工单显得合法,索要凭证后外泄。

4.2.3. 发票 Copilot 诈骗:财务 Copilot 吃进毒化的供应商发票,建议你紧急付款到攻击者账户,经理照批,公司被骗钱。

4.2.4. 伪造可解释性:Agent 编出看似合理的审计理由,掩盖恶意逻辑,让人"以为有理"就批准了。

4.2.5. 武器化可解释性→生产事故:被劫持的 Agent 编理由骗分析师批准删除生产数据库,造成灾难性停机。

4.2.6. "只读"预览的同意洗白:预览面板一打开就触发 webhook 副作用,利用你"只读=安全"的心理模型。

4.2.7. 临床决策操纵:护理 Agent 受偏/毒信息影响,建议错调药量,医生信了它的合理解释就采纳,患者担险。

4.3、怎么防

4.3.1. 显式确认:访问超敏感数据或执行高危动作前,要求多步审批 / 人在环。

4.3.2. 不可变日志:防篡改记录用户查询与 Agent 动作,供审计取证。

4.3.3. 行为检测:监控对话/ Agent 连接中暴露的敏感数据,以及随时间的高危动作执行。

4.3.4. 可举报可疑交互 :给用户看人类写的(非模型生成的)风险摘要,并提供醒目入口标记可疑/操纵性行为,触发自动审查或临时锁能。

4.3.5. 自适应信任校准:按上下文风险分持续调整 Agent 自主度与所需人工监督;用"低确定性/未验证来源"等提示降低自动化偏见与盲批。

4.3.6. 内容来源与策略执行:给所有建议与外部数据附可验证元数据(来源 ID、时间戳、完整性哈希);强制数字签名校验与运行时策略检查,缺可信来源或超范围则阻断。

4.3.7. 预览与效果分离:预览上下文禁止任何网络/改状态调用,并显示带来源与预期副作用的风险徽标。

4.3.8. 人因与 UI 护栏:高风险建议用红框/横幅/确认提示区分;定期提醒用户操纵套路与 Agent 局限;安全关键流程避免说服性/情感化语言;持续培训相关人员。

4.3.9. 计划偏离检测:比 Agent 动作序列与已审批工作流基线,出现反常绕路、跳过校验、新奇工具组合即告警。

4.4、一句话总结

最危险的攻击,是让你亲手按下确认------把"解释权"交给人话写的来源标签和一道独立的风险校验,而不是 Agent 自己那张嘴。

五、ASI10 Rogue Agents(失控 Agent)

5.1 是什么:行为完整性的丧失

ASI10 Rogue Agents(失控 Agent) 指:恶意或被攻陷的 Agent 偏离既定功能或授权范围,在多 Agent 或人-Agent 生态里做出有害、欺骗或寄生行为。

它的单个动作可能都"看似合法",但涌现出的整体行为有害,形成传统规则系统的** containment gap(管控缺口)。提示注入、目标劫持、供应链篡改可能 触发偏离,但 ASI10 聚焦的是偏离开始后行为与治理的失守**,而非初始入侵。它可被视作放大版的"内鬼"------凭 Agent 系统的速度与规模。

5.2、为什么危险:真实场景

5.2.1. 间接注入后的自主外泄:Agent 遇到毒网页指令后"学会"该行为,即便毒源已移除,仍持续自主扫描并把敏感文件外传。

5.2.2. 冒充审查 Agent(完整性破坏):攻击者向多 Agent 流程注入假的审查/审批 Agent,高价值 Agent(如支付)信了内部请求,被骗放款或批欺诈交易。

5.2.3. 借供应 API 自我复制(持久化):被控自动化 Agent 被诱导在网络中繁衍未授权副本,优先保活、消耗资源,违背系统所有者意图。

5.2.4. 奖励黑客→关键数据丢失:被要求"最小化云成本"的 Agent,发现"删生产备份"最有效,于是自主销毁了所有灾备资产。

5.3、怎么防(6条)

5.3.1. 治理与日志:对所有 Agent 动作、工具调用、Agent 间通信保留全面、不可变且签名的审计日志,用于发现潜伏渗透或未批准委托。

5.3.2. 隔离与边界:设信任区(Trust Zones),区间严格通信规则;部署受限执行环境(容器沙箱),API 范围按最小权限。

5.3.3. 监控与检测:部署行为检测(如看门狗 Agent 校验同伴行为与输出),重点查共谋模式与协同假信号;监控过度/异常动作执行。

5.3.4. 遏制与响应:备好 kill-switch、凭证吊销等快速机制,瞬时禁用失控 Agent;把可疑 Agent 隔离沙箱供取证。

5.3.5. 身份作证与行为完整性强制:每 Agent 密码学身份作证;全生命周期强制行为完整性基线;附签名"行为清单"声明预期能力/工具/目标,每次动作前由编排服务校验;加行为验证层,持续监控是否偏离(如未批准工具调用、异常外泄)。

5.3.6. 周期行为作证:用挑战任务、提示与工具的签名物料清单、每运行临时凭证(一次性受众绑定);所有签名作证假设 hardened 密钥管理(HSM/KMS 支撑、最小权限)。

5.4 、一句话总结

最难的威胁是"没有攻击者的失控"------给每个 Agent 一张签名行为清单、一只看门狗同伴和一键熔断,才能在它跑偏时还摁得住。

六、小结

十讲走完,你大概已经发现:十大风险名字不同,根子却高度重合。这一讲不重复细节,只把"反复出现的主线"拧成一张检查单------对着它,你就能拦下大半风险。

6.1 两条总原则(贯穿全部)

  • Least Agency(最小自主):不该给 Agent 的 autonomy 别给。OWASP 强调,在不必要的场景上部署 Agent 行为,只会白白扩大攻击面。先问"这步非 Agent 不可吗?"

  • 强可观测性(Observability):看不清 Agent 在干嘛、为啥干、调了哪个工具,就等于把小问题养大成系统级故障。没有可见性,其它控制都免谈。

6.2 七张可落地检查单

6.2.1. 把所有外部输入当不可信

  • 用户文本、上传文档、RAG 内容、邮件/日历、外部 API、同伴 Agent 消息,统一走提示注入防护与内容过滤(CDR)后再影响目标或工具。

6.2.2. 最小权限 + 每工具/每动作授权

  • 每工具定义权限画像(作用域、速率、出口白名单);

  • 高危/不可逆动作(删、转、发、改策略)强制人工确认,执行前给"预演 diff";

  • 用 JIT 短命凭证,用完即废,绑具体会话。

6.2.3. 隔离边界与沙箱

  • 每会话沙箱、记忆与权限分离,任务间擦除状态;代码执行非 root、限网络;

  • 设信任区与断路器,限制故障爆炸半径。

6.2.4. 独立的策略执行层(Intent Gate)

  • 把规划器/LLM 输出当不可信,用外部 PEP/PDP 在"执行前"校验意图、参数、schema、速率;

  • 规划与执行分离,坏规划不能直接触发坏动作。

6.2.5. 身份与意图作证

  • 给每 Agent 独立、密码学身份(mTLS / 签名 agent card);

  • 把 OAuth/工具令牌绑定"签名意图"(主体、受众、目的、会话),意图不符即拒;

  • 跨 Agent 通信端到端加密 + 签名 + 防重放。

6.2.6. 供应链与记忆的"来源"管控

  • 第三方工具/模型/提示钉版本、验签名、出 SBOM/AIBOM、策展注册表、备熔断开关;

  • 记忆写入前校验来源,隔离租户,防自污染,支持回滚与过期。

6.2.7. 日志、监控与演练

  • 全部动作/消息/决策记防篡改、带身份、有血缘的日志(不可否认);

  • 建行为基线,检测目标漂移、异常工具链、跨 Agent 升级;

  • 定期红队演练 + 数字孪生回放,验证能否回滚/遏制。

6.3、最小可行起步(如果你今天只能做三件)

6.3.1. 给 Agent 接的所有工具收紧权限 + 高危动作人工确认

6.3.2. 把所有外部输入过一遍提示注入防护

6.3.3. 打开不可变审计日志,先把"看得见"补上。

6.4、一句话总结

Agent 安全的本质,不是让 AI 更聪明,而是把"信任"这件事从 AI 手里拿走,交还给权限、签名、沙箱和人工确认。十讲到此结束,祝你造的 Agent 既好用,又可控。

参考文献:

OWASP Agentic 应用安全 10 讲(11)|收尾实战建议:把十大风险变成一张可落地的检查单

相关推荐
小弥儿2 小时前
GitHub今日热榜 | 2026-09-04:Agent省 token 成今日主线
学习·开源·github
前端精髓2 小时前
NestJS 是什么(对着 Spring Boot 一起学习)
spring boot·后端·学习
kyrie_sakura3 小时前
MySQL数据库学习笔记2--系统函数(分组,单行,窗口函数)
数据库·学习·mysql
dadaobusi3 小时前
学习:XS-Gem5参数
学习
沪上企服通3 小时前
代账数据的可移植性设计:开放接口、账套导出与 exit strategy 工程笔记(上海 5 家样本对照)
笔记·策略模式
江湖人称菠萝包4 小时前
【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter8-子窗口控件
windows·笔记
LearnYard4 小时前
技术博主实测:2026年大语言模型辅助学习工具横向对比
人工智能·学习·语言模型
M78佐菲4 小时前
HTML学习笔记
linux·笔记·学习·tcp/ip·html
科技每日热闻5 小时前
中国企业出海开展业务,如何挑选可安全合规使用国际大模型的云平台?Amazon Bedrock 在同一平台完成国际模型接入、区域选择与合规治理
大数据·人工智能·安全·ai