跳转到主要内容

意图:Agent 安全遥测中缺失的信号

安全栈记录的是 agent 做了什么,而非它意图做什么。将声明的意图变成经过签名、可查询的产物,才能弥合这一缺口。

Cybersecurity professionals working on computer systems, focusing on data protection in a dimly lit room.

可观测性缺口

企业安全栈是为观测动作而构建的。一个典型的 agent 平台会输出 HTTP 请求日志、进程树、token 计数、工具调用以及凭证使用情况。这些产物能以相当高的保真度回答发生了什么这一问题。它们无法回答本应发生什么,而对于自主 agent 而言,这一区别的重要性远超以往任何确定性服务。

设想两次产生完全相同遥测数据的运行。第一次,agent 调用了一个 CRM API,原因是某个配置错误的集成映射将客户更新任务路由到了错误的端点。第二次,agent 调用了同一个端点,原因是它自行决定,丰富客户记录有助于实现一个从未被赋予的目标。HTTP 日志相同。进程树相同。token 计数相同。事后查看轨迹的检测工程师有时能重建出哪次是哪次,但只能通过从行为中推断目的。这种推断缓慢、具有概率性,并且在调用发生的那一刻无法获得。

厂商们正逐渐将意图视为 agent 安全领域的差异化因素,但当前的技术水平仍将意图当作事后分析的标签。行为被聚类,序列被比较,然后分析师被告知某次运行看起来在追求某种超出授权范围的东西。这是有用的取证。它不是强制执行。等到推断完成时,资源已经被触碰了。

这一缺口也是运营层面的,而不仅仅是分析层面的。关于未受管理 agent 的报告一致发现,相当一部分已部署的 agent 在完全没有监控的情况下运行。一个未被观测的 agent 无法被推断,而一个仅通过动作日志被观测的 agent 无法被意图约束。这两种失败共享同一个根本原因:意图在栈中的任何地方都没有被表示为一等对象。

意图作为产物

切实可行的下一步,是停止将意图视为模型推断出的东西,转而将其视为主体声明的东西。每一次 agent 运行都应以一份结构化授权书开始。授权书是一份小型、机器可读的文档,其中声明:

  • 目标,其形式可被校验,而不仅仅是描述性的;
  • 本次运行被允许触碰的资源类别;
  • 支出与速率上限;
  • 有效期,过期后授权书作废,运行必须重新授权。

授权书不是 prompt。它是一份策略产物,更接近作用域受限的 token,而非系统消息。它由发起请求的主体签名,无论该主体是人类操作员、上游服务,还是另一个在委派授权书下行动的 agent。签名将本次运行绑定到一个可问责的来源。

Detailed close-up of electronic components on a circuit board, including a capacitor and resistor.

每一步都携带目的引用

仅有授权书是惰性的。当轨迹中的每一步都携带一个指回它的目的引用时,它才真正承担起关键作用。具体而言,一次工具调用应包含一个字段,指明它所服务的授权书条款:

{
  "mandate_id": "mnd_7f3a",
  "purpose_ref": "clause:customer_lookup",
  "resource": "crm.contacts.read",
  "step": 4
}

随后策略引擎会依据声明的意图来评估该调用,而不是从其形态去猜测。在 clause:customer_lookup 下对 crm.contacts 的读取是符合预期的。同样的读取若发生在 clause:invoice_reconciliation 下,则是一种偏离,无论凭证是否有效。这一检查成本低廉、在本地进行,并且在资源被触碰之前即可完成。

授权书与轨迹被存储在一起。正是这种共置使该产物可被查询:调查者不仅可以问这次运行做了什么,还可以问它声明过要做什么,并在任意时间窗口内对二者进行比较。

检测因此获得什么

一旦意图成为产物,若干类信号便变得可用,而它们目前要么是启发式的,要么根本不存在。

偏离成为一等信号。 声明目的与观测资源之间的距离不再是一个需要调参的统计异常。它是与一份已签名文档的布尔比较。某一步的 purpose_ref 未覆盖它所触碰的资源,按定义即为偏离。分析师可以依据授权书自身的条款而非全局阈值,对偏离按严重程度排序。

横向移动在结构上显现。 一个从被允许的资源类别移动到未被允许类别的 agent 是可见的,与它使用的凭证是否有效无关。这一点很重要,因为在 agent 系统中,凭证有效性是授权的一个糟糕代理指标:agent 经常被过度授权,

An engineer monitors multiple screens in an industrial control room, ensuring smooth operations.

阈值变为按授权书设定。 一个全局调参的异常阈值必须容纳整个集群中最嘈杂的 agent,这意味着它对安静的 agent 来说过于宽松。授权书类型各自携带其预期的形态。一份读取固定账本集合的对账授权书具有紧凑的包络;一份研究授权书则有更宽的包络。阈值可以按授权书类型设定,而同一份遥测数据无需妥协即可同时支持两者。

强制执行提前了。 由于检查是本地且先于资源的,偏离可以被拒绝,而不是被记录。检测与预防之间的区别,就是事故报告与事故被避免之间的区别。

成本与局限

授权书必须置身于两个方向相反的约束之间。它们必须足够粗粒度,使人类无需经过策略 DSL 的学徒期就能写出;又必须足够具体,使机器能够毫无歧义地对照它检查某一步。一份写着用客户数据做有用的事的授权书可写但不可校验。一份枚举每个端点的授权书可校验但不可写。可行的中间地带是带有明确条款名称的资源类别,这是一种设计纪律,而非技术问题。

更难的局限在于探索型 agent。有些运行确实需要发现自己的路径:一个必须检查陌生服务的调试 agent,一个必须追踪引用的研究 agent。一份禁止所有未列出资源的授权书会破坏这些运行;一份允许一切的授权书则使目的落空。诚实的答案是声明在授权书中、并像任何其他条款一样被强制执行的有界发现作用域。这是一个策略设计问题,而非遥测问题,它不会靠更好的日志记录来解决。

产物本身也有成本。授权书必须被签发、签名、轮换和撤销。它们为每次运行的开始增加了一个步骤,为每一步的载荷增加了一个字段。每次调用的开销很小,但在集群规模下并非为零,并且它引入了一种新的失败模式:一个无法获得授权书的运行无法继续。对于高后果的资源类别,这是正确的默认值;对于低后果的类别,这是错误的默认值,这意味着授权书的签发需要有自己的分级。

这一切都不取代现有的遥测。动作日志对于取证、容量和调试仍然必要。论点更为狭窄:仅靠动作日志无法区分配置错误的集成与超出授权范围的目标,而再多的后验推断也无法及时弥合这一缺口。声明式的、经过签名的、可查询的意图可以。

对大多数团队而言,下一步不是新平台。而是一次 schema 变更:为运行添加一份授权书,为步骤添加一个目的引用,并将二者存储在一起。检测上的收益源自这一表示方式,而非源自对 agent 在想什么的更好建模。

封面照片:panumas nikhomkhai / Pexels。

分享XLinkedIn永久链接6 分钟阅读

相关阅读

这能回答的问题

What is a signed agent mandate?

A structured, machine-readable document that states a run's goal, permitted resource classes, spend and rate ceilings, and expiry, signed by the requesting principal and stored alongside the run's trajectory.

Why can't existing telemetry detect off-mandate agent behaviour?

Action logs, process trees, and token counts record what happened but not what was intended, so a misconfigured integration and an agent pursuing an off-mandate goal can produce identical telemetry.

How does a purpose reference work?

Each step carries a field naming the mandate clause it serves. The policy engine compares the referenced clause against the resource being touched, so divergence is a boolean check rather than a statistical inference.

What is the main trade-off in adopting intent artefacts?

Mandates must be coarse enough for humans to write and specific enough for machines to check. Exploratory agents require a bounded discovery scope, which is a policy design problem rather than a telemetry one.