arxanshxh2309/aeris-llm-safety
GitHub: arxanshxh2309/aeris-llm-safety
一个防御性 LLM 红队评估框架,通过测量已知越狱攻击成功率和过度拒绝率来量化前沿语言模型的安全部署水平。
Stars: 0 | Forks: 0
# AERIS — 针对大型语言模型的防御性红队评估框架
**状态:** 研究原型 • **许可证:** MIT • **目标:** OpenAI、Anthropic、Google、xAI、Perplexity API(以及任何兼容 HTTP 的 LLM)
## 为什么会有这个项目
前沿的 LLM(ChatGPT、Claude、Gemini、Grok、Perplexity)已经部署给了数亿用户。它们也经常被诱导生成其开发者明确试图阻止的输出。关于这一领域已发表的学术研究——来自 MIT CSAIL、Stanford CRFM、Harvard's Berkman Klein、Anthropic 和 OpenAI——已经达成了一些严峻的共识:
1. **单提示词(single-prompt)的鲁棒性基本已解决,但多轮对话(multi-turn)和间接注入(indirect injection)尚未解决。** ([Greshake et al. 2023](https://arxiv.org/abs/2302.12173), [Wei, Haghtalab, Steinhardt 2023](https://arxiv.org/abs/2307.02483))
2. **防御措施必须针对自适应攻击者进行评估**,而不是固定的测试集。([Tramèr et al. 2020](https://arxiv.org/abs/2002.08347))
3. **拒绝并不等于安全。** 一个拒绝一切的模型毫无用处;一个只在应该拒绝时才拒绝的模型才是真正的目标。([Röttger et al. XSTest, 2023](https://arxiv.org/abs/2308.01263))
AERIS 是针对第 (1) 和 (2) 点的一个微小但严谨的贡献——它是一个框架,允许研究人员针对任何 LLM 运行固定的攻击套件,衡量其失败的频率,叠加防御措施,并重新衡量。它是**纯粹的防御性工具**:它不提供任何新型攻击 payload,只提供已公开发布的攻击,其目的是让模型在部署时更加安全。
## 包含内容
```
aeris-llm-safety/
├── src/aeris/ Core library — adapters, runner, defenses, judge, scoring, report
├── attacks/ Catalogued, published attack templates (with citations)
├── defenses/ Input/output filters, classifier-based guardrails
├── datasets/ Prompts: smoke + full attack/benign sets (surrogate triggers only)
├── configs/ YAML experiment definitions (smoke, smoke_defended, headline)
├── tests/ 35 tests — scoring, defenses, providers, attack-safety audit, e2e
├── scripts/ CLI helpers (quickstart)
├── results/ Run artifacts (manifest.json, records.jsonl, summary.json, report.html)
└── docs/ Threat model, methodology, safety posture, responsible disclosure
```
## 核心实验
针对前沿模型运行 8 类已发表的攻击,分别在有和没有 AERIS 防御措施的情况下进行,并生成排行榜。
```
python -m aeris.run --config configs/headline.yaml --model anthropic/claude-sonnet-4-5
# → results/2026-05-26_claude-sonnet-4-5/report.html
```
输出结果:每种攻击的攻击成功率 (ASR)、针对良性提示词的误拒率 (FRR),以及一个综合的 **AERIS Score** (ASR↓ + FRR↓,加权计算)。每次运行还会生成一个独立的 `report.html` —— 这是一个具有编辑风格的仪表板,包含核心分数、按类别细分的柱状图、防御措施动作直方图以及失败案例样本。随时可以使用 `aeris report ` 重新生成。
## 威胁模型(大多数项目会忽略的部分)
参见 [`docs/threat_model.md`](docs/threat_model.md)。简单来说:攻击者拥有黑盒查询权限,没有梯度访问权限,并且可能控制 LLM 作为上下文(RAG 文档、工具输出、网页)摄取的内容。不在范围内:模型权重提取、训练时投毒、侧信道攻击。这一点很重要,因为它界定了哪些防御措施才是真正有意义的——针对基于梯度的攻击的防御措施对于封闭 API 模型来说是不相关的。
## 安全态势 — 本项目不会做的事情
本仓库被明确设计为**无害的**:
- **没有新型攻击。** 每个攻击模板均来自已发表的论文,并在 `attacks/REGISTRY.md` 中引用。我们不开发新的越狱(jailbreak)技术。
- **没有 CBRN、没有 CSAM、没有针对性伤害的 payload。** 攻击模板使用来自 HarmBench 的替代性拒绝触发提示词来探测*类别*(例如,“拒绝提供炸弹制造说明”),而不是实际的武器合成说明。攻击输入的设计确保了即使模型未能成功防御,其*输出内容*对真正的攻击者也没有用处。
- **拒绝触发替代方案。** 我们衡量模型*是否会*顺从,而不是它是否会生成危险内容。参见 `docs/safety_posture.md`。
- **没有实时数据泄露工具。** 间接注入测试工具会在沙箱中模拟受损的工具输出;它不会以真实的第三方服务为目标。
- **经过速率限制、记录日志且可审计。** 所有运行都会生成清单。如果没有显式的 `--i-have-permission-to-test` 标志,CLI 将拒绝针对任何 endpoint 运行。
## 快速入门
```
git clone https://github.com/arxanshxh2309/aeris-llm-safety
cd aeris-llm-safety
pip install -e ".[dev]"
cp .env.example .env # add API keys for any providers you want to test
# 针对 mock provider 的 Dry-run — 无 API 调用,确定性输出
python -m aeris.run --config configs/smoke.yaml --model mock/echo --i-have-permission-to-test
# 实际运行(使用你的 API key,smoke config 约消耗 $2 的 tokens)
python -m aeris.run --config configs/smoke.yaml --model anthropic/claude-haiku-4-5 --i-have-permission-to-test
```
## 阅读指南
如果您想全面了解该项目,请按以下顺序阅读:
1. [`docs/threat_model.md`](docs/threat_model.md) — 我们防御什么,不防御什么
2. [`docs/methodology.md`](docs/methodology.md) — 我们如何评分,为什么使用这些指标
3. [`attacks/REGISTRY.md`](attacks/REGISTRY.md) — 每一种攻击、其来源论文及其基本原理
4. [`defenses/REGISTRY.md`](defenses/REGISTRY.md) — 每一种防御、它能拦截什么,漏掉了什么
5. [`docs/results_writeup.md`](docs/results_writeup.md) — 我们在真实模型上运行后的发现
## 引用
```
@software{aeris_llm_safety_2026,
title = AERIS: A Defensive Red-Teaming Framework for Large Language Models,
author = ARYAN SHAH,
year = 2026,
url = https://github.com/arxanshxh2309/aeris-llm-safety/
}
```
## 致谢
这项工作建立在 [HarmBench](https://www.harmbench.org/) (Mazeika et al., 2024)、[XSTest](https://github.com/paul-rottger/exaggerated-safety) (Röttger et al., 2023)、[TensorTrust](https://tensortrust.ai/) (Toyer et al., 2023) 的公开基准测试和方法论,以及 [Greshake et al. (2023)](https://arxiv.org/abs/2302.12173) 的间接注入威胁建模工作之上。防御措施的灵感来源于 [Llama Guard](https://arxiv.org/abs/2312.06674)、[NeMo Guardrails](https://github.com/NVIDIA/NeMo-Guardrails) 以及 Anthropic 的[宪法分类器 (constitutional classifiers)](https://www.anthropic.com/research/constitutional-classifiers) 工作。
## 许可证
本项目基于 MIT 许可证授权 — 详情请参阅 [LICENSE](LICENSE) 文件。
标签:DLL 劫持, Python, 人工智能安全, 合规性, 多模态安全, 大语言模型, 提示注入测试, 文档结构分析, 无后门, 评估框架, 逆向工具