pfin-arya/prompt_sql_injection

GitHub: pfin-arya/prompt_sql_injection

基于双 LLM 架构的 API 红队自动化测试框架,能够根据 API 文档和策略文件生成测试 prompt 并自动评估 API 响应是否违反安全策略。

Stars: 0 | Forks: 0

# 红队 — API 测试框架 使用**双 LLM 架构**的自动化 API 红队测试。给定 API 文档和可选的 SOP/策略文档,该工具会生成逼真的测试 prompt,访问目标 API,并评估响应是否符合策略。 ## 工作原理 ``` ┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐ │ API Docs │────▶│ LLM-A │────▶│ Test Prompts │ │ (.md/.docx/.pdf)│ │ (Generator) │ │ (seed + follow) │ └─────────────────┘ └──────────────┘ └────────┬─────────┘ │ ┌─────────────────┐ ▼ │ SOP / Policies │ ┌──────────────┐ ┌──────────────────┐ │ (folder of │────▶│ LLM-B │◀────│ Target API │ │ docs) │ │ (Evaluator) │ │ Response │ └─────────────────┘ └──────┬───────┘ └──────────────────┘ │ ▼ ┌──────────────────┐ │ Excel Report │ │ (verdict + │ │ reason + source)│ └──────────────────┘ ``` 1. **LLM-A(生成器)** 读取您的 API 文档 + 检索到的 SOP 上下文 → 生成逼真的种子 prompt 和后续 prompt 2. 每个 prompt 都会发送到 **目标 API** 并捕获响应 3. **LLM-B(评估器)** 检索相关的 SOP/策略片段 → 根据 API 文档和策略证据验证 API 响应 4. 结果将写入 **Excel 报告**,其中包含判定、原因和来源引用 ## 项目结构 ``` Red_team/ ├── main.py # Entrypoint: python main.py ├── .env.local # Your configuration (not committed) ├── .env.example # Template for .env.local ├── requirements.txt # Python dependencies │ ├── docs/ # API documentation files │ ├── pai_chat.md │ └── *.docx │ └── redteam/ # Source package ├── config.py # Env-based settings + validation ├── llm.py # Azure OpenAI client ├── helpers.py # JSON parsing, text utils ├── document_loader.py # Load .md/.docx/.pdf/.json/.txt ├── policy_index.py # SOP chunking + lexical retrieval ├── api_extractor.py # LLM doc extraction + cURL parser ├── api_caller.py # Build request body + call API ├── prompt_generator.py # LLM-A: seed + follow-up generation ├── evaluator.py # LLM-B: SOP-based validation ├── orchestrator.py # Test cycle orchestration └── report.py # Excel report generation ``` ## 快速开始 ``` # 1. 克隆并进入目录 cd Red_team # 2. 安装依赖 pip install -r requirements.txt # 3. 配置环境 cp .env.example .env.local # 使用你的 Azure OpenAI credentials、路径等编辑 .env.local # 4. 运行 python main.py ``` ## 配置 所有设置均由 `.env.local` 驱动。关键变量: | 变量 | 描述 | |----------|-------------| | `AZURE_OPENAI_ENDPOINT` | Azure OpenAI 的 endpoint URL | | `AZURE_OPENAI_KEY` | Azure OpenAI 的 API key | | `MODEL_GEN` | 用于生成 prompt 的 LLM 模型 | | `MODEL_EVAL` | 用于响应评估的 LLM 模型 | | `API_DOC_PATH` | API 文档文件的路径 | | `SOP_FOLDER_PATH` | SOP/策略文档的文件夹路径 | | `NUM_SEEDS` | 要生成的种子测试组数量 | | `FOLLOWUPS_PER_SEED` | 每个种子的后续 prompt 数量 | | `MAX_TESTS` | 最大测试用例总数 | | `OUTPUT_EXCEL` | 输出报告文件名 | 请参阅 [.env.example](.env.example) 获取完整列表。 ## 支持的文档格式 | 格式 | 扩展名 | 备注 | |--------|-----------|-------| | Markdown | `.md` | 直接文本 | | 纯文本 | `.txt`, `.log`, `.csv` | 直接文本 | | JSON | `.json` | 格式化打印 | | Word | `.docx` | 转换为 Markdown(保留表格) | | PDF | `.pdf` | 通过 `pypdf` 提取文本 | | YAML | `.yaml`, `.yml` | 直接文本 |
标签:API安全测试, DLL 劫持, 人工智能, 大语言模型, 用户模式Hook绕过, 红队评估, 逆向工具