saurabhherwadkar/ai-genai-llm-security-redteaming
GitHub: saurabhherwadkar/ai-genai-llm-security-redteaming
基于双 LLM 架构的自动化大模型安全红队测试框架,实现 OWASP LLM Top 10 漏洞的攻击生成、执行、评估与报告生成全流程。
Stars: 0 | Forks: 0
# AI GenAI LLM 安全红队测试
自动化 LLM 安全测试框架,实施 OWASP LLM 应用十大安全风险(2025 版)。生成攻击 payload,针对目标 LLM 执行攻击,评估结果,测试防御机制,并生成漏洞报告。
## 核心学习目标
- 理解 OWASP LLM 应用十大安全风险,以及每个漏洞类别在生产系统中的具体表现形式
- 设计并实施自动化 prompt injection 攻击,包括直接覆盖、分隔符滥用和指令走私
- 使用角色扮演、假设性框架和混淆技术构建 jailbreak 检测与生成 pipeline
- 开发双 LLM 红队架构,由攻击者模型系统性地探测目标模型的弱点
- 实施防御层,包括用于 injection 检测的输入验证和用于安全响应处理的输出净化
- 构建自动化评估系统,以评估对抗性攻击是否成功绕过 LLM 安全控制
- 应用结构化的漏洞评分和风险评估方法来量化 LLM 的安全态势
- 创建包含执行摘要、证据链和可操作的修复指导的综合安全报告
- 设计编排攻击生成、执行、评估和报告的端到端安全扫描 pipeline
- 实践负责任的 AI 安全测试工作流,包括范围评估、道德边界和披露实践
## 目录
1. [概述](#overview)
2. [项目结构](#project-structure)
3. [OWASP 覆盖范围](#owasp-coverage)
4. [部署](#deployment)
5. [配置](#configuration)
6. [API 参考](#api-reference)
7. [测试](#testing)
## 端到端流程
```
graph TD
A[Scan Request] --> B[Red Team Pipeline]
B --> C[Attack Generation]
C --> C1[Prompt Injection Generator]
C --> C2[Jailbreak Generator]
C --> C3[Data Leakage Generator]
C --> C4[Excessive Agency Generator]
C --> C5[Insecure Output Generator]
C1 & C2 & C3 & C4 & C5 --> D[Attack Execution]
D --> E[Target LLM]
E --> F[Response Captured]
F --> G[Result Evaluation]
G --> H{Attack Successful?}
H -->|Yes| I[Create Vulnerability]
H -->|No| J[Record as Blocked]
I --> K[Defense Testing]
K --> K1[Input Validator]
K --> K2[Output Sanitizer]
I & J & K1 & K2 --> L[Report Generation]
L --> M[Executive Summary]
L --> N[Vulnerability Details]
L --> O[Remediation Advice]
L --> P[Risk Score 0-10]
```
## 概述
该框架遵循 OWASP LLM 应用十大安全风险(2025 版),为基于 LLM 的应用提供自动化安全测试。它使用双 LLM 架构:
- **目标 LLM**:正在接受漏洞测试的模型
- **攻击者 LLM**:生成复杂攻击 payload 的模型
### 核心功能
| 功能 | 描述 |
|---------|-------------|
| 多类别攻击 | 覆盖 5 个 OWASP 漏洞类别 |
| 模板 + LLM 生成 | 结合已知模式和新颖 AI 制作的攻击 |
| 自动化评估 | 基于 LLM 的成功/失败评估 |
| 防御测试 | 内置输入验证和输出净化 |
| 风险评分 | 0-10 综合风险评分 |
| 详细报告 | 执行摘要、证据、修复建议 |
## 项目结构
```
ai-genai-llm-security-redteaming/
├── src/
│ └── security_redteaming/
│ ├── __init__.py
│ ├── main.py # FastAPI entry point
│ ├── api/
│ │ └── router.py # REST API endpoints
│ ├── attacks/
│ │ ├── base.py # Abstract attack generator
│ │ ├── prompt_injection.py # OWASP LLM01
│ │ ├── jailbreak.py # OWASP LLM01 variant
│ │ ├── data_leakage.py # OWASP LLM06
│ │ ├── excessive_agency.py # OWASP LLM08
│ │ └── insecure_output.py # OWASP LLM02
│ ├── config/
│ │ └── settings.py # Configuration management
│ ├── defenses/
│ │ ├── input_validator.py # Injection detection
│ │ └── output_sanitizer.py # Output safety checks
│ ├── models/
│ │ └── schemas.py # Pydantic data models
│ ├── reports/
│ │ └── generator.py # Report generation
│ ├── scanners/
│ │ └── pipeline.py # Red team orchestration
│ └── utils/
│ ├── llm_client.py # Unified LLM client
│ └── logger.py # Structured logging
├── tests/
│ ├── conftest.py
│ ├── test_attacks.py
│ ├── test_defenses.py
│ └── test_pipeline.py
├── config/
│ ├── application.yaml
│ ├── application-dev.yaml
│ └── application-prod.yaml
├── pyproject.toml # Poetry dependencies
├── Dockerfile
├── docker-compose.yml
└── README.md
```
### 依赖项
| 包 | 用途 |
|---------|---------|
| anthropic | 用于目标/攻击者 LLM 的 Claude API |
| openai | OpenAI API 支持 |
| fastapi | REST API 框架 |
| pydantic | 数据验证和 schema |
| structlog | 结构化日志 |
| jinja2 | 报告模板 |
| httpx | 异步 HTTP 客户端 |
## OWASP 覆盖范围
| OWASP ID | 漏洞 | 攻击技术 |
|----------|--------------|-------------------|
| LLM01 | Prompt Injection | 直接覆盖、上下文操纵、分隔符滥用、指令走私、角色扮演、编码绕过 |
| LLM01 | Jailbreak | 角色扮演、假设性框架、增量诱导、混淆、权威冒充 |
| LLM06 | 敏感信息泄露 | System prompt 提取、训练数据提取、上下文窗口泄漏、补全攻击 |
| LLM08 | 过度自主行为 | 未经授权的操作、权限提升、范围扩大、工具滥用、确认绕过 |
| LLM02 | 不安全的输出处理 | XSS 注入、SQL 注入输出、命令注入、Markdown 注入、CSV 注入 |
## 部署
### 前置条件
- Python 3.11+
- Poetry 1.8+
- Docker(可选)
### 本地开发
```
# Clone 仓库
git clone https://github.com/saurabhherwadkar/ai-genai-llm-security-redteaming.git
cd ai-genai-llm-security-redteaming
# 安装依赖
poetry install
# 配置环境
cp .env.example .env
# 使用您的 API keys 编辑 .env
# 运行服务
poetry run python -m uvicorn security_redteaming.main:app --reload --port 8000
# 运行测试
poetry run pytest
# 运行 linter
poetry run ruff check src/ tests/
```
### Docker 部署
```
docker-compose up --build
```
## 配置
| 变量 | 描述 | 默认值 |
|----------|-------------|---------|
| `ANTHROPIC_API_KEY` | Anthropic 的 API key | (必填) |
| `OPENAI_API_KEY` | OpenAI 的 API key | (可选) |
| `APP_ENV` | 环境 (development/production) | development |
| `TARGET_PROVIDER` | 目标 LLM 提供商 | anthropic |
| `TARGET_MODEL` | 目标模型 ID | claude-sonnet-4-20250514 |
| `ATTACKER_PROVIDER` | 攻击者 LLM 提供商 | anthropic |
| `ATTACKER_MODEL` | 攻击者模型 ID | claude-sonnet-4-20250514 |
## API 参考
### 基础 URL: `http://localhost:8000/api/v1/security`
#### POST /scan
运行完整的安全扫描。
```
{
"target_system_prompt": "You are a helpful assistant.",
"categories": ["prompt_injection", "jailbreak", "data_leakage"],
"max_attempts_per_category": 5,
"test_defenses": true
}
```
#### POST /scan/category/{category}
针对单一类别运行扫描。
#### POST /report
运行扫描并生成格式化报告。
#### GET /categories
列出可用的漏洞类别。
#### GET /health
健康检查 endpoint。
## 测试
```
# 运行所有测试
poetry run pytest --cov=src/security_redteaming --cov-report=term-missing
# 运行特定测试文件
poetry run pytest tests/test_attacks.py -v
poetry run pytest tests/test_defenses.py -v
poetry run pytest tests/test_pipeline.py -v
```
标签:AI安全, Chat Copilot, OWASP Top 10, Petitpotam, 域名收集, 请求拦截, 运行时操纵, 逆向工具