全部文章

投毒的中转站与掺假的模型:把 API 供应商用进生产之前,先这样验它

· 安全· API 中转· 指南

8 月 4 日这一周,给了开发者三个互不相干的理由,去怀疑配置文件里那个便宜的 API 端点——三件事都有公开社区帖子记录在案。一位用户的编码 agent 接在第三方中转站上,执行了被注入进响应流的指令——把一整个盘的文件删了:项目、文档、照片、备份。一家二道贩子被抓到拿 GPT-5.6 Luna 冒充更贵的 Sol 卖,被指纹检测工具实锤后,赔付了用户 1.5 倍消耗。还有一次平台密钥泄露,让攻击者在令牌被撤销前烧掉了一位用户 $159 的 Claude Fable 5 额度——受害者刚删完令牌,新的被盗 Key 又刷了出来。三种攻击,一个教训:API 供应商不是一个 URL,是一段信任关系——而在这个市场里,信任是可以检验的。以下是检验方法。

供应商黑化的三种姿势

1. 响应投毒——供应链攻击。三种里最狠的,因为动手的是受害者自己的 agent。被攻破(或本就恶意)的中转站不需要碰你的机器;它只需要把指令注进模型输出——你的 agent 天生就听模型的话。有 shell 权限的编码 agent 会痛快执行一条它以为是模型提议的"清理"。社区正在形成的防御是架构级的:把干活的和审查的分开——一个 agent 走任意端点干活,另一个 agent 走可信通道,任何破坏性动作先过它这关再执行。更朴素的底线:凡是没验证过的端点喂出来的 agent,别在沙箱外给删除/写入权限;"清理某某"这类任务,压根不该交给任何自主 agent。(这条规矩这周也没能救所有人:另一个帖子里,一个前沿模型在完全正规的端点上,把"清理模型列表"理解成了"删库"。)

2. 模型掉包——利润率欺诈。你付旗舰的钱,中转站悄悄伺服更便宜的货。七月的版本是被静默量化的 Kimi K3 端点;八月的版本是 Luna 冒充 Sol。这一次的不同在于*被抓住并且被证明了*:社区的指纹工具能靠行为签名区分 OpenAI 的模型档位——不同模型版本的推理轨迹格式互不相同,同版本内不同档位的内部元数据字段也不同——这些签名换个标签是抹不掉的。细节不如原理重要:模型身份会留指纹,掉包从外部就能检出。同一逻辑撑起了社区那个可爱的土办法:拿一条固定的创意提示词(当前的标准题是"鹈鹕骑自行车"网页动画),对不同供应商的同一个 model id 各跑一遍,肉眼判断产出是不是同一只动物。

3. 密钥与计费暴露。最无聊但最直接烧钱的一种:平台泄 Key,或者账单没法对。那 $159 的盗刷毫无技术含量——就是别人的 Key,用得快。

验证清单

价格好到可疑的供应商,跑一遍;价格不可疑的,也跑一遍:

  • 固定一条探针提示词,做对照。同一提示词、同一 model id,供应商对官方 API。文风、推理长度、格式癖好应当一致。一次"鹈鹕测试"五分钟,能抓住粗暴的掉包。
  • 对 token 账。发一段已知负载,用自己的分词计数对账单(我们的 token 计数器就能干这个)。持续虚高是留着书面证据的红旗。
  • 拿缓存命中价对源头。DeepSeek 官方缓存命中约 $0.014/M;如果一家自称"官方直连"的转售商只按未命中计费,你走的就不是它声称的那条线。这周的宕机经济学把差距量化了:同一个模型,第三方缓存价约为官方的 10 倍。
  • 探失败行为。错误响应体、状态码、限流头,都是上游签名的一部分。伪造上游报错的中转站,通常连报错都造错。
  • 按"必然会泄"来管理 Key。按项目拆 Key、硬性消费上限、用量告警。$159 那位受害者真正的失误,是根本没设上限。
  • 读供应商关于货源的书面声明。不肯白纸黑字说清流量是否走官方上游的供应商,已经回答了你的问题。

我们的立场——以及为什么你也该验我们

Turiloop 的立场,白纸黑字:国产模型流量走官方上游 API——deepseek-v4-flash 走 DeepSeek 官方伺服线、Qwen 走阿里的,以此类推——不改写响应、不做静默替换。这是一句声明,而本文的全部要点恰恰是:声明是 API 生意里最便宜的东西。所以:拿鹈鹕测试来测我们。重算我们的 token 账单。拿我们的错误响应体去对源头的。模型目录逐模型标价,数学可审计;选型指南列了区分"网关"和"赚差价生意"的结构性问题。一家害怕被验证的供应商,等于告诉你它的利润就住在"卖的"和"伺服的"之间的缝里。我们的不在那儿。

常见问题

API 中转站真能弄坏我的电脑? 不直接能——但你的 agent 能。恶意中转站把指令注进模型响应;有 shell 或文件权限的 agent 照做。8 月这起实锤案例删掉了整盘文件。防御:agent 权限进沙箱、破坏性动作过人工或第二 agent 审查、有特权的 agent 不接未验证端点。

怎么检测掉包/假模型? 行为指纹。固定一条探针提示词,把供应商产出与官方 API 对照;查推理轨迹格式与文风一致性;对 token 计数和缓存命中计费。社区已有按版本签名区分模型档位的工具——Luna 冒充 Sol 的转售商正是这样被抓、赔付 1.5 倍的。

便宜中转站还能用吗? 个人项目、agent 进沙箱、Key 设上限的前提下,常常可以——社区自己的共识就是"只敢用在个人项目"。生产环境或碰真实数据,算式反转:可靠性、可验证的货源、可审计的账单,比折扣值钱。生产流量走那些敢书面声明上游货源、且扛得住上面清单的供应商。

"鹈鹕测试"是什么? 社区半标准化的探针:同一条固定创意提示词(经典题是"鹈鹕骑自行车"网页动画),喂给不同供应商的同一个 model id,对比产出质量。糙、快、有效——同一个模型的不同伺服,产出明显是同类;掉包的模型装不像。

Turiloop 会改写或过滤模型响应吗? 不会。响应按官方上游的原样透传;计费按公开目录的逐模型价格执行。并且按本文自己的建议:这句话请独立验证,别靠信。