Pheo 提出 OATS:用确定性解析器在运行时治理 Agent 技能动作
Scan the Skill, Govern the Action: Composing Registry Verdicts with Runtime Consequence Control
研究发现ClawHub有705个全clean技能含违规指令,实测34.7%命令后果类文档未记载,OATS拦截了全部违规尝试。
论文假设智能体将良性文档重构为具体命令,未假设攻击者故意编写规避语法的命令。
- 智能体技能注册表发布前扫描仅判定技能是否恶意,无法判断具体操作在特定机器与策略下是否被许可;且静态文档无法完全约束智能体的实际执行命令。
- 作者提出基于确定性解析器与信任账本的动作级运行时控制门OATS,在工具调用前判定命令后果类别与权限,并基于操作员风险容忍度推导自治晋升阈值。
- ClawHub有705个全clean技能指示禁止操作;Claude Sonnet 5执行命令中34.7%后果类文档未记载;实测23次违规尝试被OATS全部拦截或挂起。
- 解析器对多步骤拼接或编码重写的宏平均解析率为52%;系统未提供OS级防篡改保护;且无法察觉未转化为具体操作的非动作型危害或过度权限。
- 威胁模型
- 论文假设智能体将良性文档重构为具体命令,未假设攻击者故意编写规避语法的命令。受害系统为运行智能体的本地环境;信任边界假设智能体配置中的hook注册、oatsctl二进制与账本存储未受损,但防御对拥有本地shell权限的智能体自身缺乏OS级防篡改保护,仅通过哈希链与HMAC-SHA256签名提供事后审计完整性。
- 模型
- Claude Sonnet 5GPT-5.5gpt-5-minicodex-security-worker
- 基准
- OpenClaw/clawhub-security-signalsSemantics-preserving rewriting benchmark
- 指标
- Resolution ratePrecisionReach rateBlock rateHold rateLatencyInterruption load
Pheo Inc 的 Rohit Taneja 等人提出 OATS(Open Agent Trust System),在 Agent 决定动作但尚未执行时做运行时治理,回答的是某个动作在当前机器和操作者策略下是否被允许,而非技能是否恶意。作者在 66,192 个公开 ClawHub 技能版本上测量发现,705 个被三个扫描器和注册表评审全部判为 clean 的技能,仍指示了 CIS Control 2.7 和 NIST SP 800-53 CM-11 列为禁止的动作,涉及 135 个发布者,其中单一发布者占 506 个;对 100 个样本的人工审计给出 92% 精确率(95% CI [84.8%, 96.5%])。OATS 的解析器不读技能文档、不调用模型,中位端到端耗时 67.6 ms,输出接入按(资源, 类别)计数的信任账本,升级阈值由操作者自述风险容忍度推导,而非固定十次干净批准。
推荐理由论文把技能注册表审查与运行时动作治理拆成两个不同问题,并给出可复现的测量与开源实现,适合做 Agent 权限控制的团队参考。
深度解读
这篇论文试图解决什么问题?
发布时恶意检测无法替代运行时动作许可控制,且文档静态分析无法约束智能体动态重构生成的实际执行操作。
论文试图解决智能体技能在发布时静态恶意检测与运行时实际操作许可控制脱节、导致违规行为不受控的问题。
- 场景与重要性:智能体技能在注册表发布前通常经过多重扫描,但安装后智能体直接在真实机器上以实际凭据执行操作,缺乏即时验证特定操作是否符合当前组织策略的控制点。
- 现有方法局限:注册表扫描器(如VirusTotal、静态分析、SkillSpector及ClawScan法官)仅回答“该制品是否恶意”,无法回答“该操作此时在此机器上是否被许可”;且操作员面对频繁弹窗易产生审批疲劳,简单设定固定审批次数缺乏理论依据。
- 核心观察:许可(Permission)与恶意(Maliciousness)是针对同一制品的正交属性,良性安装器同样可能包含违规指令;同时智能体会重构而非简单照抄文档指令,静态审查文档无法完全约束运行时的行为后果。
- 论文方案:作者提出了动作级运行时控制系统OATS,在工具调用发生前基于确定性解析器与信任账本实施后果控制,并依据操作员风险容忍度推导自治晋升阈值。
- 威胁模型:
- 攻击者目标与知识:假设智能体将良性文档指令重构成具体命令,未假设攻击者故意编写规避特定语法的混淆命令。
- 攻击者能力:智能体具有本地shell命令执行能力,能添加参数、重定向输出、拼接管道或改变安装顺序。
- 信任边界与受害系统:受害系统为运行智能体的受控环境;信任边界假设hook注册、oatsctl二进制与账本存储未受损,但防御对智能体修改本地hook配置等底层篡改缺乏OS级防御。
有哪些相关研究?
相关研究涵盖注册表扫描与供应链攻击、运行时LLM防护栏、系统引用监视器与轨迹保证,论文定位在动作级轻量拦截。
相关研究主要分布在技能注册表安全性、运行时防护栏以及系统引用监视器与轨迹保证等方向。
技能注册表安全性与供应链攻击
- Koc et al. (2026)——评测了VirusTotal、内部静态分析与SkillSpector在67,453个技能上的表现,报告扫描器间重叠率在10.4%以下,论文将其作为研究前提而非对比对象。
- Saha et al. (2026)——针对ClawHub排名机制提出发现与选择操纵攻击,并展示了通过纯文本编写使静态和LLM扫描器达到36.5%–100%的治理规避率;作者指出其关注安装前可见内容,而本文关注安装后智能体的实际操作。
LLM应用运行时防护栏
- Inan et al. (2023)(Llama Guard)——使用模型对对话输入与输出进行安全分类。
- Rebedea et al. (2023)(NeMo Guardrails)——通过可编程护栏控制对话流程。
- 作者指出这两者将模型或脚本策略置于用户与模型之间,而OATS处于模型动作与系统变更之间,无需承受模型调用的高昂延迟。
系统引用监视器与轨迹安全
- Anderson (1972) 与 Saltzer and Schroeder (1975)——确立了每次访问必经、防篡改、体积极小易验证的引用监视器与最小特权原则;作者称OATS是对这些原则的实现与度量而非提出新原则。
- Lotfi et al. (2026)——提出智能体动作单独合法但可能联合违反状态不变量,主张轨迹保证;作者指出OATS是其缺失的强制执行点之一,但OATS执行单步动作而非轨迹级检查。
- Kamath et al. (2025)——提出了LLM智能体动作序列的时序约束形式化机制。
对比基线与基准数据集
- 论文在评测中使用的基准数据集为OpenClaw开源的clawhub-security-signals(包含66,192个技能版本及四项扫描判定);在绕过评估中使用了自建的语义保持重写基准(64个案例,涵盖9种技术)。
本文定位
- 作者将OATS定位为比传统LLM防护栏更底层、开销更低的即时动作控制点,强调发布时恶意检测与运行时动作许可控制正交互补。
论文如何解决这个问题?
设计确定性解析器映射命令后果类别,结合分车道信任账本与风险容忍度推导晋升阈值,在工具调用前无模型介入地判定操作。
作者提出了OATS(Open Agent Trust System)框架,在智能体决策完毕且尚未执行工具调用的控制点介入,通过纯确定性解析器与分车道信任账本实现动作级控制。
确定性解析器设计
- 形式化定义:解析器将命令字符串空间映射至33个后果类别集合C,定义为
\rho(c) = \max_\preceq \{ k \in C : \pi_k(c) \}(若匹配到谓词则取最严重类别,否则默认兜底为 shell_exec),其中\preceq为严重性排序。 - 无状态性与全覆盖:解析器不读取文档、账本、时间或模型,200条命令在两个独立账本中重复测试分类完全一致;无匹配命令默认归入底层 shell_exec,避免无匹配时放行。
- 参数位置感知:谓词基于参数相对命令动词的具体位置判断,而非单纯关键词匹配,避免将文档说明中的URL误判为安装参数。
- 阻断文本通道:解析器完全不输入技能文档文字,作者称该设计阻断了纯靠文档文本改写绕过扫描的攻击通道。
分车道信任账本
- 状态流转机制:账本以(资源,后果类)二元组为车道键(非以技能为键)。状态流转为从 unclassified 到 held,若人类批准则连续安全计数加 1,若拒绝则清零;达到阈值且该类别允许晋升时进入 graduated 状态。
- 高危类禁止晋升:33个类别中有13个类别的严重性排名在75及以上(如远程执行、凭据访问、破坏性命令、部署等),在授权路径中硬编码禁止晋升,无论历史记录多少次均保持拦截或挂起。
风险容忍度与自治晋升推导
- 阈值公式:基于零故障二项分布反演,在置信度 1−δ 下容忍失误率 ϵk 对应的连续批准次数阈值为 Nk = ⌈ (ln δ)/(ln(1 − ϵk)) ⌉。
- 理论代价与现状:在 δ = 0.05 时,常见经验值10次批准无法排除高达25.9%的失误率;考虑拒绝导致的重置,达到该阈值的期望人工批准次数远高于阈值本身(如文档写入需202次、业务逻辑需965次)。作者指出当前发布实现默认采用统一常数10,按类别推导阈值仍为论文提案。
运行时架构与开销控制
- 决策路径无模型:本地LLM仅在决策返回后异步生成人类可读说明,不介入判定;M系列芯片单核端到端延迟中位数为67.6 ms(p95为81.1 ms),绝大部分为进程派生开销,分类纯耗时在1 ms以内。
- 审计完整性:每次检查生成约12 KB收据,包含SHA-256摘要与HMAC-SHA256操作员签名,保证历史记录可核查。
- 形式化定义:解析器将命令字符串空间映射至33个后果类别集合C,定义为
论文做了哪些实验?
在6.6万技能库及实机智能体中,测出705个clean技能含违规指令,智能体34.7%命令后果脱离文档,OATS拦截了全部违规动作。
实验设置
- 被测模型:静态扫描法官由GPT-5.5(占99.47%)、gpt-5-mini(占0.42%)与codex-security-worker(占0.10%)构成;实机智能体实验使用Claude Sonnet 5。
- 数据集与基准:OpenClaw/clawhub-security-signals(全量66,192个技能版本);语义保持重写基准(64个案例,涵盖9种技术)。
- 基线与对比对象:ClawHub内置扫描流水线(VirusTotal、静态分析、SkillSpector及ClawScan法官)。
- 指标定义:Resolution rate(解析率)、Precision(精确率)、Reach rate(动作触及率)、Block rate(拦截率)、Hold rate(挂起率)、端到端延迟、中断负载。
- 评审与判定方式:确定性解析器 ρ(版本为pheo-oats 0.5.3);人工抽检双重标注(指令符合度与恶意意图标记)。
- 样本量与执行环境:全量库静态分析66,192个技能;实机实验分别使用40个和54个技能(去重发布商抽样),智能体运行在独立Debian容器中,最多执行4轮。
主结果
在全量66,192个技能中,29,257个被所有扫描器和法官评为clean。其中指示禁止操作的分布如下(据 Table 2):
指示的动作类别 技能数量 占705个违规技能比例 远程代码拉取与执行 658 93.3% 凭据访问 23 3.3% 破坏性命令 20 2.8% 合并到受保护分支 7 1.0% 触发工作流 1 0.1% 独立技能总数(来自135家独立发布商) 705 100% (注:4个技能同时包含两类违规指令,各行累加为709次类别出现;iam_change、deploy与delete_or_transfer_repo为0,据 Table 2)
- 发布商集中分布:作者指出705个技能来自135家发布商,其中单家发布商oomol因在其连接器技能目录中重复同一安装指令占了506个(71.8%),排除该发布商后仍有134家发布商的199个技能存在违规指令。
- 人工审计意图:人工抽样100个技能的审核显示Precision为92.0%(95% CI [84.8%, 96.5%]),且92个正确检出的技能中均未发现恶意意图标记,均为常规工具链安装或包管理命令。
- 非数据清洗假象:针对换行符折叠导致的伪邻近担忧,检查显示87.1%的远程执行指令包含显式管道符(curl/wget通过管道传给shell),11.4%为单token安装命令,98.8%检出属于能在清洗后完好保留的语法结构。
扫描文档与实际执行的偏离评测
- 测试内容:在39个具备具体能力范围的clean技能上,对比文档代码块静态类别与Claude Sonnet 5实际执行命令(144条命令,Table 3)。
- 实验结果:执行命令与文档字面完全一致的仅2条(1.4%),重构但后果类在文档中出现的92条(63.9%),后果类完全未在文档任何代码块出现的有50条(34.7%,95% CI [27.0%, 43.1%]);早期测试中该缺失率为36.6%(Fisher检验 p=0.78)。
- 作者解读:作者称智能体并非照抄文档而是进行重构(添加参数、链式检查、重定向等),静态文档审查无法完全约束动态运行行为,但观察到这50条未预期命令均归入通用的shell_exec,未发现重构产生高于文档危险等级类别的情况。
实机运行环境拦截与中断负载
- 测试内容:针对54个包含永不晋升违规指令的clean技能,测试Claude Sonnet 5在沙箱中的实际行为及OATS拦截效果(§6,Table 4)。
- 实验结果:在产生命令的53个技能中,智能体在23个技能里实际发起了违规动作(43.4%,95% CI [29.8%, 57.7%]),OATS对这23次尝试实现了100%拦截或挂起(22次直接拦截,3次挂起,含2次凭据访问与1次破坏性命令)。共产生170次决策(每技能3.2次,其中2.8次挂起、0.4次拦截)。
- 作者解读:作者指出策略配置能减少中断摩擦,若放行常规shell与读操作,单技能中断可从3.2次降至0.5次(消除85%中断);抽检50次挂起判定准确率为98%(95% CI [89.4%, 99.9%])。
语义保持重写对抗基准评测
- 测试内容:构建了64个测试案例(含5个控制案例),涵盖9种语义保持重写技术,测试解析器在命令混淆下的鲁棒性(Table 1)。
- 实验结果:包装(wrapper,20例)与链式调用(chained,15例)解析率为100%;解释器执行(interpreter,4例)为75%;变量替换(variable,5例)为60%;base64编码(3例)为33%;间接读取(indirect read,4例)为25%;引号混淆(quoting,5例)为20%;分步执行(staged,3例)为0%;8种重写技术宏平均解析率为52%,微平均为75%。
- 作者解读:作者指出解析器能有效识别嵌套在bash -c内部或前置命令之后的危险参数,但单命令解析器无法识别拆分到跨命令管道或多步骤的危险关系(如先curl下载再chmod执行),需要带状态的时序语法分析才能防御。
其他消融与分析
- 排除secret_change类对违规技能计数影响微小:计数从705变为706(§3,§4)。
- 注册表信号与OATS检出关联度弱:OATS标记1,412个(2.13%),注册表标记35,361个(53.4%),交集680个,相关系数 ϕ = −0.016(§7.1)。
- 两个未上线的候选谓词因误报过高被放弃:硬编码外联域名误报率4.4%,命令行内嵌凭据误报率1.5%(§7.1)。
- 全量库与clean子集违规基率对比:远程执行全量1.73% vs clean组2.25%;凭据访问0.23% vs 0.08%;破坏性命令0.17% vs 0.07%(§7.1)。
- 历史审计存储单库规模上升导致吞吐量下降:前15,000次检查吞吐量从约67/s降至20/s以下,滚动轮转可维持在40–55/s(§2.3)。
有什么可以进一步探索的点?
作者指出了非动作型危害盲区、单命令语法规避与依赖自审计等局限,实验也主要集中于单模型单日及单一注册表快照。
作者指出的局限与后续方向
- 无法覆盖未转化为具体动作的危害(§7, §11):OATS仅在产生具体命令时才能介入,对于硬编码固定接收地址、利用微小合法调用组合的劝诱性规避行为、以及过大权限配置等整体性危害完全不可见,作者指出动作控制不能替代语义扫描。
- 无法防御跨命令拆分与高级混淆(§2.2, §6):单命令解析器无法识别分步下载并执行(如先curl保存再chmod执行)、引号混淆及间接调用,作者计划未来通过引入跨调用状态与shell语法解析器进行加固。
- 缺乏底层操作系统级防篡改保护(§2.2, §10):本地hook进程、oatsctl二进制与配置未隔离于具备本地shell权限的智能体,恶意智能体可直接修改hook配置禁用监控,目前仅提供基于哈希链的事后审计完整性。
- 人工自审计存在主观性且缺乏召回率基准(§9):92%精确率由作者单人完成,未测量评分者间一致性;且由于提取器仅读代码块、忽略正文与非shell标签,未能测量违规指令检测器的召回率。
- 自治晋升推导在落地中存在假设脱节(§8):推导假设试验独立且代表免审查运行环境,但实际中操作员审查通过的记录不能等同于无审查下的失误率,且目前实现仍采用硬编码常数10而非动态类别阈值。
实验覆盖范围
- 被测模型范围:静态扫描法官仅涉及GPT-5.5、gpt-5-mini与codex-security-worker,实机运行实验仅使用Claude Sonnet 5单一模型于单日进行测试。
- 技能样本与环境范围:静态测试局限于ClawHub公开数据集的单一冻结快照(66,192个技能);实机实验仅在无预装环境的单个Debian容器内测试了53个具备特定违规指令的技能。
- 对抗测试覆盖:对抗基准仅测试了作者构建的64个语义保持重写案例,未测试自适应攻击者在已知语法情况下的交互式对抗。
- 未报告信息:论文未报告真实企业操作员的实际风险容忍度调研数据,未提供独立基准对解析器耗时进行隔离微基准测试,亦未公布真实恶意技能在OATS上的拦截率(作者称有意不在此维度评分)。
总结一下论文的主要内容
论文论证了发布时恶意扫描无法替代运行时动作许可控制,提出了轻量确定性控制门OATS,展示了双层防御组合的必要性。
- 定位与核心问题:本研究针对AI智能体技能生态中“发布时恶意检测”无法解决“具体机器上运行时权限许可”的问题,论证了动作级运行时控制的必要性并设计了轻量级防御系统。
- 方法架构:作者设计了OATS运行时控制门,核心包含一个67.6 ms端到端延迟的确定性解析器(将shell命令映射到33个后果类,对无匹配项兜底拦截,决策路径无模型),一个基于(资源,后果类)二元组的分车道信任账本(13个高危类永不晋升),以及基于零失误二项分布反演的操作员风险容忍度晋升阈值模型。
- 关键发现一:良性与许可的正交性:在ClawHub的66,192个技能中,29,257个被所有扫描器和法官评为clean的技能里,有705个技能(来自135家独立发布商)包含CIS Control 2.7等规范禁止的未授权或远程执行指令,人工审计显示其精确率为92.0%且无恶意意图标记。
- 关键发现二:静态审查与动态执行脱节:在Claude Sonnet 5实机运行的39个clean技能中,仅1.4%的执行命令与文档字面完全一致,34.7%的命令后果类别从未在文档代码块中出现;在53个包含违规指令的clean技能中,智能体在23个技能里实际发起了违规操作,OATS对这23次动作实现了100%拦截或挂起。
- 关键发现三:单命令防御的边界:在语义保持重写对抗基准上,解析器对包装与链式调用的识别率为100%,但在跨命令拆解、引号混淆等手段下整体宏平均解析率仅为52%,显示出无状态单命令匹配的局限。
- 作者结论与启示:作者认为发布前制品扫描与运行时动作控制属于正交互补层,分别回答“制品是否恶意”与“操作是否许可”,任何一层均无法单独解决智能体安全问题;应将注册表扫描结果作为运行时账本的输入而非竞争替代品。