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, 域名收集, 请求拦截, 运行时操纵, 逆向工具