当攻击者具备推理能力时,什么发生了变化
基于签名的检测假设恶意代码和命令序列足够稳定,可以被捕获为痕迹:文件哈希、字节模式、已知命令字符串。当入侵工具执行固定脚本时,这一假设成立。但当工具在运行时从一组模型中选择下一步行动时,这一假设就失效了。
在这样的系统中,载荷不是单一的痕迹,而是关于行动的策略。每次执行都可能产生不同的序列:这里读取一个文件,那里调用一个 API,在别处进行少量传输。这组模型并不是在发明新的原语;它是在看起来合法的原语中进行选择。结果是静态签名和哈希匹配迅速衰减,因为可观察的输出是一个分布,而不是固定的字符串。关于恶意软件集成语言模型以自适应行为的报告说明了这一趋势 [1]。
随着循环适应环境所允许的条件,驻留时间缩短。如果某个特定的 API 被监控,循环可以避开它。如果某个目的地被封锁,它可以选择另一个。入侵变成了在允许行动空间中的搜索问题,而不是固定的杀伤链。
针对智能体形态流量的行为检测
防御性的应对措施是对行为而非痕迹建立基线。对于任何身份——用户、服务账户或智能体——相关信号是工具调用的序列和扇出,而不仅仅是流量的大小。

一个具体的机制:在工具调用上构建按身份的转移模型。对于每个身份,记录哪些工具调用跟随哪些其他调用、使用什么参数以及以什么速率。模型驱动的入侵会产生局部看似合理但全局异常的序列:读取配置文件,然后调用云元数据端点,再向不熟悉的目的地少量外传。没有任何单个步骤是恶意的。组合才是信号。
权限提升特别适合这种方法,因为它通常以一系列单独无害的步骤出现。角色代入、策略读取、令牌交换、对之前只读的资源进行写入。每一步都在策略范围内。但序列不是。因此,检测必须评估路径,而不是点。
读取范围和出口目的地的异常组合是另一个高价值信号。一个通常从单个数据库读取并写入单个队列的身份,没有理由从密钥存储读取并外传到新域。读取范围和目的地单独都是被允许的;它们的配对则不是。
诚实的权衡:行为基线需要预热期,并且当合法工作发生变化时会产生误报。新的部署、迁移或合法的智能体推广都会看起来像偏差。团队必须决定允许多少容忍度,而这一容忍度正是自适应入侵者会利用的空间。没有一种阈值能同时消除误报和规避;只能选择哪种失败模式是可接受的。
对智能体平台的影响
智能体平台直接继承了这个问题。智能体自身的工具使用特征——一系列文件读取、API 调用和少量传输——与受损的智能体无法区分,除非身份和意图在调用时被绑定。平台无法判断一次调用是因为智能体自己决定的,还是因为攻击者影响了决策。
第一个影响是沙箱和出口策略必须由运行时强制执行,而不是在提示中请求。提示指令是建议;运行时策略是约束。如果智能体可

第二个影响是日志必须捕获决策,而不仅仅是行动。记录“读取文件 X”的日志是不够的。记录“读取文件 X,因为规划器在上下文 C 下、根据策略 P 选择了行动 A”的日志允许审查者重建为什么该调用被允许。这是审计追踪和事件列表之间的区别。
在调用时绑定身份和意图是实现这一点的机制。每个工具调用都携带一个签名断言,说明是哪个智能体在哪个策略下、出于什么声明的目的发起的。运行时在执行前验证断言。如果断言缺失或与策略不一致,调用被拒绝。这并不能防止智能体被入侵,但它限制了受损智能体可以做什么,并使入侵在决策日志中可见。
另一个权衡:在调用时绑定意图会增加延迟和复杂性。现在每次调用都需要验证步骤和策略评估。对于高吞吐量的智能体系统,这可能是一个显著的成本。替代方案——信任智能体自己对意图的描述——更便宜,但不提供安全边界。团队必须选择边界放在哪里,而这个选择决定了入侵者可以到达哪里。
下一步该做什么
实际步骤并不光鲜。对每个身份的工具调用序列和扇出建立基线。将读取范围和出口目的地的异常组合视为信号。在运行时中强制执行沙箱和出口策略。记录决策,而不仅仅是行动。在调用时绑定身份和意图。
这些步骤都不是完整的防御。自适应入侵者会探测边界并利用任何被授予的容忍度。但它们将检测问题从快速衰减的痕迹转移到行为,而行为更难变化而不变得可见。当攻击者自行选择下一步行动时,这是唯一持久的位置。
封面照片:panumas nikhomkhai / Pexels。
