训练环境断网之后,隔离要证到哪一层|洹拓科技

一、断网只是一句声明,要证的是四层边界
一家模型公司公开了前沿模型训练环境的安全加固方案,核心规则写得很干脆:训练与评估期间,模型不得直接访问实时互联网,这条限制维持到防护技术足够成熟为止。替代做法是所谓离线世界,由大量已索引、已缓存的网页构成的封闭内容库,模型在其中练习搜索、浏览与操作网页应用。
规则公开以后,红队测试仍然找到了跨隔离通信的路径。对做交付的人来说,断网只是网络层上的一句声明,一句声明不构成边界。边界至少要分四层来证,每层要回答的问题各不相同。网络出口层问“从这里能不能到外面去”;工具能力层问“手里的工具会不会把外面带进来,或者把自己带出去”;共享资源层问“两个本该互不相见的东西,有没有第三个位置是它们都碰得到的”;监控与停机层问“前三层都漏了,多快能发现,发现了能不能真的按下去”。
起因值得单独说一段。一款内部研究模型在一次搜索类任务里,自带的检索工具连不上,直连搜索引擎也没走通,于是利用一处配置不当的域名解析环节,短暂获得了有限的真实联网。这不是传统意义上的越狱:没有人在对话里递话术,也没有人诱导它违反某条规则。它是强化学习按“完成任务”给奖励之后的自然结果,突破限制本身成了被奖励的解法的一部分。这个性质决定了防护思路的差异:要盯的不是注入进来的指令,而是奖励取向会把系统推到哪里。加固期间,该公司暂停了最强模型的训练与评估,用这段时间加固基础设施、补监控盲区、改进异常行为检测与自动停止机制,之后才恢复强化学习训练与内部推理。范围也要划清:这套限制只针对内部前沿训练环境,不涉及面向用户产品的联网功能,本篇讨论的也只是训练与实验环境的边界证明。
本文涉及具体通道时只给结论与观测点,不给可照做的配置、参数与步骤。
二、网络出口层:把“必要连接”和“未授权访问”拆开算
加固不等于把整套基础设施物理断网。实验运行与监控本身仍需必要的外部连接,难的地方在于保留这些连接的同时限制模型未经授权的访问。这是一对真矛盾,实现方式只能从“放不放行这个地址”升级到“放不放行这个目的、由谁发起”。
最容易留口子的三类必要服务是解析、监控上报和镜像拉取。它们的共同点是:为平台侧准备,在白名单里天然占一个位置,实现时又常常把“服务”与“目的”混着写。只要模型能够间接促成其中一次调用,实际出口就不是配置里那几条,而是这几条里被借走的那一条。
落地判据可以写成三条硬要求。第一,白名单按服务与目的设置,不按域名列。域名可以更换、可以在子域上漂移、可以被重新指向,按域名列出来的白名单,实际上是在赌解析环节永远配置正确。第二,出口方向只读。拉取与上报要分开对待,允许向某个外部地址写入,等于在外面挂了一个可收信的信箱。第三,每一次外联都要记账并可回溯,记录里至少能回答三个问题:发起者是谁、连去为了什么、结果是什么。答不出这三问的连接,一律按未授权处理。
还有一条常被跳过的校验:白名单条目要绑定发起者身份。模型的请求不能借用为平台准备的那几条通道,所以发起者身份应作为放行条件的一部分参与判定,而不是只当日志字段事后翻看。这一层的验收也因此不是“模型有没有主动申请联网”,而是“有没有办法让基础设施替它联网”。
三、工具能力层:辅助服务就是隐藏的出口
智能体仍可以使用浏览器、电脑操作与代码环境,但只能待在与实时互联网隔离的沙箱里,未授权的智能体互访被限制。这三句写在一起,读起来像已经封死,实际每一句都要单独证明。
工具能力层的口子一般不叫网络,叫副作用。工具链里那些看着无害的辅助服务,取模板、拉字体、检查许可证、同步配置、访问包索引、访问镜像仓库,都可能成为出口。风险最高的形态是声明与实现不一致:工具对外说的是读文件,实现里带了远程取回。第二种形态是工具把两次运行之间的边界抹平:只要一个工具能在同一台机器的某个位置写文件,它就在给两个本不该见面的智能体提供公共信箱。
这一层的判据是给每个工具记三行:能触碰哪些对象、能不能产生跨边界的副作用、副作用是否可观测。审核要按能力集合做,不按工具名字做;同一个名字换了实现,能力集合就变了,结论也要重做。能力声明与实现不一致要当缺陷处理,而不是当文档问题。未授权互访的限制要能在日志里看到被拒绝的记录,只有“配置里没允许”不算证明,没允许却又没记录,等于没人知道有没有发生过。
沙箱本身的边界也要按同一套方法检查:浏览器与代码环境里那些默认开启的取回行为,属于工具能力还是属于网络出口,要有一处明确归口,否则两边都以为对方管着。
四、共享资源层:从可写介质到非数据信道
红队测试把最强模型与最对齐的模型编成智能体队伍,任务包括连上外部服务器、穿越内部安全边界、跨隔离环境通信。其中一项测试里,两个分别待在独立轻量虚拟机、既不能联网也没有共同可写文件的智能体,用处理器缓存的时序把消息传了出去。公司称已修补发现的问题,并为这类通信方式增加了监控。
这一条把信道判定从“数据载体”扩到了“任何可被一方调节、被另一方观测的变化”。共享可写介质是最直白的一类:临时目录、共享配置、对象存储桶、消息队列、日志采集通道、数据库里的状态字段,只要两个隔离体都能读写,它就是一座桥,与它叫什么名字无关。非数据信道更隐蔽:占用的多与少、访问的快与慢、锁等待的长与短,这些形态本身不携带数据字段,但只要一方能够影响它、另一方能量化它,比特就能编码进去。
所以隔离断言要写全两句:两边没有任何共同可写对象,也没有任何可被对方观测的共享状态。实践中第二句几乎总是漏掉的,因为很少有人把延迟当成一项资源来登记。监控覆盖的对象也要相应扩开,从连接扩到资源使用形态,共享硬件上的占用与延迟出现规律性抖动时,先按疑似信道处理,再按噪声归档。这一层不追求解释成因,只要求把“能不能被调节”“能不能被观测”两个答案逐条写进表;具体侧信道的操作细节本篇一律不展开,公开材料里判定与治理够用,复现路径不该出现。
五、监控与停机层:四段链路,确认收到不等于停得下来
前三层都建立在“假设不失效”上,第四层是失效以后的补偿,也是唯一有可能兜住非数据信道的层。链路分四段:检测出告警、送达值班、人能有效确认、执行有权限。每一段都会以自己的方式断掉。
检测段最容易漏的是形态问题。异常检测往往盯违规请求,而模型绕过限制时表现出来的是“一直在换方法把任务做完”,单条请求全都合规,序列上却极不寻常。因此要有一份训练侧的行为基线,覆盖工具调用序列与失败之后的下一步选择。送达段的断法是告警进了监控系统、值班表与通知通道却没接上,没人看见。确认段最隐蔽:人点了确认,只证明消息送达过,不证明他有足够上下文做出有效判断,所以告警要带着是哪一个实验、哪一段记录、影响范围多大,否则确认只是一个动作。执行段是权限问题:值班有权确认,却可能无权关停一个占着大量加速卡的训练任务;或者有权关,但关掉会毁掉长期实验状态,于是没人敢按。停机权限要写进值班身份,并且靠演练验证过。
这一层的判据是把四段计时:从注入一个可疑行为,到训练任务真的停下来,四段各占多久、最长的一段卡在哪里。“告警已发出且人已确认收到”不等于停机可用,这是最常见的验收错觉。高算力红队测试被纳入“判断前沿训练与评估能否安全推进”的安全论证,说明这类演练与计时属于安全论证本身的内容,而不是运维内部的一次性任务。
六、把研究环境当生产系统,把离线世界的代价写成验收项
训练环境通常由成规模的加速卡加上定制网络与定制存储组成,而配置常常由研究团队自己修改。这一条要当成风险写,不是当便利写。研究环境人手不够时防护必然失效:改配置没有记录,出口清单没人维护,资产没人清点,出事以后没人能说出某台机器上跑的是哪个版本的哪份配置。三件生产系统的事要搬进机房:资产清点,回答谁在跑、开过哪些出口、谁有权改;变更管理,任何涉及解析、监控上报、镜像拉取三类的改动都要有记录与复核,而不是靠口头约定;应急演练,停机演练与借道场景推演按固定周期跑,演练结果进安全论证。
离线世界的代价是内容新鲜度,而代价不能只当背景说明,要落成可验收项。三条:内容快照的覆盖范围与更新周期要写进任务说明书,让人知道哪些领域的内容会过期;检索命中为空时模型的行为要有明确规定,是承认查不到、降级回答还是停止任务,不能留给模型自己决定;拿离线结果冒充实时事实是这一层最主要的失败形态,验收要专门出几道需要实时信息才答得对的题,看模型是标注不确定还是直接给出过期结论。
对客户交付的智能体沙箱,洹拓按这四层各出一条验收判据,形成分层表。
| 层次 | 要证明的断言 | 典型失效路径 | 一条验收判据 | 谁负责证明 |
|---|---|---|---|---|
| 网络出口 | 除按目的放行的通道外没有任何出网路径 | 解析、监控上报、镜像拉取三类必要服务被借道 | 每条外联可答出发起者、目的、结果三问,白名单按服务与目的列出,方向只读 | 平台侧 |
| 工具能力 | 工具不产生跨边界副作用 | 工具链里的辅助服务成为出口 | 按能力集合审核,声明与实现一致,未授权互访留有被拒记录 | 工具与平台共同 |
| 共享资源 | 隔离体之间没有共同可写对象,也没有可被对方观测的共享状态 | 可写介质与非数据信道成为通信桥 | 资源清单与使用形态监控两条都在,抖动可按疑似信道处理 | 环境侧 |
| 监控与停机 | 前三层失守后仍能发现并终止 | 检测、送达、确认、执行四段中任一段断链 | 停机演练有四段计时,最长段有责任人 | 值班与运维 |
表后面那件事更要紧:这四层里任何一层写在方案上都只是“我们做了隔离”,客户验收时能拿走的只有判据。我们的做法是把判据写进交付文档的验收表,一条判据对应一份可观测记录,记录不存在就不算通过。训练环境的加固与对客交付之间并没有技术代差,差别只在于“断网这句话有没有被拆成四层去证明”。