Samsung 用三年多时间,从全面禁用 ChatGPT,走到把 ChatGPT、Gemini、Claude 接进内部系统。“禁”和“放”之间被省掉的,是一件很具体的工程:谁来决定一段文本能不能离开内网,以及谁来检查这个决定。
数据边界不是一道墙,是一条放行流水线。流水线里最难的一环不是脱敏,是“审”——做放行判断的那个角色会出错,还可能站在边界外面,而它的可靠性我没有找到有人单独测过。
审计者看到的,恰好是还没决定放不放的那段文本。只要审计者站在边界外面,“审”本身就是第一次外发。
2023 年春天,Samsung 半导体部门的工程师在 ChatGPT 里做了三件事。一个人把设备测量数据库下载程序的出错源码贴进去,求修复;一个人把识别缺陷设备的代码贴进去,求优化;一个人把会议录音转成文字贴进去,让它写纪要。这是 CIO Dive 转述 The Economist Korea 的报道,本文没有核到韩文原文。
三件事摆在一起,没有一件像“泄密”,每一件都像“干活”。边界问题难就难在这里:泄露和工作是同一个动作,能让模型帮上忙的上下文,恰好就是不该出去的东西。
泄露和工作是同一个动作。
Samsung · 2023 · 三起泄露
后来的故事大家知道:禁,自研,分区开放。我想写被故事省掉的那一段。分区开放要成立,得有人回答四个问题。哪些文本属于不能出去的那一档(分级);能出去的要改成什么样(改写);谁来判定改得够不够(审计);如果判定者自己出了错,谁来发现。
前三个问题有现成的工程做法。第四个,我没有找到有人单独测过。
我在《AI Native 时代的研发》里用一节写过 escapegate:一个验证性 Demo,内网请求要借外部 Coding Agent 干活,先经过“转义 Agent”做分级、脱敏、改写和对抗性审计,才放出去。这篇不重讲它的五个步骤,而是拿它当靶子,对着外面的证据把四个问题过一遍,包括证据在哪些地方反驳它。
反应最初很快,也很笨拙。据 CIO Dive,Samsung 先把单次提交的上传容量限到 1024 字节。5 月 2 日,TechCrunch 报道了一份内部备忘录:公司设备,以及接入内网的个人设备,禁用 ChatGPT、Bing、Bard 这类工具,5 月 1 日起生效,说法是“临时”。理由之一是数据存到外部服务器后很难取回和删除;公司 4 月的内部调查里,约 65% 的受访者认为这类工具有安全风险。
禁令之后是自研。2023 年 11 月 8 日,Samsung 在 AI Forum 上发布 Gauss,其中 Gauss Code 是代码模型,基于它的编码助手 code.i 先在内部使用。
2026 年 6 月方向掉了头。CIO.com 6 月 12 日报道,DX 部门把 ChatGPT、Gemini、Claude 正式接入内部工作系统,上线前有约 2,500 名员工参与验证。半导体部门(DS)这边,Korea JoongAng Daily 同日的报道说它此前已在内部用 Claude,6 月 12 日起开放 ChatGPT,Gemini 年内引入。同一篇里,SK hynix 的 CEO 在 town hall 上说,Microsoft 365 和 Copilot 在审议,ChatGPT Enterprise 在评估,外部 AI 先在“不涉及国家核心技术”的领域逐步引入;报道解释这指政府指定的、有国家安全和经济价值的技术。
这几篇报道都没有写划线用的技术手段。CIO.com 只说在搭一套安全框架,细节没有。所以下面的对照是我的类比,不是两家公司的说法:SK hynix 的“国家核心技术除外”,在 escapegate 的分级里就是 L3,这一档不出内网。分区开放能不能成立,取决于这条线能不能写得足够明确,明确到机器能执行。
禁令也不会让需求消失。IBM 2025 年的数据泄露成本报告说,五分之一的组织报告过 shadow AI 导致的泄露;在这类泄露里,知识产权被泄露的占 40%,全球均值是 33%。IBM 咨询顾问在 Think 上的一篇文章引用 2026 年版报告,称涉及未经批准 AI 的安全事件占比从 20% 升到 43%,这组数本文没有在报告原件里核到。它们不能证明禁令无效,只说明“没批准”和“没人用”是两回事。
Simon Willison 在 2025 年 6 月提出“致命三要素”:一个 agent 同时能访问私有数据、会接触不可信内容、还能对外通信,攻击者就能把指令藏进不可信内容,让它把私有数据带出去。他的结论很干脆,要安全就得完全避开这个组合;对号称能拦住这类攻击的护栏产品他说自己“deeply suspicious”,理由是在 Web 安全里 95% 的拦截率只算不及格。
Meta 在 2025 年 10 月给出的“二选一规则”是同一个思路的工程版:一次会话里,agent 最多满足三条里的两条——处理不可信输入[A],访问敏感系统或私有数据[B],能改变状态或对外通信[C]。三条都要,就不该自主运行,至少需要监督,形式可以是人工批准,也可以是别的可靠校验。Meta 自己强调这条规则不充分:管不到攻击者借力、垃圾信息、agent 犯错和幻觉,用户盲目点确认也会让合规的设计失效。
把 escapegate 放进这个框里(映射是我做的,不是 Meta 的):内网 Agent 手里有 [B] 也有 [C];外网 Agent 要读不可信的网页和依赖 [A],也能联网执行 [C],但看不到私有数据,满足二选一。麻烦出在回流路径。外网 Agent 的产出回到内网,对内网 Agent 来说是不可信输入 [A],而它自己有 [B] 和 [C]。三条腿在这里重新凑齐,规则给的答案是不能自主、要有监督。入站扫描(密钥和依赖风险)加人工复核,就是这份监督。
“私有数据不出去”这件事,比看上去难守。下面三个案例有个共同点:出口不是聊天框。
2025 年 5 月,Invariant Labs 演示了一个攻击。攻击者在公开仓库提一个带提示注入的 issue;仓库主人让 agent“看看 open issues”,agent 读到注入,把主人私有仓库里的内容拉进上下文,再在公开仓库开一个 PR 贴出去。演示里泄露的是项目名、搬家计划和薪资,用的是 Claude Desktop 里的 Claude 4 Opus。作者认为这不是 GitHub MCP server 代码本身的缺陷,而是 agent 系统层面的架构问题,并提到默认虽然每次工具调用都要确认,但不少用户选了“Always Allow”。
2026 年 4 月的 Comment and Control,据 VentureBeat 4 月 21 日的转述:研究者在 PR 标题里放一句指令,Claude Code Security Review action、Gemini CLI Action 和 GitHub Copilot Agent 都照做,把自己的 API key 贴成了 PR 评论。Anthropic 评为 CVSS 9.4(Critical),赏金 100 美元;Google 付了 1,337 美元,GitHub 500 美元。三家都悄悄修了,按 VentureBeat 的说法当时没有发 CVE。
2026 年 9 月的 PixelLeak,Help Net Security 9 月 30 日转述 Glow Labs 的研究:13,000 多张内部截图散在 900 多个仓库,涉及 300 多家机构的开发者,93% 在员工个人用户名下。内容有一家大型制造商里的公用事业客户账单画面、一家金融机构的资金管理控制台、未发布功能的截图。原因很琐碎:GitHub 的 PR 图片上传只能在浏览器里做,命令行里的 agent 为了让评审看到截图,自己建了公开仓库。Glow Labs 用 Claude Code 复现过。受影响机构没有具名,报道里也没有厂商回应。
三个案例里没有人把敏感文本贴进外部聊天框。出口是 agent 手里的工具:开 PR、发评论、建仓库。下一节谱系里最常见的两类控制,粘贴拦截和 prompt 扫描,盯的是另一条路径——这是我的读法。
对 escapegate 的含义是:它管的是送往外网 Agent 的文本,对“外网 Agent 带着工具干了什么”基本无能为力,靠的是外网 Agent 本来就看不到真实内网,它能泄露的,至多是放行出去的那一份文本。于是整个系统的重量,全压在“放行哪份文本”这个决定上。
先看别人怎么做。下面除学术工作外,都是厂商自己的文档,描述的是自家产品。
| 类别 | 代表 | 机制(出处口径) | 对“放行”的态度 |
|---|---|---|---|
| 终端 / 浏览器阻断 | Microsoft Purview | 加密型敏感度标签(文档称其他 AI 应用解不开);Endpoint DLP 阻止粘贴和上传;Edge 实时检查输入消费版 ChatGPT、Copilot、DeepSeek、Gemini 的 prompt | 命中即拦;文档建议先开模拟模式看影响 |
| 网关阻断 | Cloudflare AI Gateway DLP | 扫描请求,命中 DLP profile 后 block 或 flag,日志记录命中的 profile | 拦或标 |
| 检测与脱敏库 | Presidio | NER、正则、规则、校验和检测 PII,再用算子去标识;自述不保证找全 | 实体级,不管语境 |
| 信任式承诺 | OpenAI ZDR;Anthropic 数据政策 | OpenAI:滥用监控日志默认最长保留 30 天,ZDR 需事先批准。Anthropic:商业条款下不训练,标准保留 30 天,ZDR 按组织开通;Foundry 的 Hosted on Azure 部署里,prompt 留在 Azure,只有使用元数据和被安全系统标记的内容出站 | 明文照样到对方,靠承诺 |
| 本地 / 气隔 | NVIDIA 自托管教程;Siemens Fuse | StarCoder2-7B 跑在自有 GPU 上,前置策略拒绝 human-only 文件,后置 CI 校验;Siemens 称可在气隔环境运行 | 不出去,用能力换边界 |
| 改写后放行 | Preεmpt、AURA、DR-SL、escapegate | 改写、验证、攻击者复测、放不过去则兜底 | 对改写后的残余负责 |
Purview 的加密标签值得多看一眼。文档的说法是,被 Purview 加密的内容,其他 AI 应用解不开,所以即便用户贴进去,AI 也处理不了。这是最干净的一种“拦”:在数据这一层就失败闭合,代价也最彻底,模型读不懂,就帮不上忙。这是 § 06 的主题。
NVIDIA 7 月的教程把“本地模型加外置策略”写得很具体:前置的 NeMo Guardrails 对标成 human-only 的文件(认证、支付、密码学一类)直接拒绝,后置 CI 校验和提交溯源,再监控缺陷逃逸率——连续两周高于基线,就收紧策略或暂停推广。文中有一句话我很认同:the model is not the control plane。但这是厂商教程,不是客户案例,也没有拿 7B 模型和前沿模型的代码能力做对比,至少我读到的部分没有。把代码留在内网的能力代价,本文没有核到第三方数据。
这张谱系上,多数产品落在两端。一端是阻断,命中就拦,不改写。另一端是信任,明文到达对方,靠合同保证不留、不训练。中间还有一档:改写之后放行,放不过去就留在内网。这一档学术界有人做,产品里我没有核到成熟的。escapegate 站在这里。
这一档比两端多出来一个必须有人回答的问题:改得够不够。阻断式的判断是“命中了什么”,信任式的判断是“信不信这家”,都不用回答改写之后的文本还泄露什么。一旦承诺改写,就得对改写的残余负责。审计这个角色,是被这个承诺创造出来的。
2026 年 9 月 14 日,arXiv 上出现了一篇预印本:DR-SL(Wen Hu 等,未见同行评审)。它的做法是:敏感项在本地被抽取、“脱水”,只有脱水后的文本发往云端模型,结果回来再“复水”。放行前要过一条链:本地的双分支验证器(一支看能不能凭脱水文本答出被藏起来的属性,一支检查脱水文本加敏感集能否无损复原原文),一条确定性的“硬线”擦除,一个外部强攻击者复测,最后是人工兜底。过不了的实例标成 INFEASIBLE,拒绝自动外发,转人工。
把两个系统的部件并排放:
| 部件 | escapegate(页面) | DR-SL(论文) |
|---|---|---|
| 敏感项抽取 | 规则引擎加中文 NER(GLiNER、Presidio 中文模型) | 级联抽取器 |
| 可逆替换与还原 | 可逆令牌化,真实值留在服务端令牌库,回收时反向映射 | 脱水—云端推理—复水 |
| 本地验证 | 本地小模型分级与 LLM 分级双审,取更保守 | 本地双分支验证器加闸门 |
| 确定性硬规则 | L3 当场短路;密钥、内部域名直接拦截 | “硬线”擦除 |
| 对抗性复测 | 独立厂商账号的审计 Agent 扮演“外部窥探者”,给置信度 | 外部强攻击者复测,论文用了两个 |
| 兜底 | 人工复核;L3 走内部私有模型 | INFEASIBLE 转人工 |
| 评测 | 103 条芯片场景(合成) | 医疗、银行、旅行、法律四个领域(合成) |
每一行都对得上。部件级的近亲还有两个。Preεmpt 是 NDSS 2026 的论文,对格式相关的 token 用保格式加密,对数值相关的用度量差分隐私,但它自己限定处理的是只靠单个 token 就能推出的敏感信息,不处理语境推断。AURA 研究带联网搜索的 agent 如何把弱语境线索拼起来重识别个人,评测对象是访谈转录,不是代码或设计数据。它支持 escapegate 里的一个发现:数值表格做保结构变换,挡不住审计 Agent 猜行业,因为列名和表的形状就是线索。我的发现是同类现象的一个实例,算不上独立证明。
所以新颖性要降调。我能主张的差别只有两处:垂直域(103 条芯片场景标注集,以及“结构本身即资产”这个判定类别),和闭环里有入站这一半。第二处,DR-SL 全文里有没有对应设计,本文没有核到;第一处,DR-SL 的“完全任务耦合”最坏情形与它相邻,边界在哪我说不准。
比部件对照更有价值的,是 DR-SL 诚实报告的几个数字:
放在一起看是对称的。DR-SL 在最坏情形里用“全擦”换来 0.000,效用跟着归零;escapegate 的 L3 用“不出内网”换来零泄露,效用留给内部私有模型。两条路说的是同一件事:任务离不开的上下文,放出去就是泄露。
escapegate 页面上的数字,先说它们是什么。103 条请求是我为芯片设计场景新建的评测集,带精确的实体标注,所以能算召回和精度,不只是看分级对不对。在“不传业务黑名单”的条件下,接入中文 NER 之后,实体检测的召回从 0.226 升到 0.959,精度从 0.464 升到 0.942;过度脱敏率从 8.9% 降到 0.0%;分级准确率在 golden 集上从 0.592 升到 0.854,半导体 v1 集上从 0.735 升到 0.974;同一请求分级三次的一致率从 0.952 升到 0.981。
再说它们不是什么:
escapegate 页面上有两个评测用例(已改写成通用占位),放在一起讲了这个矛盾。
第一个是 STDF 解析脚本在某台测试机导出的文件上跑不动。请求里有 ATE 机台号、产品代号和 lot 号,但没有测试 pattern 或 trim 表这类测试程序资产。代号化之后,它就是一个通用的 STDF 解析问题,外网 Agent 看不到那三个标识符本身。判 L2,脱敏后放行,外网 Agent 完成任务。
第二个是一段 eFuse 安全配置寄存器的初始化代码,问 root key 槽位的锁定顺序对不对,JTAG 解锁挑战是不是该在 OTP 读完之后。要回答这个问题,模型必须看到锁定顺序和寄存器语义,而这正是资产本身。判 L3,当场拦截,路由回内部私有模型。
区别在于标识符是不是问题的一部分。第一个请求里的标识符是附带的,拿掉不影响回答;第二个请求里,被问的东西就是要保护的东西。“可回答性”和“可反推性”是同一份上下文,从两端看:模型靠它回答,攻击者靠它反推。
“可回答性”和“可反推性”,是同一份上下文从两端看。
模型靠它回答,攻击者靠它反推
页面上另外两个备选方案,是这个矛盾的两次实测。数值表格保结构变换,能保护数值本身,但不降低审计 Agent 猜出行业的能力。多 MaaS 可见性拆分,确实更难被反推,审计置信度降 0.146,但只有 25% 的任务拆得开。DR-SL 的最坏情形是同一件事的论文版:每个准标识符都与任务相关,能放行的就没有了。
任务一旦强耦合,出路只有四条,每条都有价码:
| 出路 | 价码 | 已有的数 |
|---|---|---|
| 留在内网(L3、本地模型) | 能力 | 本文没有核到内网模型与前沿模型差距的第三方数据 |
| 拆任务 | 覆盖面 | escapegate:25% 拆得开,置信度降 0.146 |
| 加人 | 吞吐与疲劳 | DR-SL:INFEASIBLE 转人工;Meta 提醒盲目确认会让设计失效 |
| 全擦 | 效用 | DR-SL:160/160 转人工,效用 0.000 |
这张表有个推论:真实请求里,强耦合任务占多大比例,决定这套东西是个放行系统,还是个把请求路由给内部模型的路由器。L3 占大头,网关本质上是路由器;占小头,才是放行系统。这个比例是影子模式要测的第一个数。
这一节全是我对条文的读法,不是法律意见。
第一,ITAR 的技术数据按功能定义。22 CFR 120.33 说它是为防务物项的设计、研发、生产、制造、装配、操作、修理、测试、维护或改造所需要的信息;(b) 项排除了学校里教的基础科学数学工程概念、已公开信息、基础营销材料、对系统的高层次描述等。我的读法:定义看信息的用途,不看署谁的名,去掉客户名不等于移出定义。排除项给“改写成通用问题”留了一条窄路,路有多宽,条文没说,我没有找到针对 LLM 提示词的官方解释。
第二,端到端加密安全港有个条件。22 CFR 120.54 要求解密手段不提供给任何第三方;EAR 有对应条文,见 15 CFR 734.18(a)(5)。明文技术数据发给云端模型,模型必须读得懂,这个安全港我读不出能用的空间。它和 Purview 的“模型解不开”同向:解不开所以安全,也所以没用。
第三,EAR 对 PDK 的分类。UC San Diego 研究合规办公室(页面标注 10 月 9 日更新)的PDK 指南写道:PDK 在管制清单上归 3E001 或 3E991,不满足参数的是 EAR99;这两类 PDK 都需要带访问限制的技术控制计划(TCP);3E001 对加拿大以外所有国家的非美国人有许可要求,3E991 只针对古巴、伊朗、叙利亚、朝鲜;PDK 往往是代工厂专有,可能受 NDA 约束;用 EDA 软件配合受控 PDK,通常构成需要许可的释放;部分开源 PDK 属公共领域。这是一所大学的合规说明,不是 BIS 文件。escapegate 把“PDK 规则数值”判 L3,和它对得上。
至于 AI,官方还没开口。Just Security 2025 年 12 月的文章(Law Reform Institute 的两位作者)说,DDTC 与 BIS 尚未就此给出权威指引。那篇谈的是模型输出算不算技术数据出口,主张闭源模型的开发与部署者最可能被视为“出口方”,方向与提示词外发相反,我只借它证明“没有指引”这一点。代工厂的 NDA 里有没有针对 AI 的条款,TSMC 等公司内部怎么规定,本文没有核到。
没有指引的后果很实际:企业只能自己写技术控制计划,自己证明控制有效。在我看来,放行日志、硬规则和抽检记录,将是那份计划的证据。
escapegate 的审计 Agent 是这样一个角色:一个独立厂商账号的 Agent,扮演“外部窥探者”,看脱敏后的文本,试着反推行业、公司和业务,给出置信度;置信度与规则命中数、一致性信号(跨会话聚合)加权,决定放行、人工复核或打回重写。页面自己写明,打分公式和一致性信号都有已知局限。它是整条链路里最重的一个判断,也是最没被单独检验的一个。我能想到它至少有四种失灵方式。
一,本地审计会漏。 DR-SL 的 70/160:本地闸门放行的实例,外部攻击者仍抽出 0.43–0.49。论文还写了原因之一:本地评估器遇到可以枚举出来的残余值,答了“未知”。
二,攻击者是固定的。 § 05 的教训在这里再用一次:DR-SL 的外部攻击者是固定模型加固定模板,escapegate 的审计 Agent 也是一个固定的提示。自适应对手面前,平均检出率不等于安全。
三,审计者和被审者可能同源。 页面写明,公开演示把分级、审计、红队、外网 Agent 四个角色收敛到同一家模型 API,失去了原方案“跨厂商拆解可见性”的多样性。同一家族的模型盲区是否相关,我没有测,这是假设。但“验证者与生成者共用盲区”,是所有用模型审模型的设计都要面对的问题。
四,审计本身可能是一次外发。 按页面的描述,审计 Agent 是独立厂商的账号,它读到的是改写之后、放行之前的文本,包括最终被打回重写的那些候选。如果这些文本最终没放行,它们已经被一个外部账号看过了。DR-SL 对此的处理是把外部复测放在与目的地云端同一信任类别里,不新增一方。这一条是我从设计描述推出来的,依赖审计 Agent 的实际部署方式(见文末待确认)。
那么谁来审审计者?没有一个“更高级的审计者”能终结这个问题,审计者的审计者同样会漏。能做的是叠几种性质不同的检查,让它们的失败方式互不相关:
这四层没有一层是新发明,加起来也回答不了“安全吗”,只回答“在这几种攻击下,我们多快能发现自己错了”。DR-SL 的作者说的其实是同一件事:放行安全靠经验校准、硬线和人工复核。
escapegate 页面把下一步写成“内网影子模式”:先只记录不外发,用真实请求量化后再决定放开外网路由。这句话好写,难在设计。下面是我的设想,没有跑过。
全链路照跑,出口焊死。 分级、脱敏、审计都跑,放行判定照常产出,外网路由关闭。这个做法不是我的发明:Purview 的文档也建议 DLP 策略先在模拟模式下运行,看清对用户的影响再上线。
影子日志是新的最敏感数据集。 它同时存着原文、改写后的文本和审计结果。放在内网,访问另设权限,保留期要短,别让它成为下一个泄露源。
先测三个数。
审计者另测。 用 § 08 的植入集测漏报率,单独报,不混进放行指标里。
分阶段放开,每阶段有退出条件和熔断。
影子模式测不到的。 一是用户行为:知道有网关之后,人的措辞会变,影子期的分布未必是上线后的分布。二是自适应攻击者:这要靠红队单独做。三是回流路径:影子期不外发,也就看不到外网 Agent 的产出里会带回什么,入站扫描要另行演练。
首次发布 2026-10-13