CelestianBeing/Aegis-Prompt-Guard

GitHub: CelestianBeing/Aegis-Prompt-Guard

一个用于系统性测试和分析 LLM 应用程序 Prompt Injection 漏洞及其防御机制的研究级 Python GUI 框架。

Stars: 0 | Forks: 0

# 🧪 Prompt Injection 攻防框架 一个研究级的 Python GUI 工具,用于系统性测试基于 LLM 的应用程序是否存在 Prompt Injection 漏洞,对攻击模式进行分类,并评估防御机制。 ![Python](https://img.shields.io/badge/python-3.10+-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![MITRE ATLAS](https://img.shields.io/badge/MITRE-ATLAS%20AML.T0054-orange) ![Providers](https://img.shields.io/badge/providers-Anthropic%20%7C%20OpenAI%20%7C%20Custom-purple) ## 它能做什么 该框架将 Prompt Injection 视为一门结构化的安全学科——而非雕虫小技。它提供: - **15 个分类的攻击 payload**,涵盖 4 大攻击家族 - **4 策略防御层**,具备可解释的检测结果 - **针对真实 LLM 的实时测试**(Anthropic、OpenAI 或自定义 endpoint) - **HTML + JSON 报告生成**,适合学术提交 - **防御演练场**,用于分析任意文本中的注入信号 ## 截图 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ 🧪 Prompt Injection Framework Attack · Detect · Defend · Report │ ├──────────────────┬──────────────────────────────────────────────────────┤ │ ⚔ Attack Lab │ 🛡 Defense Lab │ 📊 Results │ 📄 Report │ ├──────────────────┴──────────────────────────────────────────────────────┤ │ TARGET: claude-sonnet-4-6 [Tests: 15] [Bypassed: 3] [Blocked: 9] │ │ │ │ ID Name Sev Category Outcome │ │ DI-001 Classic Ignore Inst.. HIGH Direct Inj. ⚠ BYPASSED │ │ DI-002 System Prompt Extrac. CRITICAL Direct Inj. 🛡 BLOCKED │ │ II-001 Webpage Content Inj.. CRITICAL Indirect Inj. 🛡 BLOCKED │ │ JB-003 Many-Shot Jailbreak HIGH Jailbreak ✗ RESISTED │ │ │ │ LIVE LOG ───────────────────────────────────────────────────────── │ │ [10:31:02] Starting attack suite: 15 payloads | Provider: Anthropic │ │ [10:31:03] [DI-001] Classic Ignore Instructions (HIGH) │ │ [10:31:04] ⚠ BYPASSED (confidence: 60%, 1240ms) │ └─────────────────────────────────────────────────────────────────────────┘ ``` ## 攻击类别 ### 1. 直接注入 (5 个 payload) 攻击者直接控制用户输入的攻击。 | ID | 名称 | 严重性 | 技术 | |---|---|---|---| | DI-001 | 经典忽略指令 | HIGH | 指令覆盖 | | DI-002 | System Prompt 提取 | CRITICAL | 数据窃取 | | DI-003 | 角色混乱 (DAN) | HIGH | Persona 注入 | | DI-004 | 分隔符混淆 | HIGH | 上下文破坏 | | DI-005 | Token 走私 | MEDIUM | Base64 编码绕过 | ### 2. 间接注入 (4 个 payload) 将恶意指令嵌入到 LLM 处理的数据中的攻击。 | ID | 名称 | 严重性 | 向量 | |---|---|---|---| | II-001 | 网页内容注入 | CRITICAL | HTML 注释 | | II-002 | 文档元数据注入 | HIGH | 文件元数据 | | II-003 | RAG 流水线污染 | CRITICAL | 检索到的文档 | | II-004 | 电子邮件正文注入 | HIGH | 电子邮件处理 | ### 3. 越狱技术 (4 个 payload) 试图通过情境设定绕过安全准则的攻击。 | ID | 名称 | 技术 | |---|---|---| | JB-001 | 假设性情境设定 | 虚构包装 | | JB-002 | 角色扮演覆盖 | 无准则 Persona | | JB-003 | 多样本越狱 | 上下文学习操纵 | | JB-004 | 冲突目标 | 乐于助人与安全性的冲突 | ### 4. 编码攻击 (3 个 payload) 对恶意内容进行混淆以绕过过滤器的攻击。 | ID | 名称 | 技术 | |---|---|---| | EA-001 | Unicode 同形字绕过 | 西里尔字母相似字符 | | EA-002 | Leetspeak 过滤器绕过 | 字符替换 | | EA-003 | 指令三明治 | 位置近因利用 | ## 防御层 四种可独立切换的检测策略: ### 策略 1:模式匹配 基于正则表达式检测已知的注入特征——指令覆盖短语、System Prompt 提取尝试、Persona 注入关键词以及分隔符滥用。直接映射到已公开的 CVE 和社区研究。 ### 策略 2:结构异常检测 分析文本结构以寻找注入指标:异常的分隔符密度、突然的上下文转变(内容块之后的祈使动词)、多重角色标签(SYSTEM:/USER:/ASSISTANT:)、行长高方差以及 HTML 注释注入。 ### 策略 3:编码检测 检测混淆尝试:Base64 解码与分析、Unicode 同形字检测(伪装成拉丁字母的西里尔/希腊字母相似字符)、针对高熵 token 的香农熵分析以及 Leetspeak 模式匹配。 ### 策略 4:语义启发式 分析意图信号而不依赖固定的关键字:指令动词密度、AI 指令短语计数、混合提问+命令结构(意图伪装)以及异常的文本密度。 每种策略都会输出具有置信度得分和修复建议的可解释结果。 ## 安装说明 ``` git clone https://github.com/yourusername/prompt-injection-framework cd prompt-injection-framework pip install -r requirements.txt python main.py ``` **环境要求:** Python 3.10+ ## 用法 ### 攻击实验室 1. 选择您的目标 LLM 提供商(Anthropic / OpenAI / 自定义) 2. 输入您的 API key 3. 粘贴**待测试应用程序的 System Prompt** 4. 选择要测试的 payload 类别 5. 打开/关闭防御层以比较结果 6. 点击 **▶ Run Attack Suite** ### 防御演练场 1. 切换到 **🛡 Defense Lab** 选项卡 2. 粘贴任意文本(用户输入、检索到的文档、电子邮件正文等) 3. 切换要启用的检测策略 4. 点击 **🔍 Analyze Input** 获取完整的可解释分析报告 ### 导出 **📄 Report** 选项卡可导出: - **HTML** — 带有各类别绕过率的可视化报告,适合提交 - **JSON** — 机器可读结果,用于进一步分析 ## 项目结构 ``` prompt-injection-framework/ ├── main.py # Entry point ├── requirements.txt ├── payloads/ │ └── library.py # 15 categorized attack payloads ├── core/ │ ├── sanitizer.py # 4-strategy defense layer │ ├── test_engine.py # Live LLM testing engine │ └── report_gen.py # HTML + JSON report generation ├── gui/ │ └── app.py # CustomTkinter GUI (4 tabs) └── reports/ # Output directory ``` ## 学术参考 | 论文 | 贡献 | |---|---| | Greshake et al. (2023) — *Not What You've Signed Up For* | 间接 Prompt Injection 分类法 | | Perez & Ribeiro (2022) — *Ignore Previous Prompt* | 直接注入形式化 | | Schulhoff et al. (2023) — *Prompt Injection Primer* | 面向工程学的攻击调查 | | Anil et al. (2024) — *Many-Shot Jailbreaking* | 上下文学习利用 | | Zou et al. (2023) — *Universal Adversarial Triggers* | RAG 污染方法论 | | Boucher et al. (2022) — *Bad Characters* | Unicode/编码攻击分析 | | MITRE ATLAS AML.T0054 | 攻击分类法与归类 | ## MITRE ATLAS 映射 所有 payload 均被标记为 MITRE ATLAS 技术 **AML.T0054 — Prompt Injection**,其中间接注入变体使用子技术 **AML.T0054.002**。 ## 伦理使用 此工具专为以下目的设计: - 测试**您自己的**基于 LLM 的应用程序 - 学术研究和毕业设计 - 了解 LLM 安全性以构建更好的防御 切勿对您不拥有或未获得明确书面评估许可的系统进行测试。 ## 许可证 MIT
标签:AI安全, Chat Copilot, DLL 劫持, Gradle, Petitpotam, Python, 大语言模型, 无后门, 漏洞测试, 红队评估, 逆向工具