dev-devneuron/aginiti-redteam

GitHub: dev-devneuron/aginiti-redteam

Aginiti Redteam 是一个用于红队测试企业级 RAG/Agentic AI 系统数据泄露风险的开源 Python 库,帮助安全团队在攻击者之前发现可被提取的敏感数据。

Stars: 0 | Forks: 0

# Aginiti Redteam 🛡️🤖 [![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg)]() [![Python Version](https://img.shields.io/badge/python-3.10%20%7C%203.12-blue.svg)]() [![License](https://img.shields.io/badge/license-MIT-green.svg)]() **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, 人工智能安全, 合规性, 大语言模型, 无后门, 用户代理, 红队评估, 逆向工具