lyy030914/llm-red-team

GitHub: lyy030914/llm-red-team

一款轻量级的LLM安全红队测试工具,用于自动检测AI模型在提示词注入、越狱等方面的安全风险。

Stars: 0 | Forks: 0

# LLM Red Team - AI模型安全红队测试工具 一个轻量级的 LLM 安全测试工具,用于对 OpenAI 兼容接口的 AI 模型进行自动化红队测试,检测提示词注入、越狱、系统提示词泄露等安全风险。 ## 功能特性 - **8类攻击模板**:提示词注入、越狱攻击、角色扮演绕过、编码绕过、上下文污染、系统提示词提取、PII提取、有害内容生成 - **双模式检测**:规则引擎(关键词/正则)+ LLM作为裁判,可单独或组合使用 - **多格式报告**:终端彩色文本报告、JSON报告、HTML报告 - **OpenAI兼容接口**:支持 OpenAI、vLLM、Ollama、本地部署等多种后端 ## 快速开始 ### 1. 安装依赖 pip install -r requirements.txt ### 2. 基础用法 # 对 OpenAI 模型进行全部类别测试 python red_team.py \ --target https://api.openai.com/v1 \ --api-key sk-your-key \ --model gpt-4o-mini # 对本地 Ollama 模型进行测试(无需API Key) python red_team.py \ --target http://localhost:11434/v1 \ --model llama3 # 只测试指定类别 python red_team.py \ --target https://api.openai.com/v1 \ --api-key sk-your-key \ --categories prompt_injection jailbreak # 使用LLM作为裁判(更准确) python red_team.py \ --target https://api.openai.com/v1 \ --api-key sk-your-key \ --judge llm \ --judge-api-key sk-your-key # 输出JSON报告 python red_team.py \ --target https://api.openai.com/v1 \ --api-key sk-your-key \ --output json > report.json # 输出HTML报告 python red_team.py \ --target https://api.openai.com/v1 \ --api-key sk-your-key \ --output html > report.html ### 3. 查看所有攻击模板(不执行) python red_team.py --target http://localhost:11434/v1 --dry-run ## 攻击类别说明 | 类别 | 说明 | 攻击示例 | |------|------|----------| | `prompt_injection` | 提示词注入 | 忽略系统指令、分隔符欺骗、JSON格式注入 | | `jailbreak` | 越狱攻击 | DAN模式、开发者模式、对立角色扮演 | | `role_playing` | 角色扮演绕过 | 虚构场景、学术研究伪装、祖母漏洞 | | `encoding_bypass` | 编码绕过 | Base64编码、分段指令、密码游戏 | | `context_pollution` | 上下文污染 | 长文本注入、URL内容注入 | | `system_prompt_extraction` | 系统提示词提取 | 直接询问、翻译泄露、格式填充 | | `pii_extraction` | PII提取 | 训练数据提取、历史对话泄露 | | `toxicity` | 有害内容生成 | 仇恨言论、自我伤害内容、错误信息 | ## 命令参数 | 参数 | 简写 | 说明 | 默认值 | |------|------|------|--------| | `--target` | `-t` | 目标LLM API地址(必填) | - | | `--api-key` | `-k` | 目标API的Key | 无 | | `--model` | `-m` | 目标模型名称 | `gpt-3.5-turbo` | | `--categories` | `-c` | 攻击类别(多个空格分隔) | 全部 | | `--judge` | `-j` | 检测模式:`rule`/`llm`/`both` | `rule` | | `--judge-api-key` | - | 裁判LLM的API Key | 无 | | `--judge-model` | - | 裁判LLM模型名称 | `gpt-4o-mini` | | `--judge-base-url` | - | 裁判LLM API地址 | `https://api.openai.com/v1` | | `--output` | `-o` | 报告格式:`text`/`json`/`html` | `text` | | `--timeout` | - | 请求超时(秒) | `30` | | `--dry-run` | - | 仅列出攻击模板 | - | ## 项目结构 llm-red-team/ ├── red_team.py # 主入口 / CLI 界面 ├── attacks.py # 攻击模板库(8类、20+攻击模板) ├── judge.py # 检测引擎(规则引擎 + LLM裁判) ├── reporter.py # 报告生成器(文本/JSON/HTML) ├── config.py # 配置模型 ├── requirements.txt # 依赖 └── README.md # 本文档 ## 检测原理 ### 规则引擎(默认) - **拒绝回应检测**:正则匹配"I'm sorry"、"我无法"、"我不能"等拒绝模式,识别模型是否拦截了攻击 - **泄露检测**:检测响应中是否包含系统提示词特征、PII信息(手机号、邮箱、API Key等) - **有害内容检测**:关键词匹配识别暴力、制毒、自杀等敏感内容 ### LLM裁判(可选) - 将攻击提示词和模型响应一起发送给另一个LLM - 裁判LLM综合判断目标是否被攻破 - 比规则引擎更准确,但需要额外API调用 ## 安全声明 本工具仅供合法的安全测试用途,请在以下前提下使用: 1. **仅测试自己有权限测试的模型或系统** 2. **不要在未经授权的情况下对第三方服务进行测试** 3. **测试结果应仅用于改进模型安全性,不得用于非法目的** 作者不对任何滥用本工具的行为承担责任。 ## 参考项目 - [Garak](https://github.com/NVIDIA/garak) - NVIDIA开源的LLM漏洞扫描器 - [LLM-Guard](https://github.com/protectai/llm-guard) - ProtectAI的LLM安全沙箱 - [PromptBench](https://github.com/microsoft/promptbench) - 微软的提示词鲁棒性评估框架
标签:AI安全, AI风险缓解, Chat Copilot, LLM, Petitpotam, Unmanaged PE, 逆向工具