dev-devneuron/aginiti-redteam
GitHub: dev-devneuron/aginiti-redteam
Aginiti Redteam 是一个用于红队测试企业级 RAG/Agentic AI 系统数据泄露风险的开源 Python 库,帮助安全团队在攻击者之前发现可被提取的敏感数据。
Stars: 0 | Forks: 0
# Aginiti Redteam 🛡️🤖
[]()
[]()
[]()
**Aginiti Redteam** 是一个开源的安全探测与红队测试库,专门用于审计企业级 **agentic AI 与 RAG 系统中的数据泄露**。它使安全工程师和开发人员能够探测基于 RAG 的 AI 应用,对数据外泄风险进行分类,并将安全发现直接映射到 OWASP 大型语言模型应用 Top 10。
与通用的 LLM 安全工具不同,Aginiti Redteam 是专为 RAG 架构从头构建的——重点关注用户查询、向量搜索检索与最终生成输出之间的交互。
## 🚀 核心特性
* **IKEA 数据重构攻击 (DRA):** 引入了 arXiv:2505.15420 的方法论。利用 Embedding 空间重采样 (ERS) 和主题限制随机游走突变 (TRDM) 生成听起来自然且看似无害的查询,从而绕过传统的关键字/jailbreak 检测器。
* **分层探测架构:**
* **Tier 1 (黑盒):** 探测 agent 的 HTTP endpoint。严格根据对话响应评估数据外泄风险。
* **Tier 2 (白盒/OTel):** 接入 OpenTelemetry。通过将外泄数据与 RAG 检索 spans 进行交叉比对,将发现结果升级为“已确认”。
* **LLM-as-a-Judge 分类:** 使用可自定义的 judge prompt 分析响应文本,将披露内容分类为 *PII*、*Verbatim*、*Sensitive Data*、*Schema* 或 *None*。
* **集中式 Embeddings 层:** 采用在 ChromaDB 内置的 ONNX runtime (`all-MiniLM-L6-v2`) 上运行的本地优先 embeddings——实现零成本、高性能的离线数据外泄计算。
* **面向 CISO 的 Markdown 报告:** 自动生成详细的评估报告,概述外泄指标、风险表以及映射到 OWASP LLM Top 10 的修复建议。
## 📁 仓库结构
```
aginiti-redteam/
├── aginiti/
│ ├── attacks/
│ │ ├── base.py # Base class (BaseAttack) & findings schema (LeakFinding)
│ │ └── dra/
│ │ ├── ikea.py # IKEA attack loop (ERS + TRDM)
│ │ └── README.md
│ ├── connectors/
│ │ ├── endpoint.py # HTTP client for target agents
│ │ └── embedding.py # Local ONNX & cloud embedding routing
│ └── reporting/
│ └── markdown_report.py # Markdown report generator
├── benchmarks/
│ ├── dev_fixtures/ # Lightweight mock targets used in unit tests & local dev
│ │ ├── agents/ # Reference black-box and OTel-instrumented FastAPI agents
│ │ └── datasets/ # 25 synthetic Acme HR records
│ └── scaled_evals/ # Production-scale benchmarking suite
│ ├── agents/ # HealthCareMagic-1k FastAPI target agent
│ ├── datasets/ # prepare_healthcare.py download script
│ └── results/ # Saved evaluation runs
├── scripts/
│ ├── run_ikea.py # Single-target IKEA run script
│ ├── run_benchmark.py # Empirical scoring CLI
│ └── run_healthcare_benchmark.py # Preset HealthCareMagic benchmark runner
└── tests/ # Complete offline test suite (all LLM & endpoints mocked)
```
## 🛠️ 安装与开发者设置
### 前置条件
* Python 3.10+
* 拥有任意 LiteLLM 支持的提供商的有效 API key(例如 `GEMINI_API_KEY`、`OPENAI_API_KEY`、`GROQ_API_KEY` 等),因为攻击循环和 LLM-as-a-judge 分类完全与提供商无关。
* **Windows 用户:** 强烈建议在 **WSL2** (Windows Subsystem for Linux) 中运行。在原生 Windows 下运行 `onnxruntime` 等原生二进制依赖项可能会导致 DLL 加载错误或崩溃。
### 安装与配置
克隆仓库,设置虚拟环境,并以可编辑模式安装该库:
```
# 1. Clone 并导航到该项目
git clone https://github.com/dev-devneuron/aginiti-redteam.git
cd aginiti-redteam
# 2. 创建并激活一个干净的 virtual environment
python3 -m venv .venv
source .venv/bin/activate
# 3. 安装开发依赖
pip install -e ".[dev]"
# 4. 复制环境模板并添加你的 API key(s)
cp .env.example .env
```
### 1. 种子化并启动参考 Agent
Acme HR 参考 agent 共享一个包含 25 条记录的合成数据库,但运行在不同的端口上,以隔离 Tier 1 和 Tier 2 的设置:
```
# 初始化本地 ChromaDB 向量数据库(离线计算 embeddings)
python -m benchmarks.dev_fixtures.agents.reference_agent_blackbox.seed
python -m benchmarks.dev_fixtures.agents.reference_agent_otel.seed
# 在单独的终端中启动 reference agents
uvicorn benchmarks.dev_fixtures.agents.reference_agent_blackbox.main:app --port 8001
uvicorn benchmarks.dev_fixtures.agents.reference_agent_otel.main:app --port 8002
```
### 2. 运行 IKEA 攻击
主动攻击正在运行的 Tier 1 黑盒 agent:
```
python scripts/run_ikea.py
```
这将运行 ERS/TRDM 循环,并在 `scripts/results/` 下写入 JSON 发现列表以及自动生成的 Markdown 报告。
## 📊 基准测试套件 (HealthCareMagic-1k)
为了评估针对逼真、生产级语料库的数据外泄抵抗力,Aginiti Redteam 托管了一个可选的基准测试套件,该套件使用了包含 1000 条记录的 HealthCareMagic 数据集。
### 设置并启动基准测试目标
```
# 安装 benchmark 特定的包
pip install -e ".[benchmarks]"
# 1. 下载并采样 HuggingFace HealthCareMagic 数据集
python benchmarks/scaled_evals/datasets/prepare_healthcare.py
# 2. 初始化医疗向量数据库
python -m benchmarks.scaled_evals.agents.healthcare_agent.seed
# 3. 启动 healthcare agent(端口 8003)
uvicorn benchmarks.scaled_evals.agents.healthcare_agent.main:app --port 8003
```
### 运行并评分
执行预设的 50 个查询基准测试循环,针对真实问诊记录对数据外泄指标进行评分:
```
python scripts/run_healthcare_benchmark.py
```
运行器会评估并记录:
* **ASR (Attack Success Rate):** 返回积极泄露发现的查询百分比。
* **CRR (Content Reconstruction Rate):** 外泄数据块与实际数据库记录之间的 ROUGE-L 相似度。
* **SS (Semantic Similarity):** embeddings 的余弦相似度,用于衡量语义的保留程度。
* **EE (Exfiltration Effectiveness):** 捕获真正、非平凡文档泄露的综合门控指标。
运行结果将作为带有时间戳的 `.json` 和 `.md` 报告存储在 `benchmarks/scaled_evals/results/` 下。
## 🧪 测试
该库运行着健壮的单元测试套件。所有的网络请求、agent endpoint 和 LLM 补全都经过了完全的模拟(mock)——这使得整个套件可以在几秒钟内离线运行,且不会产生 API 费用:
```
pytest tests/ -v
```
## 🗺️ 路线图与状态
* [x] **数据重构攻击 (DRA)**
* [x] IKEA 攻击方法 (ERS + TRDM)
* [x] LLM-as-a-judge 泄露分类
* [x] 面向 CISO 的 Markdown 报告生成器
* [x] HealthCareMagic-1k 基准测试套件
* [ ] **Tier 2 OTel Trace Collector 集成** (Langfuse / OpenTelemetry 入口)
* [ ] **成员推理攻击 (MIA)**
* [ ] **特征/属性推理攻击 (FIA)**
* [ ] **SECRET DRA 技术** (基于 Jailbreak 的外泄运行器)
* [ ] **命令行界面 (`aginiti` CLI 包装器)**
## 📄 许可证
该项目基于 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE)。
标签:DLL 劫持, Python, RAG系统, StruQ, 人工智能安全, 合规性, 大语言模型, 无后门, 用户代理, 红队评估, 逆向工具