一句话定义
模型出网审计(model egress audit) 指在把模型部署进生产网络之前,系统性地查一遍:这个模型与它的运行时会不会主动发起外部连接,连向哪些地址,频率如何,发送什么,以及这些行为能不能关闭。
审计对象不只是权重文件,还包括推理框架、依赖库、模型下载器、许可校验、遥测与崩溃上报。
它解决什么问题
模型的默认行为很少被人检查。装一台盒子、跑一条命令、识别开始出结果,事情就算完了。但这条链路里有好几处会往外说话:
- 运行时遥测。 很多推理框架默认开着使用统计和崩溃上报,配置项藏在环境变量或者配置文件深处,默认值是开。
- 许可与版本校验。 商业推理引擎会定期回连校验授权,断网时会退化成重试甚至阻塞启动。
- 依赖拉取。 「一条命令跑起来」的安装脚本,第一次启动时去拉依赖或模型权重,之后可能还保留着更新检查。
- 权重本身。 权重是数值,本身不执行代码,但加载它的代码、以及配合它的 tokenizer 和预处理配置,都可能带出网络行为。
在机房,这些都不算大事。在门店网络里,性质变了:出口带宽有限,白天被收银占着,夜里被补货和对账占着;门店的流量管控往往只覆盖到 PC 和 POS,新增一台盒子没人给它建规则;断网时如果进程卡在重试上,收银台就跟着卡。
关键做法
- 静态先看清单。 权重从哪来、什么许可;镜像里装了哪些包,依赖树里有没有网络客户端;配置文件里搜 telemetry、analytics、update、license 这类开关,先全部关掉。
- 隔离网络里冷启动一次,只看 DNS。 把设备放进一个只能解析、不能出站的网络,抓一次冷启动和一次正常识别过程的 DNS 查询与出站连接。看域名和频率,不看内容——目的是知道它在跟谁说话,不是审查报文。
- 拔网线跑完整流程。 断网跑一遍开机、识别、上报、升级检查。要观察的不是「能不能出结果」,而是「有没有一步在等网络超时」。这一条最容易暴露问题:有些系统离线能用,但启动会先卡三十秒等校验失败。
- 出网白名单,而不是黑名单。 设备只允许访问明确列出的目标(更新通道、时间同步、自己的服务端),其余一律拒绝并记日志。默认拒绝比逐个封禁可靠,因为新增的连接不需要有人先发现。
- 把「可关闭」写进交付清单。 每一项外连行为要有对应的关闭方法,以及关闭后功能缺失的说明。不能关的,要写清为什么不能关。
- 升级后重跑一遍。 默认配置会随版本变,审计是有周期的动作,不是一次性验收。
用不上的时候
- 「离线可用」不等于「从不联网」。 离线说的是不依赖网络也能出结果,不代表它不尝试连接。两件事经常被混为一谈。
- 只查权重、不查运行时,等于没查。 报告里出现的外部连接,多数来自依赖库和遥测,很少来自模型权重本身。
- 抓到一次外连不等于恶意。 时间同步、证书校验、崩溃上报都会产生外连,本身是正常工程行为。判断标准是:能否关闭、是否会阻塞业务、是否发送了不该发送的内容。
- 也不等于无害。 一个每十分钟发一次设备指纹的进程,合规上可能比一次性的更新检查麻烦得多。要看发的是什么。
- 审计报告不是免责文件。 拿到一份「已通过审计」的结论就归档,下次升级照样出新行为。要的是可重复的动作和固定的白名单。
- 设备完全不接外网时,问题没消失,只是变形了。 它变成「在店内局域网里它连谁」——会不会扫描网段、会不会连别的设备端口。范围小了,做法一样。
- 别把审计做成阻断业务的理由。 白名单配错一次,整批设备失联。改规则要有回退路径。
参考
公开报道(VentureBeat,2026-10):Cohere 在一次测试中发现,一个开源权重的 Qwen3-8 模型在运行时尝试回连其来源方的服务器。报道讨论的是企业引入第三方权重时该注意什么。此处只取「模型与运行时可能带出网行为、需要部署前核查」这一层结论,不涉及厂商评价。
延伸阅读
- 门店网络里那台盒子,夜里在跟谁说话 —— 这篇讲的是这件事对门店意味着什么。
相关词条
火眼识别提供端侧视觉引擎与设备管理平台,相关方案见 火眼识别官网。