canary 标记是什么
canary(金丝雀标记)是一种泄露检测手段:在系统提示或内部数据里放一个唯一随机串,然后在出口侧监控它。这个串本来不该出现在任何对外内容里,一旦它在模型输出、外发请求参数或日志里出现,就说明发生了泄露或外发,可以立即告警并阻断。它把「怀疑可能泄露」变成可观测的确定性信号,属于检测能力而不是预防能力。
基本信息
| 适用平台 | 自建或托管 LLM 应用,需能拦截输出与出站请求 |
|---|---|
| 标记设计 | 唯一随机串,不与环境中真实内容冲突,长度足够避免误命中 |
| 监控点 | 模型输出、外发请求参数、前端渲染链接、日志 |
| 轮换策略 | 定期更换标记,避免长期使用后被缓存或进入训练样本 |
典型使用场景
- 系统提示泄露检测:验证「复述你的提示」类诱导是否成功
- 数据外发检测:确认上下文数据是否被拼进外发请求
- 防护回归:调整提示或工具链后,确认没有新增泄露路径
- 多环境隔离:不同环境使用不同标记,便于判断泄露来源
- 应急响应:命中后立即定位会话并阻断其出站通道
canary 设计要点
canary 设计要点
# 1) 生成高熵随机串,形如项目前缀 + 随机段,避免与业务文本碰撞
# 2) 在系统提示与内部数据中放置,并注明用途(仅供内部检测)
# 3) 出口监控:输出文本、外发 URL 与请求体、前端渲染的链接与图片地址
# 4) 命中即告警:记录会话 ID、时间、命中位置,并阻断该会话外发
# 5) 轮换:按周期更换并保留历史标记清单,继续监控旧标记是否出现
# 6) 复核误报:日志与调试信息可能带上标记,需排除内部通路监控位置与含义
| 监控位置 | 命中含义 | 处置动作 |
|---|---|---|
| 模型输出文本 | 提示内容被诱导复述 | 阻断该会话,复核提示中是否含敏感信息 |
| 外发请求参数 | 上下文数据被拼进外发请求 | 阻断出站,检查注入来源 |
| 渲染链接与图片 | 前端加载远程资源时外带标记 | 下线该类渲染,走白名单校验 |
| 内部日志 | 通常是误报 | 确认通路后加入白名单排除 |
标记被模型复述出来本身就是设计预期内的行为:重点不是阻止复述,而是通过出口监控确认发生了什么、影响范围多大。
canary 只是检测标记,不能当凭据使用。把真实密钥或口令写进系统提示再用 canary 做监控,等于用检测手段替代了信息隔离,泄露时直接造成损失。