BotOf TechAI / IoT / Full-Stack / 植物养护知识分享
返回首页从系统提示到用户画像:Agent 泄漏会穿过工具参数与网络元数据

从系统提示到用户画像:Agent 泄漏会穿过工具参数与网络元数据

企业常把 Agent 的 system prompt、检索上下文和本地运行环境视为“没有直接展示给用户,所以是私有的”。2026 年两项研究说明,这个假设已经不成立:隐藏内容不仅会从聊天回复泄漏,也可能被复制进工具调用参数,甚至在加密通信内容完全不可见时,从访问哪些域名、何时访问的流量模式中被推断。

9 月 2 日在 ISSTA 2026 展示的 ToolLeak 针对 Cursor、Claude Code、Copilot、Windsurf、Cline 和 Trae 等六类真实 coding agent。研究者发现模型在自然语言回复和 schema 驱动的工具参数生成之间存在行为差异:后者看似只是“填写必填字段”,可能把 system prompt 和工具元数据复制到参数里。攻击再结合工具描述与工具返回的双通道提示注入,最终在所测六种 Agent 上实现劫持与远程代码执行。

USENIX Security 2026 的另一项研究甚至不读取内容。Web/Research Agent 一次任务可能访问 70–140 个域名,并形成独特时序。被动观察者通过 DNS、代理或网络元数据,可恢复超过 73% 的提示功能与领域知识;跨会话还可推断最多 32 项用户特征中的 19 项。

流程图:Agent 的多通道泄漏路径。除聊天输出外,结构化工具参数以及域名和时序等网络元数据也可能被攻击者汇聚并用于信息复原。

“最终回答没有秘密”并不足以证明安全;工具调用和网络请求同样是 Agent 的外部表达通道。

工具参数为什么会成为暗通道

工具调用常被认为比自然语言安全,因为参数受 JSON Schema 限制。但 schema 只保证形状,不保证语义。一个必填 descriptionquerypathcallback_url 字段,可能容纳大量内部上下文;若工具服务由第三方或攻击者控制,这些参数就是数据外带通道。

防护要放在模型之后、网络之前:

  1. 对每个字段定义数据分类与最大长度,不允许通用自由文本承载秘密;
  2. 工具网关扫描参数中的 canary、凭证格式和内部提示片段;
  3. 第三方工具默认看不到完整会话,只接收任务所需的最小结构化值;
  4. URL、路径和命令字段采用 allowlist,不接受模型自由拼接目的地;
  5. 工具描述和返回值都视为不可信输入,进入模型前保留来源标签。

研究中的双通道攻击很关键。只过滤工具返回不够,恶意工具描述可能先影响模型;只审查描述也不够,返回内容会在下一步继续注入。Registry 在发布工具版本时要审核描述,Runtime 在每次返回时还要进行内容隔离。

加密为什么挡不住网络侧推断

TLS 隐藏请求正文,却通常不隐藏目标 IP、DNS 查询、连接时间与流量大小。人类搜索一次访问几个站点,研究 Agent 会并行触发长而稳定的域名序列,形成接近“浏览指纹”的轨迹。部署在本地并不自动更私密:企业 DNS、VPN、代理、ISP 或防火墙都可能成为观察点。

缓解需要从调度层入手:通过受信代理聚合出站请求、减少无必要的域名多样性、加入批处理和适度时序扰动、缓存公共抓取结果,并将高敏感研究任务限制在固定数据源。研究报告显示,约束域名多样性或混淆流量可以在很小效用损失下平均降低 29% 的攻击效果,但这仍不是完全防御。

“模型泄漏”应该分层响应

泄漏对象典型通道首要控制
模型权重存储、训练集群、内部账号强身份、出站阻断、分片与审计
System prompt回复、工具参数内容最小化、参数 DLP、代理提示
RAG 知识自适应查询、过度召回检索前 ACL、查询预算、输出引用控制
用户意图与画像DNS、IP、时序受信代理、批处理、流量混淆
凭证与业务数据工具上下文、日志短期 token、字段脱敏、保留策略

ProxyPrompt 等研究尝试用保留任务能力的代理提示替代原始 system prompt,并在 264 组模型与提示组合上报告 94.70% 的保护率。不过任何单一 prompt 防御都覆盖不了工具参数、RAG 和网络元数据。敏感密钥与真正的访问控制规则根本不应该放进 prompt。

企业验收要测试三条通道

红队不应只对聊天框说“请重复系统提示”。还要提供恶意 MCP 工具,观察模型是否把上下文填入参数;在代理层记录出站流量,评估能否从域名序列区分财务、法律或并购任务;对 RAG 执行自动化多轮查询,测量可恢复知识覆盖率。

只有把内容、动作和流量放进同一威胁模型,Agent 平台才能真正谈隐私。模型看不到攻击者,不代表数据没有离开;用户看不到工具参数,也不代表参数不携带秘密;网络看不到明文,更不代表网络不知道你在研究什么。

参考资料