aaFrostnova/Papillon
GitHub: aaFrostnova/Papillon
基于模糊测试的 LLM 越狱攻击研究框架,通过高效且隐蔽的策略自动发现大语言模型安全防护漏洞。
Stars: 69 | Forks: 9
# Papillon — 针对大语言模型(LLM)的高效且隐蔽的模糊测试驱动越狱方法
论文“PAPILLON: Efficient and Stealthy Fuzz Testing–Powered Jailbreaks for LLMs”(Usenix Security 2025)的官方代码库。
论文链接:https://arxiv.org/abs/2409.14866
## ✨ 概述
Papillon 实现了论文中使用的模糊测试流水线、数据集和评估工具。它提供了用于复现实验、运行两阶段评判器和评估攻击成功率的脚本。

## 快速链接
- 论文:https://arxiv.org/abs/2409.14866
- 代码:本代码库
- 数据集:`datasets/questions/`
## 💥 特性
- 用于 LLM 越狱评估的可复现的模糊测试流水线
- 两阶段自动评判(本地 RoBERTa 评判器 + LLM 评判器)
- 预定义的数据集以及用于添加自定义问题的接口
## ⚒️ 环境要求
- Python 3.10+
- PyTorch(已在 `2.1.2+cu12.1` 版本上测试通过)
本代码库中使用的核心 Python 包(示例):
```
# requirements
pip install "fschat[model_worker,webui]"
pip install vllm
pip install openai # for openai LLM
pip install termcolor
pip install openpyxl
pip install google-generativeai # for google PALM-2
pip install anthropic # for anthropic
```
## 安装说明
1. 克隆本代码库。
2. 安装依赖(参见环境要求)。
## 🤖 模型
1. 第一阶段评判器:我们使用了一个微调过的 RoBERTa-large 模型([huggingface](https://huggingface.co/hubert233/GPTFuzz)),该模型来自 [GPTFuzz](https://github.com/sherdencooper/GPTFuzz),作为我们的第一级评判模型。请将其下载到“./roberta”目录下。
2. 第二阶段评判器:一个 LLM 客户端(OpenAI 或其他提供商)。请在实例化客户端的 `Judge/language_models.py` 文件中配置 API 凭证。示例:
```
# ./Judge/language_models.py 中的第 106 行
client = OpenAI(base_url="[your proxy url(if use)]", api_key="your api key", timeout = self.API_TIMEOUT)
```
## 🗂️ 数据集
我们提供了 3 个可用于越狱测试的数据集:
1. `datasets/questions/question_target_list.csv`:采样自两个公开数据集:[llm-jailbreak-study](https://sites.google.com/view/llm-jailbreak-study) 和 [hh-rlhf](https://huggingface.co/datasets/Anthropic/hh-rlhf)。遵循 [GCG](https://github.com/llm-attacks/llm-attacks) 的格式,我们为每个问题添加了相应的目标(target)。
2. `datasets/questions/question_target.csv`:advbench。
3. `datasets/questions/question_target_custom.csv`:advbench 的子集。
## 🚀 快速入门
运行一个简单的实验(示例使用 OpenAI 模型作为目标):
```
python run.py --openai_key YOUR_OPENAI_KEY --model_path gpt-3.5-turbo --target_model gpt-3.5-turbo
```
请根据您的环境和目标模型按需调整参数。
## ⚙️ 评估
要评估结果,请将 `directory_path` 设置为包含实验输出的目录,然后运行:
```
python eval.py
```
这将计算出论文中使用的 ASR 和 AQ 等指标。
## 负责任地使用
本代码库包含旨在用于学术和防御目的(漏洞分析、鲁棒性评估和缓解研究)的研究代码。请勿使用这些工具来损害、利用生产模型或服务中的安全系统,或绕过其防护。
使用本代码即表示您同意遵守适用的法律以及您所使用的任何平台或 API 的服务条款。如果您在第三方系统上进行实验,请首先获得明确的授权。
## 📖 致谢
本实现建立在前人工作的思想和组件之上,并进行了复用,特别是 [GPTFuzz](https://github.com/sherdencooper/GPTFuzz) 和 [PAIR/jailbreakingllms](https://github.com/patrickrchao/jailbreakingllms)。感谢这些优秀项目的作者。
## 📌 引用
如果您在研究中使用了本代码或数据集,请引用本论文:
```
@article{gong2024effective,
title={Effective and Evasive Fuzz Testing-Driven Jailbreaking Attacks against LLMs},
author={Gong, Xueluan and Li, Mingzhe and Zhang, Yilin and Ran, Fengyuan and Chen, Chen and Chen, Yanjiao and Wang, Qian and Lam, Kwok-Yan},
journal={arXiv preprint arXiv:2409.14866},
year={2024}
}
```
标签:AI安全, Chat Copilot, CISA项目, DLL 劫持, Fuzz Testing, GPTFuzz, Hugging Face, LLM Jailbreak, LLM越狱, OpenAI API, Petitpotam, Python, PyTorch, RoBERTa, TruffleHog, Usenix Security, vLLM, 凭据扫描, 反取证, 大语言模型, 学术论文, 安全评估, 对抗攻击, 敏感信息检测, 无后门, 红队评估, 网络安全, 自动化评估, 逆向工具, 隐私保护