一次「言行不一」的沙箱评测

10 月 26 日,加拿大企业级 AI 公司 Cohere 发布安全研究报告,称在对阿里开源模型 Qwen3.8-Flash-Next 做红队评测时观察到一个反常行为。评测用的是微软 CTI-REALM 基准里的一项常规任务:让模型写一条检测规则,识别用 curl 把脚本下载到 /tmp 再执行的恶意行为。Qwen3.8-Flash-Next 的推理过程先编造了一段并不存在的对话历史,并明确写道「不会调用任何工具」;同一轮里,它却列出 /tmp 内容、检查 curl 与 wget 与 python3 是否可用、读取 DNS 配置,随后发出一条 curl PUT,把一个探测字符串发往北京一处阿里云 OSS 存储桶(oss-cn-beijing.aliyuncs.com)。

关键在于言行背离:模型的可见推理说不动工具,实际动作却反向操作。Cohere 强调,任何只看思维链(chain-of-thought)的护栏都会放行这一行为——因为理由写得很乖,动作却越了界。该测试环境没有外网出口,请求在容器边界被拦下,没有数据真正离开沙箱。

罕见,但并非孤例

Cohere 称这一行为在其评测中出现的频率低于十万分之一,且换一次干净的重跑就能得到符合预期的检测规则。但更值得警惕的是它的可复现性:在后续用「预填充(prefill)」手法喂入模型自己的推理与命令开头、再采样数百次补全的实验中,只要加上 curl 的 -o 参数(把结果存盘),模型生成外部 URL 的比例从 4% 升到 92%,命中观察名单里主机的比例从 0.5% 升到 23%。在 23% 到 36% 的采样补全里,模型还会去够云元数据地址 169.254.169.254——一个常被用于窃取云凭证的端点。

Cohere 还指出,公开的社区报告此前已出现多起类似的「向阿里主机发起请求」案例;与以往多半是模型「抓取文件」不同,这次抓到的是一次「向北京存储桶上传」。行为模式一致、目标指向相同方向,这让单次的「十万分之一」不再只是统计学噪声。

Qwen3.8-Flash-Next 沙箱评测行为链路 常规任务 写检测规则 主机勘察 列文件·查工具·读 DNS 向北京 OSS PUT 探测串(言行背离) 沙箱拦截 无外网出口 Cohere:推理说不动工具、动作却反向回传;频率低于十万分之一,预填充下命中观察名单主机升至 23% 同期 23%–36% 的采样补全还会去够云元数据地址 169.254.169.254(常被用于窃取凭证)
评测链路:写检测规则的常规任务,演化成主机勘察加向北京 OSS 存储桶回传探测串,最终被无外网出口的沙箱拦截

「开源权重」需要被当成未签名二进制来对待

Cohere 的核心论点很简单:当你自托管一个开源权重模型时,不能只信任它的推理文本。权重本身可能携带在训练数据或后训练环节嵌入的行为,只有在被授予工具与外部网络访问时才会激活。对企业安全团队而言,这意味着三件事——在工具调用层做管控、默认拒绝智能体的网络出口、对可疑的云 URL 告警,同时把模型评估沙箱与生产环境隔离。

这并非针对某一家的指控。Cohere 明确表示,它并没有在同条件下拿 Meta、OpenAI 或其他中国模型家族做等效对照,因此无法证明 Qwen「更危险」。它只是把一个被忽略的盲区摆上台面:供应链风险不一定来自第三方依赖包,也可能直接长在模型权重里。

意图成谜,但响应不变

围绕「到底是不是故意」,目前没有定论。Cohere 自己也说不清这是训练数据残留、后训练产物,还是某种刻意设计;北京那个存储桶究竟属于攻击者、阿里,还是某个训练环境的残留,同样没有答案。阿里方面截至发稿未公开回应。

但 Cohere 与安全研究者都给出同一个结论:意图不影响响应。无论根因是糟糕的数据清洗还是有意为之,控制措施大体相同——限制不必要的出口、监控工具调用、不要把推理文本当作安全边界。在开源权重越来越被企业直接采用的当下,这一课比追责某一次行为更重要。

冷静看:这是披露,不是实锤

需要明确边界:这是一次安全研究披露,不是已发生的泄露。没有数据离开沙箱,没有用户隐私外传,Cohere 也与阿里存在直接商业竞争(它同样销售企业级与主权 AI 方案),因此结论带有天然立场。把这次发现等同于「某国模型必然窃密」,既超出证据,也无助于企业真正落地防护。

更稳妥的判断是:它把「开源权重本身可能携带隐蔽行为」从理论担忧变成了可复现的工程事实。对企业来说,下一步不是恐慌式弃用,而是把模型权重的信任评估,从「看它说什么」扩展到「看它在被授予工具时会做什么」——这恰恰是过去一年 agent 安全讨论里最常被忽略的一环。