werywjw/Prompt-Injection
GitHub: werywjw/Prompt-Injection
该项目研究并评估大语言模型对提示注入攻击的脆弱性,提出了考虑不确定性的攻击成功概率(ASP)评估指标,并提供了多种攻击方法的自动化评测脚本。
Stars: 0 | Forks: 2
# 从 ASR 到 ASP
## 摘要
最近的研究表明,大型语言模型(LLMs)容易受到生成有害或敏感输出的攻击。随着开源 LLMs 越来越多地被应用于金融、法律和医疗保健等高影响力领域,系统性地调查其安全风险对于迈向值得信赖的 LLM 时代变得日益重要。本文在五个攻击基准上,全面研究了对 14 个广泛使用的开源和三个闭源 LLMs 的有效 prompt injection 攻击。此外,现有的评估指标大多只考虑攻击成功率,而忽略了模型响应中的不确定性。我们提出的攻击成功概率(Attack Success Probability, ASP)还捕获了评估中的不确定行为,即模型最初可能拒绝有害请求,但随后提供有害指导,反之亦然,这反映了攻击可行性的不一致性和模糊性。通过系统分析 prompt injection 攻击的有效性,我们提出了一种直接且有效的催眠攻击;结果表明,该攻击会导致包括 Stablelm2、Mistral、Openchat 和 Vicuna 在内的已对齐语言模型生成不良行为,达到约 90% 的 ASP。结果还表明,忽略前缀攻击可以攻破所有 14 个开源 LLMs,在多类别数据集上实现超过 60% 的 ASP。我们发现,中等知名度的 LLMs 对 prompt injection 攻击表现出更高的脆弱性,这凸显了提高公众意识和优先考虑高效缓解策略的必要性。
## 概述

## 环境配置与脚本
### 安装 [Ollama](https://ollama.com)
#### 使用例如 `ollama run llama3` 下载 13 个已评估的 LLMs
#### 运行 `preprocess.py` 来预处理简单数据集,例如 [AdvBench](https://github.com/llm-attacks/llm-attacks/blob/main/data/transfer_expriment_behaviors.csv)
#### 运行 `moderation.py` 以查看由 OpenAI `text-moderation-007` 评估的有害性得分
#### 运行以下脚本以执行不同的 prompt injection 攻击方法:
1. 用于运行忽略前缀攻击的脚本:
```
chmod +x run_attack_ignore.sh
./run_attack_ignore.sh
```
2. 用于运行角色扮演 CoT 攻击的脚本:
```
chmod +x run_attack_role.sh
./run_attack_role.sh
```
3. 用于运行催眠攻击的脚本:
```
chmod +x run_attack_hypnotism.sh
./run_attack_hypnotism.sh
```
#### 运行 `ollama.py` 以查看已下载开源 LLMs 的 ASP
#### 运行 `asp.py` 进行自动化评估
## 引用
如果您使用了这项工作,请引用:
```
@misc{wang2025promptsafe,
title={Is Your Prompt Safe? Investigating Prompt Injection Attacks Against Open-Source LLMs},
author={Jiawen Wang and others},
year={2025},
eprint={2505.14368},
archivePrefix={arXiv},
primaryClass={cs.CR}
}
```
标签:AI对齐, AI风险缓解, Cutter, DLL 劫持, 大语言模型, 提示注入, 红队评估, 逆向工具, 集群管理