EdwardAThomson/Scramble-Gate

GitHub: EdwardAThomson/Scramble-Gate

ScrambleGate 是一种用于防御LLM应用提示注入攻击的实验性技术。

Stars: 2 | Forks: 2

# ScrambleGate **ScrambleGate** 是一种用于防御 LLM 应用中 **提示注入攻击** 的实验性技术。 ⚠️ **实验性:请勿在生产环境中使用。此技术不可行。** ⚠️ ## 概述 目标是创建一个作为 **随机预执行门** 的工具:在将提示发送到主模型之前,ScrambleGate 会随机采样并打乱输入的部分,然后将它们发送到 LLM 进行安全分类。 如果检测到任何打乱视图中的恶意意图,则阻止执行。然而,当输入被打乱时,性能会变差。 这里还尝试了一个额外的想法,即输入的(随机)掩码,它比打乱效果更好,但引入了误报(LLM 变得更加可疑)。 ## 🎯 动机 提示注入是 LLM 系统日益增长的攻击向量。 大多数防御措施依赖于静态过滤器或基于规则的扫描,攻击者可以适应这些扫描。 ScrambleGate 将 **随机化** 引入检测管道,灵感来自计算机安全中的 **ASLR(地址空间布局随机化)**: - 正如 ASLR 随机化内存布局以使漏洞不可靠, - ScrambleGate 随机化提示视图(打乱+采样),因此攻击者无法预测门将检查的内容。 ## 🔑 核心思想 1. **标准化与去混淆** - Unicode 清理,零宽度删除,同形符标准化。 - 对加密有效载荷进行 Base64/hex/URL 解码。 2. **带覆盖的窗口采样** - 将输入分割成重叠的窗口。 - 跟踪覆盖范围(n-gram 颗粒)以确保广泛的检查。 3. **随机打乱** - 通过掩码标记、轻量级句子打乱或保持清洁生成每个窗口的多个“视图”。 - 在所有视图中运行检测器。 4. **多检测器评分** - 正则表达式/规则启发式方法(例如,“忽略之前的指令”,“显示系统提示”)。 - 结构异常检查(编码块,可疑重复)。 - (可插拔)ML 分类器或 LLM 探针用于语义意图。 5. **随机阻塞** - 任何高风险分数都会阻止提示。 - 覆盖率低于阈值 → 升级以进行审查。 ## 📁 项目结构 ### 核心脚本 - **`scramblegate.py`** - ScrambleGate 防御实现的主脚本 - 核心函数 `gate_prompt()`,具有窗口、打乱和检测 - 基线 LLM 检测以进行比较 (`baseline_llm_check()`) - 可配置的策略和检测阈值 - **`scramblegate_runner.py`** - Agent Dojo 集成和基准测试 - 测试 ScrambleGate 对真实提示注入攻击的防御 - 与 Agent Dojo 测试套件(银行、Slack、旅行、工作空间)集成 - 生成包含基线比较的详细 markdown 报告 - 保存包括打乱视图在内的详细审计跟踪 - **`test_scramblegate.py`** - 核心功能的单元测试 - 测试门逻辑、打乱函数和检测机制 ### 依赖项 - **`requirements.txt`** - Python 包依赖项 - **`.env`** - 环境变量(使用您的 `OPENAI_API_KEY` 创建) ## ⚙️ 快速开始 1. 设置您的环境: ``` export OPENAI_API_KEY="your-api-key-here" ``` 2. 使用不同的打乱模式运行测试: ``` # 使用概率性打乱(推荐) python scramblegate_runner.py probabilistic # 仅使用掩码测试 python scramblegate_runner.py masking_only # 仅使用纯打乱测试 python scramblegate_runner.py pure_scrambling # 仅使用干净副本测试 python scramblegate_runner.py clean_only # 使用确定性掩码+打乱测试 python scramblegate_runner.py deterministic_masking ``` 这将测试 ScrambleGate 对 Agent Dojo 提示注入基准的防御,并生成详细报告。 ## 🎯 打乱模式性能 基于 Agent Dojo 基准测试(27 个注入任务): | 模式 | 检测率 | 关键见解 | |------|----------------|-------------| | **broken_probabilistic** | **59.3%** | **偶然的掩码偏差(最高性能)** | | probabilistic | 51.9% | 清洁、掩码、打乱视图的平衡混合 | | clean_only | 48.1% | 多次分析相同副本 | | masking_only | 33.3% | `
标签:ASLR, LLM 安全, n-gram, Unicode 清理, URL发现, 内存布局随机化, 同形异义字符处理, 安全检测, 安全防御策略, 实验性技术, 密钥泄露防护, 异常检测, 文本处理, 机器学习安全, 注入攻击防御, 生产不推荐, 窗口采样, 编码解码, 规则匹配, 输入混淆, 逆向工具, 随机化技术, 零宽度字符处理