一种系统级提示注入防护方法:在LLM代理中分离指令通道与数据通道 [P]
摘要
本文提出Sentinel Gateway中间件层,通过强制分离可信指令通道与不可信数据通道来缓解LLM代理中的提示注入攻击,使用签名运行时授权令牌,并提供审计日志记录功能。
提示注入已成为使用工具的LLM系统中最持久的故障模式之一,尤其是在模型与外部数据源交互的代理工作流中。大多数缓解策略侧重于输入过滤或模型对齐,但由于核心问题是结构性的,这些方法难以奏效。我探索了一种系统级缓解策略,通过引入中间件层(Sentinel Gateway)强制执行以下通道的严格分离:
- 指令通道:可信的运行时发出的命令
- 数据通道:不可信的外部输入(网页、文件、API)
该系统并非试图对恶意输入进行分类,而是确保:
- 所有代理操作都需要一个签名且限定范围的运行时授权令牌,从而有效将观察与执行解耦。
**实现**
- FastAPI中间件层用于代理工具调用
- 基于令牌的授权用于执行请求
- Streamlit界面用于检查与调试
- 代理决策及工具使用的审计日志
- 支持多代理集成模式(例如基于Claude的会话)
- 本地或Postgres支持的持久层
- 仓库 https://github.com/cmtopbas/Sentinel-Gateway
**讨论问题**
我感兴趣的反馈:
- 指令/数据分离是否是代理安全故障模式中的有意义的抽象
- 基于令牌的执行门控与其它代理安全或沙箱方法在概念上的比较
相似文章
提示注入仍在破坏代理系统——我构建了一个在运行时强制指令/数据分离的网关
一个在运行时强制指令/数据分离以保护代理系统免受提示注入攻击的网关
## Prompt injection stopped being a content problem — and most agent stacks haven't caught up 提示注入早已不再是一个“内容层面”的问题——但大多数 Agent 技术栈仍未跟上这一变化。
文章认为,在智能体(agent)技术栈中,提示注入(prompt injection)已经从一个内容过滤问题,演变为一个来源(provenance)/授权问题:不可信的读取输出可能悄无声息地驱动特权写入工具的参数,也就是所谓的「混淆代理」(confused deputy)问题;因此防御手段必须将授权与用户的原始意图绑定——通过信任标签、签名的意图摘要(signed intent digests)、只读子智能体以及范围受限的授权,而非依赖逐个工具的白名单。
控制-数据流分离:多智能体LLMs中的稳定提示优化
本文提出一种控制-数据流分离框架,通过将执行协议与语言内容解耦来稳定多智能体LLM系统中的提示优化,实现了100%的协议有效性,同时提升任务性能。
我构建了一个网关,使得在智能体工作流中提示注入在结构上不可能(设计方法,而非模型修复)
一位开发者创建了一个网关,从架构上防止智能体工作流中的提示注入,重点关注架构而非模型级别的修复。
Show HN: ReasonGate — 一种可解释的防护门,用于阻止LLM提示注入
ReasonGate是一种针对LLM应用的可解释安全门,能够阻止提示注入攻击,并为每个决策提供可审计的原因。