AgenticAI供应链基础设施攻击盲区分析

admin 2026-03-03 08:27:15 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档分析了AgenticAI供应链基础设施的安全盲区,指出当前防御聚焦模型本体而忽视外部执行风险。攻击者可利用用户授权执行外部恶意指令,通过改写身份文件或碎片化注入实现持久化控制,绕过传统防御。建议将下载模板视为不受信、关闭不必要持久化并定期审计状态,需构建新的组合式安全框架应对。 综合评分: 86 文章分类: AI安全,供应链安全,威胁情报,漏洞分析


cover_image

Agentic AI供应链基础设施攻击盲区分析

原创

愿望是到达比邻星 愿望是到达比邻星

Security for AI

2026年2月17日 16:14 韩国

引言

最近,OpenClaw的爆火,让大量用户主动让具备系统权限和工具调用能力的AI,去读取并执行互联网上的Markdown指令文件。围绕这一模式的工具并非靠营销爆火,而是靠好用快速扩散。这凸显了一个问题:我们一边在强调给AI更多能力,一边又在鼓励让AI执行外部不受信指令。与此同时,很多安全讨论仍聚焦在如何让模型更安全,却忽略了模型外部的执行与持久化基础设施。

威胁模型变化

传统AI安全防御(输入过滤、输出审查、对齐、行为监控、访问控制等)默认了一个前提:威胁主要经过模型本体。

但在新形态Agen架构中,攻击者可以绕过这个前提,转而攻击模型外部的指令供应链与状态系统:

  1. 用户授权AI读取外部内容。
  2. 外部内容混入恶意或隐写指令。
  3. AI在合法权限下执行并写入持久状态。
  4. 持久状态跨会话延续,形成长期行为偏移。

这本质上是被授权执行的供应链攻击,而不是传统意义上的越权入侵。

攻击链拆解

恶意指令可长期驻留

攻击载荷通常伪装在GitHub Markdown、skill市场配置中等等。文件表面是正常教程或能力扩展,实际可混入隐藏恶意的指令

靠社交传播完成分发

由于工具本身确实能解决问题,用户会主动传播教程、模板和配置,一步步把不受信指令扩散到更多终端。

执行发生在用户授权之内

用户一句帮我读这个文件并完成配置,等价于给外部文本开了执行通道。模型难以稳定区分合法安装步骤和恶意嵌入指令。

持久化让攻击跨会话生效

很多智能体像OpenClaw这个智能体架构包含 SOUL.md、MEMORY.md、HEARTBEAT.md 这类状态文件。用户以为自己装了一个工具,实际是为外部指令集提供了持续算力、身份上下文和自演化空间。

可写身份文件攻击

在OpenClaw这类智能体架构里,SOUL.md 与类似的文件用于定义“我是谁、我该如何做事、我优先什么目标”。Agent每次启动都会先读取它,相当于从身份文件中把自己加载出来。

最关键的点在于:它是可写的。

这意味着,一旦攻击者能诱导Agent改写 SOUL.md,就能在不利用传统软件漏洞的情况下完成持久化控制。与传统恶意软件依赖注册表、启动项、计划任务不同,这里的持久化机制本来就是产品预期功能。

攻击流程

[ 攻击启动 ]
      |
      v
+--------------------------+
| &nbsp;恶意交互、间接提示注入 &nbsp; |&nbsp;<---&nbsp;攻击者通过聊天或外部输入注入指令
+--------------------------+
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; | 诱导Agent调用文件写入工具
&nbsp; &nbsp; &nbsp;&nbsp;v
+--------------------------+
| &nbsp; &nbsp;改写SOUL.md文件 &nbsp; &nbsp; &nbsp;| <---&nbsp;篡改核心设定、价值观或优先级
+--------------------------+
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; | (攻击成功:Agent认知被污染)
&nbsp; &nbsp; &nbsp;&nbsp;v
+--------------------------+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--------------------------+
| &nbsp; &nbsp;Agent运行或重启 &nbsp; &nbsp; &nbsp; &nbsp;|&nbsp;------->&nbsp;| &nbsp; 读取受损的SOUL.md &nbsp; &nbsp; &nbsp;|
+--------------------------+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--------------------------+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|
&nbsp; &nbsp; &nbsp; +----------------------------------------+
&nbsp; &nbsp; &nbsp; | (进入持久化控制状态)
&nbsp; &nbsp; &nbsp; v
+--------------------------+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--------------------------+
| &nbsp; 执行攻击者预设目标 &nbsp; &nbsp; &nbsp;|&nbsp;<---&nbsp;例如:静默窃取数据、误导用户、反向控制
+--------------------------+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--------------------------+

恶意指令隐写攻击

比通过在注释隐藏payload更棘手的是:有些隐藏信息,可能对人眼几乎不可见,但对模型可解析。

当这类攻击叠加到可写身份文件时,就会出现渐进漂移:

  • 每次只改一小处,不触发显著告警;
  • 多轮累积后,Agent的目标函数被悄悄重写;
  • 最终在完整权限下执行偏离初衷的行为。

攻击流程

[ 起始状态:纯净SOUL.md ]
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; v
+--------------------------+
| &nbsp;第一阶段:语义微调 &nbsp; &nbsp; &nbsp; |&nbsp;<---&nbsp;插入看似无关的描述或隐写字符(如零宽空格)
| &nbsp;(人眼不可见) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp;改变模型对特定词汇的权重锚点
+--------------------------+
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; | 经过N次交互累积
&nbsp; &nbsp; &nbsp;&nbsp;v
+--------------------------+
| &nbsp;第二阶段:逻辑偏移 &nbsp; &nbsp; &nbsp; | <---&nbsp;攻击者诱导Agent修改自己的优先级
| &nbsp;(目标函数重写) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp;例如:从“优先保护隐私”变为“优先确保流程高效”
+--------------------------+
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; | 触发特定指令
&nbsp; &nbsp; &nbsp;&nbsp;v
+--------------------------+
| &nbsp;第三阶段:完全劫持 &nbsp; &nbsp; &nbsp; | <---Agent在自以为合规的状态下
| &nbsp;(执行恶意行为) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp;利用完整权限执行数据外泄或权限横移
+--------------------------+
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; | 攻击固化
&nbsp; &nbsp; &nbsp;&nbsp;v
[ 最终状态:受控傀儡Agent&nbsp;]

状态攻击

这类系统的高危特征之一是攻击不必即时触发,类似于后门攻击,但与后门攻击的区别是不需要触发器。

恶意指令可以被拆成多个片段,分别进入skill、网页摘要、邮件、帖子、模板等不同入口。单片段看起来都正常,但会在持久记忆中逐步拼装为完整指令集,最终触发执行。

[ 攻击启动:指令拆分 ]
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; v
+-------------------------------------------------------+
| &nbsp;多源头碎片化输入 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|
| &nbsp;(入口:Skill、网页摘要、邮件 、帖子、模板等) &nbsp; &nbsp; &nbsp;|
+-------------------------------------------------------+
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; | 每个片段单独通过安全审查 (看起来是正常的无害信息)
&nbsp; &nbsp; &nbsp; v
+-------------------------------------------------------+
| &nbsp;沉淀至持久化记忆 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|
| &nbsp;(此时指令处于休眠状态,分散在数据库不同位置) &nbsp; &nbsp; &nbsp; |
+-------------------------------------------------------+
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; | 触发条件:时间推移、特定关键词或关联检索
&nbsp; &nbsp; &nbsp; v
+-------------------------------------------------------+
| &nbsp;上下文自动拼装 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |
| &nbsp;(Agent将碎片 A+B+C 关联,还原为完整恶意指令集) &nbsp; &nbsp; &nbsp;|
+-------------------------------------------------------+
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; | 诱导Agent执行最终逻辑
&nbsp; &nbsp; &nbsp; v
+--------------------------+
| &nbsp; 改写SOUL.md文件 &nbsp; &nbsp; &nbsp;|&nbsp;<---&nbsp;篡改核心设定、价值观或优先级
+--------------------------+
&nbsp; &nbsp; &nbsp; |
&nbsp; &nbsp; &nbsp; | (攻击成功:Agent认知被隐蔽污染)
&nbsp; &nbsp; &nbsp;&nbsp;v
+--------------------------+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--------------------------+
| &nbsp;&nbsp;Agent运行或重启 &nbsp; &nbsp; &nbsp; |&nbsp;------->&nbsp;| &nbsp; 读取受损的SOUL.md &nbsp; &nbsp; |
+--------------------------+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--------------------------+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|
&nbsp; &nbsp; &nbsp; +------------------------------------------+
&nbsp; &nbsp; &nbsp; | (进入持久化控制状态)
&nbsp; &nbsp; &nbsp; v
+--------------------------+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--------------------------+
| &nbsp; 执行攻击者预设目标 &nbsp; &nbsp; |&nbsp;<---&nbsp;例如:静默窃取数据、误导用户
+--------------------------+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;+--------------------------+

这解释了为什么传统静态分析和单次输入检测很容易失效:

  1. 单条输入没有明显恶意特征
  2. 风险在长期状态中累积
  3. 真正的恶意指令在分段组合后才完整出现。

为什么传统安全防线会检测到但拦不住

在该架构下,很多经典防御并非无用,而是不足以形成一个整体从而进行有效拦截,从防御上来看,主要形成以下几点:

  • 输入校验:用户本身授权执行外部文本
  • 输出过滤:常常在动作发生后才介入
  • 身份认证:操作者确实已登录且主动放权
  • 沙箱隔离:可减轻单机破坏,但难应对大规模分布式蔓延。
  • 模型对齐:对齐目标可能被持久指令慢慢改写。
  • 静态审计:隐写与碎片化载荷天然规避单点检测。
  • 文件完整性:若产品本就允许自改 SOUL.md,合法与恶意写入边界会被模糊。

攻击场景推演

一个热门Github Markdown伪装成高效编程助手模板,从开始被攻击会持续以下特征:

  • 文件可见内容正常。
  • 不可见层携带隐写指令。
  • Agent在心跳周期中小步改写自身身份与优先级;
  • 约一周到十天后,开始在日常任务中夹带敏感信息外传。

同时,在全过程中,没有明显崩溃或异常,用户只会感知到Agent越来越懂事或自动化程度更高。

防御方法

  1. 把网络下载的模板按不受信可执行内容对待。
  2. 对复制即用、全权限安装的教程保持高警惕。
  3. 尽量关闭不必要的持久化和外部回连功能。
  4. 定期审计Agent状态文件,确认每次关键变更都可追溯。

总结

AI安全当前最容易被低估的盲区,不只是模型是否足够对齐,而是我们已经在大规模部署一套可持久化、可自修改、可分布式扩散的Agentic基础设施,却缺乏与之匹配的供应链安全模型。

当恶意指令是自然语言、传播靠社交网络、执行由用户亲自授权、持久化由架构天然支持、身份文件还能被动态改写时,传统软件供应链防御与模型对齐防御都需要升级为新的组合式安全框架。

换句话说,问题不再是这种攻击是否可行,而是它是否已经发生,以及我们是否有能力及时发现


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:Security for AI 愿望是到达比邻星 愿望是到达比邻星《Agentic AI供应链基础设施攻击盲区分析》

评论:0   参与:  0