MuhammadHammadIrfan/Aginiti-redteam

GitHub: MuhammadHammadIrfan/Aginiti-redteam

面向企业级RAG与Agentic AI系统的开源数据泄露红队测试库,通过模拟攻击主动发现和量化敏感数据外泄风险。

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) 生成听起来自然、看似无害的查询,从而绕过传统的关键词或越狱检测器。 * **分层探测架构:** * **Tier 1 (黑盒):** 探测 agent 的 HTTP endpoint。严格基于对话响应评估数据外泄风险。 * **Tier 2 (白盒/OTel):** 挂载到 OpenTelemetry。通过将外泄数据与 RAG 检索跨度进行交叉比对,将发现的问题升级为“已确认”。 * **LLM-as-a-Judge 分类:** 分析响应文本,利用可定制的评判 prompt 将披露内容分类为 *PII*、*原文*、*敏感数据*、*Schema* 或 *无*。 * **集中式 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 分类完全与提供商无关。 ### 安装 克隆仓库并以可编辑模式安装,包含开发依赖: ``` git clone https://github.com/aginiti/aginiti-redteam.git cd aginiti-redteam pip install -e ".[dev]" ``` ### 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 # 在单独的终端中启动参考 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 ``` ### 3. 运行 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 dataset python benchmarks/scaled_evals/datasets/prepare_healthcare.py # 2. 初始化医疗向量数据库 python -m benchmarks.scaled_evals.agents.healthcare_agent.seed # 3. 启动医疗 agent(端口 8003) uvicorn benchmarks.scaled_evals.agents.healthcare_agent.main:app --port 8003 ``` ### 运行并评分 执行预设的 50 个查询的基准测试循环,以根据真实咨询记录对外泄指标进行评分: ``` python scripts/run_healthcare_benchmark.py ``` 运行器会评估并记录: * **ASR (攻击成功率):** 返回泄露阳性发现的查询百分比。 * **CRR (内容重构率):** 外泄数据块与实际数据库记录之间的 ROUGE-L 相似度。 * **SS (语义相似度):** embeddings 的余弦相似度,用于衡量语义的保留程度。 * **EE (外泄有效性):** 捕捉真实、非平凡文档泄露的综合门控指标。 运行结果将作为带有时间戳的 `.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 ingress) * [ ] **成员推理攻击 (MIA)** * [ ] **特征/属性推理攻击 (FIA)** * [ ] **SECRET DRA 技术** (基于越狱的外泄运行器) * [ ] **命令行界面 (`aginiti` CLI 包装器)** ## 📄 许可证 该项目基于 MIT 许可证授权。详情请参阅 [LICENSE](LICENSE)。
标签:AI安全, Chat Copilot, CNCF毕业项目, LLM评测, Python, RAG系统, StruQ, 数据泄露防护, 无后门, 用户代理, 红队评估, 网络探测, 逆向工具