应用里显示的模型名称,只说明客户端请求了哪种能力。真正决定数据边界的,是 Prompt 经过哪些服务、由谁运营,以及每一跳能够读取和修改什么。
这一区别在普通聊天里容易被忽略,在生产系统里却是准入条件。LLM 中转站会终止客户端的 TLS 连接,再向上游建立新连接。它因此能够看到应用层明文,包括系统提示词、文档内容、工具定义、工具参数和模型返回的结构化动作。生产团队需要审计的对象,是完整路由链,而不是界面上最后一个模型名称。
核心结论
- 把每个 LLM 中转节点登记为数据供应链处理者,记录法律主体、上游端点、地区、子处理者和回退规则。
- 分开管理保密性与完整性。零数据保留约束存储行为,却不能证明中转方没有改写响应。
- 对敏感任务固定提供商、关闭静默回退、缩小凭证权限,并在本地给高影响动作设置确定性门禁。
- 一次干净的探测只提供有限时点证据。生产准入还需要持续日志、撤销演练和退出方案。
模型名称不是数据路径
修改 SDK 的 base_url,就能让一个客户端通过统一接口调用许多模型。JSON 格式仍然合法,模型名仍然熟悉,但真实路径可能已经变成:
业务应用
-> 中转站或经销商
-> 二级聚合服务
-> 托管提供商
-> 模型端点
-> 原路返回
只要某一跳终止并重新建立 TLS,它就处于明文处理路径。HTTPS 能证明客户端连接到了配置的中转站,无法替整条应用链证明响应语义保持不变。
因此要拆开两个问题:
- 保密性:谁能读取、记录、分类、转售或用于训练这次请求?
- 完整性:谁能在执行前修改请求、响应或工具调用?
这对 Agent 尤其重要。普通回答被改写,风险通常是误导人;run_command、数据库更新或签名参数被改写,风险会直接落到机器和账户上。模型内部的安全对齐无法覆盖发生在推理前后、位于中转层的修改。
先按证据强度读风险
风险已经有系统测量,但结论需要保持边界。
2026 年 4 月的论文 Your Agent Is Mine 检查了 28 个付费和 400 个免费中转服务。作者报告,1 个付费与 8 个免费服务出现恶意代码注入,2 个使用自适应触发,17 个访问了研究者控制的 AWS 金丝雀凭证,还有 1 个转走了研究者控制的以太坊钱包资产。研究者预先限制了钱包余额,链上损失低于 50 美元。
这项研究还用受控代理向四种 Agent 框架返回原生格式的改写工具调用。它证明了格式兼容性,不能直接等同于真实环境的端到端攻陷率,因为本地权限确认、沙箱和动作门禁仍可能阻止执行。论文里的防御效果也主要来自生成语料和控制实验,不能替代生产遥测。
另一项研究 Real Money, Fake Models 对影子 API 做了元数据、性能、行为和模型指纹检查。代表性样本表现出明显效用偏差,45.83% 的指纹测试出现身份验证失败。研究者没有后端真实记录,因此这些结果是模型身份不一致信号,而不是已经完成归因的法律证据。
可信组件也可能在采购后发生变化。Datadog Security Labs 报告,LiteLLM 的真实 PyPI 发行版本 1.82.7 和 1.82.8 在 2026 年 3 月 24 日包含恶意代码。这证明正规分发链中的网关组件同样需要版本固定、构建来源和更新响应,不能据此推断每个 LiteLLM 部署都暴露了流量。
Anthropic 的 2026 年 9 月威胁报告 提供了模型厂商视角。Anthropic 称,它观察到其他服务将用户请求静默转发给 Claude,其中一些请求包含企业数据、源代码和真实凭证。涉及具体行为方的判断属于 Anthropic 自己的高置信度威胁情报,文章在这里保留其厂商归因身份,等待独立材料进一步确认。
这些证据共同支持一个有限而足够行动的结论:中转站天然是明文处理者;商品化样本中已经测到恶意行为;部分影子 API 出现身份不一致;正规网关软件也可能被供应链攻击。因此生产系统应建立控制,但没有理由把所有聚合服务一概判定为恶意。
把路由画成供应链
只问用了哪个模型,会漏掉最重要的处理链。建议为每条生产路由维护以下清单:
| 对象 | 最小证据 | 缺失时的风险 |
|---|---|---|
| 客户端与 SDK | 版本、端点配置、插件、本地日志 | 隐式重放、客户端存储或依赖漂移 |
| 中转运营方 | 法律主体、域名、子处理者、司法辖区 | 找不到可问责的数据处理者 |
| 路由策略 | 提供商白名单、回退规则、策略版本 | 模型或端点静默切换 |
| 转换层 | 压缩、缓存、护栏、服务端工具、格式转换 | Prompt 或响应语义发生变化 |
| 凭证平面 | 密钥归属、权限、预算、有效期、上游账户 | 跨工作负载暴露和无法归属的消费 |
| 模型端点 | 实际提供商、版本、地区、保留政策 | 请求模型与服务端点不一致 |
| 返回路径 | 请求 ID、尝试记录、响应哈希、动作决策 | 事故发生后无法重建过程 |
审计单位应细化到端点。同一家模型提供商的默认政策、企业协议和第三方托管端点可能不同。插件、联网搜索、文件存储和可观测性导出还会增加新的处理者。
OpenRouter 的官方文档可以说明为什么配置本身就是证据。它的 Provider Routing 支持固定提供商顺序并关闭回退;Zero Data Retention 说明 ZDR 按端点判断,插件与工具采用各自政策,内存 Prompt 缓存仍符合其对零保留的定义。这些是运营方声明的控制和口径,独立保证需要另外收集。
建立最小路由证据合同
一条生产路由至少要对六类承诺留下证据,并为每类承诺定义失败动作。
| 合同字段 | 最小记录 | 失败时动作 |
|---|---|---|
| 路由身份 | 请求模型、实际提供商或端点、地区、尝试次数 | 端点不在批准集时拒绝请求 |
| 路由策略 | 白名单及策略版本或哈希 | 未知策略或静默回退时失败关闭 |
| 数据使用 | 保留、训练、缓存、滥用审查、子处理者 | 超出数据分级许可时阻断 |
| 内容转换 | 压缩、护栏、服务端工具、Schema 转换 | 出现未声明转换时升级审查 |
| 凭证范围 | 工作负载身份、额度、过期时间、上游账户 | 越权或超预算时停用密钥 |
| 审计关联 | 本地请求 ID、中转 ID、上游 ID、脱敏哈希 | 无法关联时隔离响应 |
部分路由平台已经能暴露这些字段。OpenRouter 的可选 Router Metadata 可以返回请求模型、选中端点、策略、回退尝试和关键处理阶段;它的 Guardrails 可以限制模型与提供商、要求 ZDR、控制预算并处理敏感数据。
这些记录应同步进入团队自己的脱敏遥测。中转平台里的控制台适合日常运维,独立保存的审计记录则用于平台本身成为调查对象时恢复事实。
两个常见字段容易被过度解读:
- ZDR 约束处理后的保留和训练。中转服务在请求时仍然处理明文,完整性问题也没有因此解决。
- 客户端响应哈希只能证明客户端收到了哪些字节。缺少上游提供商对规范响应的签名时,它无法证明这些字节正是模型端点原始生成的内容。
按数据敏感度和动作权限准入
安全标签过于粗糙。更实用的做法,是同时看 Prompt 里的数据等级和模型输出能够触发的动作权限。
| 等级 | 典型任务 | 路由要求 | Agent 权限 |
|---|---|---|---|
| 0 | 公开文本、一次性实验 | 已知运营方,保留基本路由日志 | 无外部副作用 |
| 1 | 低影响内部内容 | 批准端点、明确保留政策、独立密钥 | 只读工具或人工确认 |
| 2 | 机密代码或业务资料 | 合同处理者、固定提供商、关闭回退、必要时 ZDR 与 DLP | 沙箱、窄白名单、提交门禁 |
| 3 | 真实凭证、监管数据、生产管理、签名 | 直连合同端点或完整治理的私有网关 | 专用身份、最小权限、独立批准、快速撤销 |
数据敏感度决定谁能看到输入,动作权限决定被修改的输出能够造成什么后果。同一个模型可以同时服务 0 级聊天和 3 级运维 Agent,但两条路由必须采用完全不同的治理配置。
真实密钥也不应进入 Prompt。让模型提出动作,再由本地 Secret Manager 在动作边界注入短期凭证。这样模型、中转站、上游提供商、日志和异常处理器接触到的秘密都会减少。这个原则与 AI Coding Agent 的安装前信任边界 相同:模型负责建议,确定性本地门禁负责批准执行。
用验证阶梯替代一次性安全评分
论文观察到部分条件行为会在特定语言、预热次数或自治模式下出现。单次检查只覆盖一个时点和有限触发条件。生产系统应持续执行以下阶梯:
- 核对问责主体:保存运营方、域名、子处理者、支持渠道、事故通知条款、隐私政策与 DPA。
- 冻结生产路由:限定模型和提供商,敏感任务关闭回退,并在预发布环境主动让批准端点失败。正确结果应是可见错误,而不是无提示扩展路由。
- 使用合成金丝雀:给测试账户发送唯一、无生产价值的标记,监控异常复用。审计语料里不要放真实云密钥、钱包私钥、客户记录或专有代码。
- 收集一致性信号:比较元数据、请求 ID、延迟分布、固定任务集、流式结构和计费记录。只有多个独立信号一致时,才能增强身份判断。
- 在本地限制动作:把 Shell、安装、网络写入、数据库变更和签名放进确定性白名单与批准门禁。沙箱、依赖哈希和权限隔离分别覆盖不同失败模式。
- 保存脱敏证据:记录时间、端点、路由策略、工具、批准结果、Token、成本和带密钥哈希。只有明确调试需求与保留期限时才存 Prompt 正文。
- 演练撤销与退出:轮换路由密钥、停用提供商、移除成员,并测量停止流量和找全依赖工作负载需要多久。
开源的 API Relay Audit v2.4.0 可以收集本地异常信号。使用前应审查并固定版本,只配置低额度测试密钥与合成流量。它自己的边界同样重要:有限测试报告是证据,不是长期安全证书。
这套阶梯同时说明了每种控制能证明什么。合同核验承诺,路由元数据记录中转方报告的路径,金丝雀揭示部分异常使用,本地门禁阻止已定义的动作,日志帮助确定事故范围。只有生态系统真正部署上游签名后,来源完整性才会增加新的强证据。
常见问题
LLM 中转站会保留 Prompt 吗?
取决于中转平台、具体端点、账户配置和启用功能。OpenRouter 的 Data Collection 文档称,其自身层面的 Prompt 与响应存储为可选;其隐私政策同时说明,请求转交给提供商后还受提供商政策约束。应核验实际端点、插件、日志、可观测性导出和合同,而不是只看平台名称。
零数据保留足以承载生产秘密吗?
ZDR 主要解决保留问题。服务仍要在传输中处理数据,部分元数据可能保留,工具可能采用不同政策,中转层也仍能修改响应。生产秘密还需要最小化、固定端点、最小权限、完整性控制和撤销能力。
HTTPS 能阻止中转站修改工具调用吗?
HTTPS 保护客户端到中转站这一段传输。客户端主动配置的中转站会合法终止 TLS,再向上游建立新连接,因此能够处理应用层内容。端到端工具调用完整性需要普通 TLS 之外的来源证据。
模型指纹能证明模型被替换吗?
模型指纹、自然语言自报、延迟、质量和元数据都属于一致性信号。固定任务集中的多种信号持续矛盾时,应触发调查;后端记录或提供商签名才能支持更强的身份结论。
自建网关能消除供应链风险吗?
自建让团队控制其中一跳。软件包、容器镜像、插件、云基础设施、运维凭证和上游模型仍是依赖。LiteLLM 事件说明,自建同样需要来源固定、密钥隔离、升级审查和快速撤销。
下一步
任选一条生产 LLM 请求,画出从客户端到实际模型端点的完整路径。如果团队无法说清每个处理者、无法固定提供商,或无法把返回结果关联到路由证据,就把该工作负载限制在 1 级以内,直到路由合同补齐。
相关控制还可参考 加密推理块也是不记名凭证 和 模型路由背后的 AI 财务控制面。
参考资料
- Liu 等,Your Agent Is Mine: Measuring Malicious Intermediary Attacks on the LLM Supply Chain
- Zhang 等,Real Money, Fake Models: Deceptive Model Claims in Shadow APIs
- Anthropic,Detecting and countering misuse of AI: September 2026
- Datadog Security Labs,LiteLLM and Telnyx compromised on PyPI
- OpenRouter,Provider Routing、Zero Data Retention、Router Metadata、Data Collection
- Toby Bridges,API Relay Audit v2.4.0