han0g-ng/prompt-injection

GitHub: han0g-ng/prompt-injection

一个演示提示注入攻击与防御的毕业设计项目,结合脆弱与安全 LLM 聊天机器人对比评估。

Stars: 0 | Forks: 0

# 提示注入防御演示(大学毕业论文) 本项目演示以下内容: - 一个可被提示注入攻击的脆弱 LLM 聊天机器人。 - 使用 PyRIT 进行自动红队评估。 - 对小型语言模型(SLM)防护模型(Llama Prompt Guard 86M)进行微调。 - 使用中间件在提示到达核心 LLM 之前阻断注入的安全聊天机器人。 - 一个现代化的 Web UI,直观展示攻击与防御的对比。 ## 项目结构 ``` project_root/ ├── data/ ├── models/ ├── src/ │ ├── api/ │ │ ├── vulnerable_app.py │ │ └── secure_app.py │ ├── frontend/ │ │ ├── index.html │ │ ├── style.css │ │ └── script.js │ └── training/ │ └── train_guard.py ├── eval/ │ ├── attack_vulnerable.py │ └── attack_secure.py ├── requirements.txt └── README.md ``` ## 1. 本地环境设置 1. 创建并激活虚拟环境: ``` python -m venv .venv .\.venv\Scripts\Activate.ps1 ``` 2. 安装依赖: ``` pip install -r requirements.txt ``` 3. 为脆弱应用设置 OpenAI API 密钥: ``` $env:OPENAI_API_KEY="your_openai_api_key" ``` 4. 运行预检(推荐): ``` python src\api\preflight_check.py ``` ## 2. 里程碑 1:脆弱应用 + Web UI 运行脆弱后端: ``` python src\api\vulnerable_app.py ``` 可选模型覆盖: ``` $env:OPENAI_MODEL="gpt-4o-mini" ``` 打开用户界面: - http://localhost:8000 API 端点: - POST http://localhost:8000/api/chat - 请求体:`{ "message": "..." }` ## 3. 里程碑 2:基线 PyRIT 评估 在新的终端中运行(脆弱应用保持运行): ``` python eval\attack_vulnerable.py ``` 预期结果: - 脚本打印基线攻击成功率(ASR)。 - PyRIT 内存 SQLite 数据库存储在 `data/pyrit_memory.db`。 ## 4. 里程碑 3:训练提示防护模型 ``` python src\training\train_guard.py ``` 预期模型输出: - `models/finetuned-prompt-guard` ## 5. 里程碑 4:安全应用 + 最终评估 运行安全后端: ``` python src\api\secure_app.py ``` 打开安全用户界面: - http://localhost:8001 运行最终攻击脚本: ``` python eval\attack_secure.py ``` 预期结果: - 最终 ASR 降至接近 0%。 - 注入提示应被拦截并返回 HTTP 400。 ## 论文演示注意事项 - 保留服务器和评估日志,以展示安全防护前后的影响对比。 - 在 UI 上现场演示一个正常提示与一个注入提示。 - 在论文章节中报告两个脚本的 ASR 数值。
标签:API安全, DNS解析, JSON输出, Llama模型, Prompt Guard, PyRIT, SEO: PyRIT评估, SEO: 大模型安全, SEO: 提示注入防御, TCP SYN 扫描, Web UI, 中间件安全, 前后端分离, 前端可视化, 多智能体系统, 大学论文, 大语言模型安全, 小语言模型, 开源项目, 提示注入防御, 提示词防护, 攻击与防御对比, 数据目录, 机密管理, 模型存储, 模型微调, 源代码安全, 漏洞演示, 红队评估, 自动评估, 虚拟环境, 训练脚本, 逆向工具