JahnaviB4/secure-ai-systems-prompt-injection
GitHub: JahnaviB4/secure-ai-systems-prompt-injection
该项目是一套用于评估和缓解大型语言模型应用中 Prompt Injection 攻击的实验性防御框架,通过基准与受保护模式的对比来量化安全防护效果。
Stars: 0 | Forks: 0
# 安全 AI 系统:Prompt Injection 检测与防御
## 概述
本代码库包含以下研究的实现、数据集、实验日志和部分评估结果:
**安全 AI 系统:检测与缓解大型语言模型应用中的 Prompt Injection 攻击**
该项目评估了针对大型语言模型应用的 prompt injection 攻击,并研究受保护的响应策略是否能在保持模型正常效用的同时识别恶意指令。
本研究同时关注安全性和效用。防御措施应在不误拦截过多无害 prompt 的前提下降低攻击成功率。
## 研究目标
本项目的主要目标是:
- 评估 LLM 应用如何响应不同的 prompt injection 攻击
- 衡量应用防护措施前后的攻击成功率
- 检测恶意或可疑指令
- 比较基准模式与受保护响应模式的行为
- 衡量在无害 prompt 上的误报率
- 评估安全性、延迟和模型效用之间的权衡
- 提供可复现的实验日志和汇总表
## Prompt 分类
评估数据集结合了公开的 benchmark prompt 和自定义示例。
测试的 prompt 类别包括:
- 直接 prompt injection
- 间接 prompt injection
- System-prompt 提取
- 指令覆盖尝试
- 越狱风格的 prompt
- 数据泄露尝试
- 角色操纵 prompt
- 无害用户请求
包含无害 prompt 使得评估防御措施是否会发生误拦正常请求成为可能。
## 实验方法
### 基准模式
在基准模式下,prompt 被发送给语言模型时,不经过完整的受保护检测和响应 pipeline。
这为衡量攻击成功率和正常响应行为提供了一个基准参考点。
### 受保护模式
在受保护模式下,系统会在生成响应之前,检查 prompt 是否包含可疑模式和指令操纵尝试。
受保护 pipeline 旨在:
- 识别可能的 prompt injection 攻击
- 防止不安全的指令覆盖
- 保护系统级指令
- 拒绝或安全地重定向恶意请求
- 保持无害 prompt 的正常行为
## 模型与提供商
实验使用了以下配置:
- 提供商:Groq API
- 模型:`llama-3.1-8b-instant`
- 编程语言:Python
- 评估类型:Prompt 级别实验分析
模型的可用性和命名可能会随时间变化。在复现实验时,如有必要,请更新配置的模型名称。
## 评估指标
本项目使用以下指标评估防御效果:
- 攻击成功率
- 受保护模式检测率
- 误报率
- 真阳性率
- 假阴性率
- 安全性得分
- 无害 prompt 效用
- 响应延迟
- 数据集级别表现
- Prompt 级别结果
## 部分发现
实验表明,与基准方法相比,受保护的 prompt 处理显著提高了 prompt injection 检测能力。
最终实验的部分结果包括:
- 基准攻击成功率:12.2%
- 受保护检测率:83.2%
- 误报率:12%
- 无害 prompt 效用:90%
- 安全性得分:0.91
- 优化后,受保护响应延迟从约 33.30 秒缩短至 14.34 秒
这些结果表明,prompt injection 防御必须平衡多个目标。更强的防护可以降低攻击成功率,但过于严格的检测可能会误拦无害的 prompt 或降低应用的效用。
## 项目结构
```
secure-ai-systems-prompt-injection/
├── README.md
├── requirements.txt
├── .gitignore
├── llm_prompt_injection_experiment_groq.py
└── prompt_injection_groq_outputs/
├── datasets/
│ └── hybrid_prompt_injection_720_real_public_plus_custom.csv
├── logs/
│ └── per_prompt_experiment_logs.csv
├── tables/
│ ├── confusion_matrix_guarded_detection.csv
│ ├── table_10_1_attack_success.csv
│ ├── table_10_4_dataset_level.csv
│ └── table_10_5_overall_average.csv
├── reproducibility_report.json
└── reproducibility_report.md
```
## 文件说明
### llm_prompt_injection_experiment_groq.py
包含主要的实验 pipeline。
该脚本处理以下任务:
- 加载 prompt injection 数据集
- 将 prompt 发送到配置的 LLM
- 运行基准和受保护实验
- 检测可疑的 prompt 模式
- 记录 prompt 级别的响应
- 衡量攻击和防御结果
- 计算评估指标
- 生成可复现性报告和结果表
### requirements.txt
包含运行该项目所需的 Python 包。
### prompt_injection_groq_outputs/datasets/
包含用于实验的 prompt 数据集。
该数据集结合了公开的 prompt injection 示例与代表多种攻击类别及无害请求的自定义 prompt。
### prompt_injection_groq_outputs/logs/
包含 prompt 级别的实验结果。
`per_prompt_experiment_logs.csv` 文件提供了关于单个 prompt、模型响应、检测结果和评估标签的详细信息。
### prompt_injection_groq_outputs/tables/
包含用于评估实验的最终汇总表。
#### confusion_matrix_guarded_detection.csv
包含受保护的 prompt injection 检测的混淆矩阵值。
#### table_10_1_attack_success.csv
汇总了所有评估实验模式下的攻击成功率。
#### table_10_4_dataset_level.csv
提供按数据集或 prompt 类别分组的性能结果。
#### table_10_5_overall_average.csv
包含所有评估条件下的整体平均结果。
### reproducibility_report.json
提供关于实验配置和选定结果的机器可读记录。
### reproducibility_report.md
提供关于实验设置和结果的可读性摘要。
## 安装说明
克隆代码库:
```
git clone https://github.com/JahnaviB4/secure-ai-systems-prompt-injection.git
cd secure-ai-systems-prompt-injection
```
创建虚拟环境:
```
python -m venv .venv
```
在 Windows 上激活环境:
```
.venv\Scripts\activate
```
在 macOS 或 Linux 上激活环境:
```
source .venv/bin/activate
```
安装所需的包:
```
pip install -r requirements.txt
```
## API 配置
该实验使用 Groq API。
在运行项目之前,请将 API key 设置为环境变量。
### Windows 命令提示符
```
set GROQ_API_KEY=your_api_key_here
```
### Windows PowerShell
```
$env:GROQ_API_KEY="your_api_key_here"
```
### macOS 或 Linux
```
export GROQ_API_KEY=your_api_key_here
```
请勿将真实的 API key 直接放在 Python 源代码中,也不要将其提交到 GitHub。
## 运行实验
使用以下命令运行主实验:
```
python llm_prompt_injection_experiment_groq.py
```
该脚本将处理配置好的 prompt 数据集并生成实验输出。
根据脚本的配置,生成的结果可能会被写入:
```
prompt_injection_groq_outputs/
```
## 输出文件
该代码库包含了检查和复现所报告结果所需的部分输出。
包含的文件提供:
- Prompt 级别的实验日志
- 攻击成功率汇总
- 数据集级别结果
- 受保护检测的混淆矩阵
- 整体平均指标
- 可复现性信息
公共代码库中不包含图表和不必要的临时文件。
## 可复现性说明
实验结果可能会因以下因素而有所不同:
- 模型更新
- API 提供商变更
- Prompt 格式化
- 模型随机性
- 速率限制
- 网络延迟
- 检测阈值变化
- 数据集修改
为了更一致地复现,请保持以下设置固定不变:
- 模型名称
- Prompt 数据集
- 受保护检测规则
- 相似度或风险阈值
- 生成参数
- 评估标签定义
## 安全与隐私
本代码库不包含任何 API key 或私人凭据。
在运行或修改项目之前:
- 仅将 API key 存储在环境变量中
- 切勿提交 `.env` 文件
- 在发布实验日志之前进行审查
- 避免包含私密的 system prompt
- 避免包含机密的用户信息
- 未经授权,请勿使用该项目攻击系统
这项工作旨在用于防御性研究、受控评估以及更安全的 LLM 应用的开发。
## 局限性
- Prompt injection 攻击在不断演变
- 基于模式的防护可能无法检测到所有攻击
- 某些无害的 prompt 可能类似于恶意指令
- 自动化的评估标签可能包含错误
- 结果基于有限的模型和数据集选择
- 该研究不能代表所有的生产级 LLM 架构
- 提供商更新后,模型行为可能会发生变化
- 实验侧重于受控的 prompt 级别评估,而非完整的企业级部署
## 未来工作
可能的扩展方向包括:
- 使用额外的语言模型进行评估
- 多语言 prompt injection 检测
- 通过检索到的文档进行的间接 injection
- 工具使用和 agentic workflow 攻击
- 上下文感知的风险评分
- 语义攻击检测
- 自适应响应防护
- 降低误报率
- 对边界 prompt 的人工评估
- 针对更新越狱 benchmark 进行评估
- 检索增强生成系统的 prompt injection 防御
- 对 Model Context Protocol 和外部工具集成的保护
## 相关手稿
本代码库支持以下手稿:
**安全 AI 系统:检测与缓解大型语言模型应用中的 Prompt Injection 攻击**
该手稿目前正在 SSRN 审查中。公开发布后,将添加公共的 SSRN 链接。
## 引用
正式的引用将在手稿公开发布后添加。
目前,该项目可按以下方式引用:
```
Bellapukonda, Jahnavi. Secure AI Systems: Detecting and Mitigating Prompt Injection Attacks in Large Language Model Applications. Manuscript under review at SSRN, 2026.
```
## 作者
**Jahnavi Bellapukonda**
- GitHub: https://github.com/JahnaviB4
- Email: jahnavibellapukonda60@gmail.com
## 免责声明
本项目仅供研究和教育目的。它旨在支持 LLM 安全性的评估和改进。用户需对遵守适用的法律、平台政策和道德研究规范负责。
标签:DLL 劫持, Sysdig, 人工智能, 大语言模型, 用户模式Hook绕过, 红队评估, 逆向工具