跳到正文
原文
论文追踪· arXiv:2609.35557· Shobhan Roy·本站收录· 原文发表

论文:容器、权限规则与沙箱都无法区分读取研究代码的是编译器还是编码 Agent

The Compiler May Read It, the Agent May Not: Keeping Part of a Research Code Away from a Coding Agent

论文速读

评测与基准

据论文 PDF 整理(AI 生成),以原文为准

作者对十五条读取路径分类,现成机制判不出哪个程序在读,五条两边都不覆盖。

威胁模型不把模型或harness当敌对,边界也不靠智能体配合。

问题
物理求解器里,本组材料与反应模型是编译必须读的知识产权,编码智能体却不能读:字节一进上下文就会离开本机。容器、权限规则和沙箱都判不了是哪个程序在读。
方法
作者把十五条到达上下文的路径,按所跑配置分到容器、权限规则、沙箱和指令文件。覆盖指该机制的规则作用到该路径并拒绝它。另记拒绝列表修订和拒绝事件。
实验与结果
作者称两者都覆盖2条、仅沙箱7条、仅权限规则1条、都不覆盖5条。直接读在分类中被拒,编译器的打印式输出模式不被拒。四次修订后规则数为586,起点14。七周64次拒绝里54次是复合命令整行被拒。
局限与可以继续做的
论文无局限专节。作者称负结果限于不能改harness、不能加载内核策略的普通用户,不约束宿主机root,也不考察指定对手或敌对智能体。分类有60格,仅两条在诱饵树上见过拒绝。
实验设置route coverage、denial events
威胁模型
不把模型或harness当敌对,边界也不靠智能体配合。可信部分为内核、容器运行时、厂商harness与模型服务、编译器及自装hook或策略服务器。构建配方若可被改或传标志,也能打印受保护文件。负结果限于不能改harness、不能加载内核策略的普通用户,不约束宿主机root,不考察指定对手。
指标
route coveragedenial events
AI 导读Shobhan Roy 的论文指出,基于物理的求解器必须让编译器读取某些模块,但同一批知识产权不应被编码 Agent 读取,而现有工具链并不自带这条规则。作者针对容器、权限规则和沙箱三种隔离手段,对十五条读取路径做了分类,结论是三者都无法判断究竟是哪个程序在读取文件。论文共 6 页,含 1 张图和 1 张表,随附分类与历史脚本及其输出,归入 cs.CR、cs.AI 与 cs.SE,编号 arXiv:2609.35557。

Shobhan Roy 的论文指出,基于物理的求解器必须让编译器读取某些模块,但同一批知识产权不应被编码 Agent 读取,而现有工具链并不自带这条规则。作者针对容器、权限规则和沙箱三种隔离手段,对十五条读取路径做了分类,结论是三者都无法判断究竟是哪个程序在读取文件。论文共 6 页,含 1 张图和 1 张表,随附分类与历史脚本及其输出,归入 cs.CR、cs.AI 与 cs.SE,编号 arXiv:2609.35557。

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    编译器必须能读受保护模块,四种现成机制都说不出是哪个程序在读。

    编译器必须读求解器缺了就编不过的模块,编码智能体却不得把这些字节读进上下文。

    • 场景:作者在物理流求解器上跑编码智能体,求解的是流体运动的偏微分方程。求解器常建在开源离散化与并行机制上,由本组材料与反应模型补全;这些本构与动力学闭合可含发表前的知识产权,有的许可允许生成可发表数据,但不允许传出算法本身。智能体一读,字节进入离开本机的记录。
    • 现成机制:容器规定运行时用户和挂载路径;权限规则匹配命令文本和路径;沙箱匹配路径;会话开始时读的指令文件是软合同。作者称四者出厂都不能表达规则所转向的判据,即哪个程序在读。指令文件能把规则写全,但不执行。
    • 作者要的规则:编译器可以打开受保护文件,目标代码和诊断可以到达智能体,文件本身不得经任何路径到达。诊断引用被拒的那一行,作者接受;能整文件打印的其他输出模式,不接受。作者称这是有界披露,不是非干扰:诊断仍引用一行,目标代码仍含本构模型的常数。
    • 威胁模型:
      • 作者不把模型或 harness 当敌对。边界也不靠智能体配合,因为工具调用可来自误读任务、模型输出失误,或读到文件文字后照做。
      • 必须信任内核与容器运行时、厂商 harness 及其模型服务、编译器,以及作者自装的 hook 或策略服务器。
      • 构建文件也须信任:智能体能改的配方或传入的标志可以打印受保护文件。指令文件能把配方放到够不着之处,但不执行。
      • 负结果相对于不能改 harness、不能加载宿主内核策略、不能替换语言运行时的普通用户。不约束有宿主机 root 的管理员。本文不考察这些机制如何对抗指定对手。
    • 四项观察:机制对读取能说什么、十五条路径的覆盖、拒绝列表五周四次修订,以及用已有部件近似执行要付的代价。
  2. 有哪些相关研究?

    作者把该规则放进目的访问控制和类型强制,并对照能指名读取者的系统。

    相关讨论在第II节和第VI节。论文没有实验基线,也没有公开基准对照。

    目的访问控制与类型强制

    • Byun与Li(2008):提出基于目的的访问控制,获知目的靠询问、登记固定目的或推断。作者把指令文件和构建豁免对应前两种,并称构建就是他们说的多目的应用;厂商 harness 里没有请求者控制不了的检查对象,因为命令行和被查属性都是智能体写的。
    • Boebert与Kain(1985):用域与类型的表规定每个域对每种类型能做什么。作者用它对照拒绝列表:漏项即拒绝,表可以通读审计;禁止命令名的清单允许漏掉的项,并且长到没法通读。
    • SELinux:内核中的类型强制。作者称若文件类型是智能体的域不能读的,内核可拒绝智能体而让编译器继续,代价是特权策略加载器和作者不管理的内核。

    完全中介与间接路径

    • Saltzer与Schroeder(1975):完全中介,即每次对每个对象的访问都要检查。作者称此部署里权限规则和沙箱并不合成,有的路径上没有检查运行。
    • Garfinkel(2003):间接到达资源的路径目录,Table I 有三条取自该目录。同表还有 Di Donato(2026)用同一智能体、让动态链接器加载一条执行规则点了名的二进制。
    • Hardy(1988):困惑的副手。作者在第IV节用它要求:检查不得传给读者启动的程序。

    厂商写明停在何处的机制

    • Anthropic沙箱文档(2026):沙箱只作用于 Bash、PowerShell 和 Monitor 及其子进程,内建读文件走权限系统。作者称经一道拒绝,并不能得出文件经另一道也够不着。
    • GitHub内容排除(2026):把点名文件排除在 Copilot 补全和聊天之外。作者引用其记录:IDE 中 Copilot Chat 的 Agent 模式不支持内容排除。
    • Cursor(2026):Agent 所用终端和 MCP 服务器工具不能挡住 .cursorignore 管辖的代码。作者称这两句描述的都是 Table I 列为未覆盖的路径。

    能指名读取者的研究系统

    • ActPlane(Zheng等,2026):在工具表面之下对进程树挂钩操作系统事件。作者称血统门使该规则写得出来,但 fork 与 exec 会把智能体标签传给编译器:要么构建失败,要么例外对智能体同等可用。
    • PORTICO(Santos-Grueiro,2026):把仓库路径绑到访问模式和一段有界理由情节。作者称它最接近该规则,但只模型单一消费者,此处还有编译器这第二个读者。
    • AgentSpec(ICSE 2026)、Conseca(HotOS 2025)、CaMeL与Fides(2025):在行动前设规则,或按数据来源决定何物可以离开。作者称未发现它们被用到执行点就是读取本身的需求上,且都要普通用户没有的一层。作者把本文定为窄结果:此 harness 暴露的控制不能表达该规则,单独信任的中介只能近似,且上述系统都不合上构建打开的输出通道。
  3. 论文如何解决这个问题?

    作者用十五条路径、四级证据,对照四种机制能指名什么。

    作者不提出新的执行器,而是把规则收成哪个程序在读,再看容器、权限规则、沙箱和指令文件能不能指名这一点。

    规则在指什么

    • 两端读法相同:智能体和构建以同一用户账户运行,编译器是智能体自己 shell 的子进程,处在智能体的容器里。作者称在文件处,四种机制看这两次打开没有分别;差别只在为何打开、字节到哪里。编译器的读结束于本机目标代码,再由智能体执行;智能体的读结束于上下文,被切成 token 并离开本机。
    • 不得读的范围:harness 是跑语言模型并执行工具调用的程序。智能体指它所驱动的全部:模型上下文、自有读文件工具、它启动的 shell 及派生进程、代表它运行的 hook、配置去调用的策略服务器。这些都能把文字放到模型面前。字节不得经其中任一者到达上下文或记录。
    • 目的与替代物:目的用 Byun 与 Li 的意思,即请求者打算的用途。作者称没有操作系统直接观察它。内核能观察的替代物是:哪个进程打开了文件、该进程从哪派生、输出到哪里。作者称四种机制都不能指名这三项中的任何一项。它们指名的是用户账户、路径或命令拼写;唯一指名目的的工件是指令文件,而它不执行。

    十五条路径怎么分类

    • 路径类:直接读、字节到文本的编码、解释器字面量中的路径、shell 内建重定向、文件描述符间接、符号链接、进程替换、同一二进制的另一路径、动态链接器加载、编译器的打印式输出模式、已允许构建目标下的配方、版本控制按修订读取、内建文件读取工具、经 Model Context Protocol 交谈的策略服务器、hook 脚本。Table I 给每条一个命令,此处不复述。
    • 覆盖定义:某机制的一条规则在此部署中作用于该路径并且拒绝它,才算覆盖。容器列全部未覆盖,因为受保护文件都在挂载的项目树内。指令列全部是陈述了规则、什么都不执行。
    • 证据四级:60 格从强到弱为:4 格直接读自随附规则集;5 格逐字复述厂商写明的范围;21 格由这些陈述或 shell 语义推出,作者称是推理不是测量;其余 30 格按构造一致,即容器列与指令列。规则、路径和每个单元格是作者的,没有第二评分者。
    • 为何不跑其余路径:作者没有把其余十三条对着受保护文件跑。作者称跑了要么是一次披露,要么只说明一种拼写、说明不了这一类。hook 和策略服务器已在此部署中配置,与智能体同一用户账户,厂商文档把二者都放在沙箱外。

    拒绝怎么计数

    • 列表修订:同一份拒绝列表修订五周,保护目标固定为两条路径。两条目标各有手工列表;生成器注释写了二者关系,但没有检查。每条规则只指名一个命令和一个目标,规则语言无法说两个目标必须受同样保护。
    • 事件去重:把作者自己的会话记录与 harness 的拒绝字符串匹配,按每次工具调用的标识去重。一次被拒调用无论多少份记录转载都只计一次,重试另计。由此得到的全是命令表面的拒绝,进程内文件工具上的拒绝进不去。

    执行与近似

    • 四条性质:检查发生在打开文件时,而不是命令启动时,执行点须在工具表面之下;许可不传给读者启动的程序,否则是困惑的副手,标记须熬过新建进程;不能由“谁启动了消费者”来满足,否则智能体一启动编译器就自己授予豁免,作者称所调查的系统都没有这条;还要限制消费者交回什么,因为智能体能调用、又能读其输出的编译器是代理读者。
    • 输出通道:第四条超出“谁可以打开文件”。作者称去掉调试信息并剥符号,可以把该通道收到常数,这是分发专有模型二进制时的通常立场,但不是对逆向的保证。作者点出需要的是对构建回复的过滤,并称不提供执行办法。
    • 可信中介:普通用户能部署的近似是:受保护文件放到第二个用户账户下、智能体文件系统之外,只经该账户控制的通道到达构建。通道为:智能体不能改的配方;请求只指名智能体代码的一个修订;回复滤到为了行动所需要的程度。
    • 两笔代价:作者称中介是近似不是执行。构建输出携带受保护字节,回复上的过滤才是实际控制,放宽它就会让更多内容回来;作者自己的安排已经让出诊断。只回答通过或失败会拆掉编辑—构建—修复循环,返回失败信息又交回出错的那一行,而且配方得由别人拥有。作者称它适合受保护文件稳定、且与智能体所改代码分开的场合;文件本身还在开发时,拆掉的正是引进智能体要的循环。
  4. 论文做了哪些实验?

    五条路径两者都不覆盖;规则数到586;七周64次拒绝中54次为复合命令。

    实验设置

    • 被分析的部署:作者所跑的 Claude Code(Anthropic)。底层模型名称论文未说明。作者不把模型或 harness 当敌对。智能体与构建同一用户账户,编译器在智能体容器内、是其 shell 的子进程。
    • 保护目标:拒绝列表修订期间固定为两条路径,文件在挂载的项目树内,受版本控制,仓库在智能体的树里。hook 与策略服务器已配置。
    • 四类机制:容器;权限规则(命令文本与路径);沙箱(路径;文档范围限于 Bash、PowerShell、Monitor 及其子进程);指令文件(能陈述,不执行)。
    • 路径来源:Table I 共十五条。两条直接读无需出处;三条取自 Garfinkel(2003);三条来自厂商对沙箱范围的陈述;三条是作者早先披露的 shell 构造;一条是 Di Donato(2026)对同一智能体的公开演示;三条是规则集自身的后果。
    • 覆盖与证据:该机制的规则在此部署中作用到该路径并拒绝它,才算覆盖。60 格分四级,见第III节。没有第二评分者。对着运行环境见过拒绝的只有两条。
    • 两份记录:拒绝列表为五周、四次有日期的修订,论文未给出这五周的起止日历。拒绝事件为 2026 年 6 月第二周至 7 月底,按工具调用标识去重。致谢写明语料含本稿在该截止日前的会话。

    主结果

    | 覆盖(第III节、Fig. 1) | 路径数 | | 权限规则与沙箱都覆盖 | 2 | | 仅沙箱 | 7 | | 仅权限规则 | 1 | | 两者都不覆盖 | 5 |

    • Fig. 1 把直接读和字节到文本编码标在重叠处。仅权限规则覆盖的那条,第III节写明是内建文件读取工具,沙箱的文档范围把它留在外面。
    • 作者称仅沙箱的路径以三种方式躲开命令匹配:不呈现可匹配的命令标记,标记不是受保护路径,或点名的程序不在列表上。Fig. 1 将该组标为解释器字面量、shell 内建重定向、文件描述符间接、符号链接、进程替换、同一二进制的另一路径、动态链接器加载。
    • 作者称两者都不覆盖的是:已允许构建目标下的配方、经 Model Context Protocol 的策略服务器、hook、编译器的打印式输出模式、版本控制按修订读取。作者称编译器这条最要紧:直接读被拒绝,而预处理输出模式不被拒绝;构建所必需的编译器许可,正是该路径所用的许可。该行标记为由随附规则集和文档中的匹配语义推出。对着受保护文件执行的,论文只报告了诱饵树上的两条。

    拒绝列表的五周修订

    | 修订(第III节) | 规则数 | 新增命令名 | 不同命令名 | | 修订前 | 14 | 未报告 | 10 | | 第1次 | 488 | 118 | 128 | | 第2次 | 540 | 13 | 141 | | 第3次 | 556 | 4 | 145 | | 第4次 | 586 | 0 | 未单列 |

    • 作者称第四次修的不是缺命令,而是缺不变量:15 条已在列表上的命令原先只守卫目录、不守卫单个文件,延伸到文件后,都没有打开通向文件内容的新路径。
    • 作者称两条目标各有手工列表,注释写了关系但没有检查;规则语言无法说两个目标必须受同样保护,缺口因此未被注意到。

    七周拒绝记录

    | 按优先级归类(第V节) | 次数 | | 全部拒绝事件 | 64 | | 其中复合命令 | 54 | | 限制边界 | 28 | | 破坏性动词门 | 26 | | 故意探测边界 | 5 | | 受保护目标 | 4 | | 不属于以上标题 | 1 |

    • 作者称复合命令里只有一个含受守卫标记,整批被拒,规则并未反对的相邻命令一起被拒。占大部分的两种形状是:远程传输嵌进普通工作链,触发把智能体限制在一个远程目录的规则;删除触发破坏性动词门,配置和编译一起被拒。
    • 作者称受保护目标标题排在最后,所以该计数是下界。语料中没有一次拒绝挡住对受保护文件的普通工作,多数来自与它们无关的边界。每天都改受保护文件的项目,记录形状会与这份完全不同。
    • 作者称类别并不互斥,这些计数都不支持比率。语料只含命令表面的拒绝。

    其他消融与分析

    • 证据格(第III节):4 格读自规则集,5 格复述厂商范围,21 格为推理不是测量,30 格按构造一致。
    • 2026 年 7 月、诱饵树、第一次尝试即被拒绝的是直接读和编码器;其余 13 条未对着受保护文件执行。
    • 作者称权限规则现已从单一受保护目标清单生成,合上第III节的缺失不变量;一个 hook 记录每条提交的命令。编译器路径未合上。
    • 无第二评分者。拒绝语料不可发布,只报告计数和涂掉路径、主机后的形状。
    • 论文没有参数扫描式消融。作者没有报告查询次数或对指定对手的测试。
  5. 有什么可以进一步探索的点?

    论文未设局限专节;负结果限于普通用户,且不考察指定对手。

    作者指出的局限与后续方向

    论文没有 Limitations、Future Work 或 Conclusion 专节,也没有写出后续工作计划。下面只收作者写明本文不做什么、结果管到哪里的句子。

    • 第I节:每一项负结果都相对于普通用户;不约束宿主机上有 root、能安装内核级执行器的管理员。
    • 第I节:本文不考察这些机制如何对抗指定对手。侧栏写明不把模型或 harness 当敌对,但边界也不能靠智能体配合。
    • 第II节:作者称结果因此是窄的。此 harness 暴露的控制不能表达该规则,harness 外单独信任的中介只能近似。
    • 第IV节:作者把“限制消费者交回什么”列为规则缺了就不完整的性质,并写明不提供执行它的办法。
    • 第VI节:本文不提供能对抗敌对智能体的安排。工具范围、规则语法和文档中的排除属于一家厂商,随其发布改变。作者要读者带走的是三条一般陈述,而不是单元格的值:匹配命令字符串并不中介文件打开;指名路径的规则说不出哪个程序在读;子进程继承的许可分不清构建和启动构建的一方。

    实验覆盖范围

    • 分类针对作者所跑的一套 Claude Code 部署;底层模型名称论文未说明。列表修订期间保护目标为两条路径,文件在挂载的项目树内并受版本控制。
    • Table I 为 15 条路径、60 格。证据为 4、5、21、30 格四级。规则、路径和每个单元格没有第二评分者。
    • 2026 年 7 月对诱饵树、第一次尝试即被拒绝的,是直接读和编码器。其余 13 条没有对着受保护文件执行。hook 与策略服务器在此部署中已配置。
    • 拒绝列表是五周、四次修订,规则数为 14、488、540、556、586。拒绝事件是 2026 年 6 月第二周至 7 月底的 64 次,按工具调用标识去重,只含命令表面拒绝;致谢称语料含本稿在该截止日前的会话。作者称这些计数都不支持比率。语料不可发布。
    • 第IV节对 GitHub 内容排除和 Cursor 忽略文件、第VI节对 ActPlane、AgentSpec、Conseca、CaMeL、Fides、PORTICO 的讨论,依据是文档或作者对文档与源码陈述的阅读;论文未报告在本部署上运行它们。
  6. 总结一下论文的主要内容

    此harness表达不了编译器可读而智能体不可读,五条路径两边都不覆盖。

    作者在物理流求解器上检查一套编码智能体配置:编译器必须读本组材料与反应模型,这些字节又不得进入模型上下文或离开本机的记录。

    • 想要的是有界披露。编译器可以打开文件,目标代码和诊断可以到达智能体,文件本身不行;诊断里的一行和目标代码里的常数仍是派生内容。作者不把模型或 harness 当敌对,负结果只相对于不能改 harness、不能加载内核策略的普通用户。
    • 做法是把十五条到达路径对容器、权限规则、沙箱和指令文件分类。覆盖指该机制的规则在此部署中作用到该路径并拒绝它。60 格里 21 格是推理不是测量,30 格按构造一致。另记拒绝列表修订,以及按工具调用标识去重的拒绝事件。
    • 作者称权限规则与沙箱盖住的不是同一批路径:都覆盖 2 条,仅沙箱 7 条,仅权限规则 1 条,都不覆盖 5 条。未覆盖者包括已允许构建目标下的配方、策略服务器、hook、编译器的打印式输出模式和按修订读取的版本控制。作者称直接读被拒,而编译器预处理输出模式不被拒;构建必需的编译器许可正是该路径所用的许可。对着诱饵树实测拒绝的只有直接读和编码器。
    • 拒绝列表在保护目标仍为两条路径的五周里,四次修订后规则数为 586,起点 14。作者称最后一次修的是目录已守卫而单个文件未守卫,规则语言无法要求两个目标受同样保护。
    • 七周普通研究工作有 64 次拒绝,54 次是复合命令整行被拒。按优先级,28 次为限制边界,26 次为破坏性动词门,4 次归入受保护目标,作者称这 4 次是下界。作者称没有一次拒绝挡住对受保护文件的普通工作,这些计数不支持比率。
    • 作者的结论是:此 harness 暴露的控制表达不了该规则,外部中介只能近似,代价是构建输出带回文件内容,以及拆掉编辑—构建—修复循环。作者称自己仍在跑这套安排,接受诊断,且未合上编译器路径;类似安排应假定,构建自身的输出仍是受保护内容可以离开之处。
阅读原文arxiv.org