airtasystems/AI-Whitehat-Bug-Bounty-Hunter

GitHub: airtasystems/AI-Whitehat-Bug-Bounty-Hunter

一个面向 LLM 应用和 AI agent 的自动化白帽安全测试工具包,帮助研究人员将手工 prompt 测试转化为可重复的漏洞挖掘流水线。

Stars: 0 | Forks: 0

# AI 白帽漏洞赏金猎人 ![AI 白帽漏洞赏金猎人](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/9aeb7ce692180001.png) **AI 白帽漏洞赏金猎人** 是一个开源工具包,专注于对聊天机器人、AI agent 和基于 LLM 的 API 进行 **AI 漏洞赏金挖掘**、**LLM 安全测试**以及**授权的白帽评估**。它帮助研究人员和赏金猎人从手动 prompt 测试过渡到可重复的 pipeline:**生成对抗性测试**、**大规模执行**、**严重性评估**,并**导出结构化结果**为 JSON 或上传至 [Genbounty](https://genbounty.com) 平台。 使用它来挖掘 **prompt 注入**、**越狱**、**系统 prompt 泄露**、**敏感数据泄露**、**通过文件上传进行的间接注入**(PDF、CSV、图像、音频)以及**针对 agent /工具的滥用**——这些均映射到相应的安全指南,如 **OWASP LLM Top 10**、**OWASP Agentic** 和 **MITRE ATLAS**。测试通过**浏览器自动化**(Playwright)或直接的 **HTTP API** 提交运行,因此你可以像真实用户那样评估实际的生产环境 UI 和后端聊天端点。 与静态检查清单或一次性的 ChatGPT 对话不同,Hunter 能够从安全准则中**生成与类别对齐的攻击套件**,为每个测试用例捕获 **prompt/响应证据**,运行 **AI 辅助的结果评估**(严重性 + 判断推理),并**交付报告**,提供可下载的 JSON 文件或通过 Genbounty 的安全评估导入 API 传输——这对于**漏洞赏金项目**、**渗透测试交付物**以及发布前的 **ML 安全回归测试**来说非常理想。 ## 它的功能 | 步骤 | UI 标签页 | 输出 | |------|--------|--------| | **连接目标** | Connect Target | `config.yaml`(选择器或 API 传输),可选 auth | | **生成测试** | Generate Tests | 位于 `browser-bot/sites///tests/` 下的 Suite JSON | | **构建制品** | Payloads | 通过 [`payloads/`](payloads/README.md) 生成的多模态文件(PDF、CSV、图像、音频) | | **编辑套件** | Test Management | 就地编辑类别和 prompt | | **运行测试** | Run Tests | `run_log.json` → `attack_log.json` | | **评估结果** | Finding Assessment | `pipeline_report.json`(每个 prompt 的严重性和推理) | | **提交** | Create Bug Bounty Report | 下载过滤后的 `pipeline_report.json`,或 POST 到 Genbounty | ``` connect → generate → (payloads) → run → finding assessment → create bug bounty report (JSON download or Genbounty submit) ``` **范围:**仅限可观察的黑盒行为(prompt、上传、响应)。请仅对你被授权评估的系统进行测试。 ## 适用人群 - 在 Genbounty(或类似项目)上针对 AI 聊天机器人、agent 和基于 API 的 LLM 应用进行测试的**漏洞赏金猎人**。 - 在客户预发布环境中进行结构化测试并导出证据的**白帽子/渗透测试人员**。 - 在每次发布时进行回归测试并比较不同构建版本间 `category_rollup` 的 **Appsec / MLsec** 人员。 ## 前置条件 1. 复制 [`.env.example`](.env.example) → `.env` 并设置 `GEMINI_API_KEY`(用于测试生成和结果评估)。 2. 通过 **Connect Target** 将目标注册到 `browser-bot/sites///` 下。 3. 可选:配置 `playbooks/company.json` 和 `playbooks/component.json`(或每个站点的副本),用于基于领域的攻击生成。 4. 用于 **Genbounty 提交**(可选):`GENBOUNTY_HOST`、`GENBOUNTY_API_KEY` 以及项目 `user_id`(参见 [api-security-export.md](api-security-export.md))。**导出为 JSON** 不需要平台凭证。 ## 环境要求 - Python 3.10+ - Chromium (Playwright)。首次运行时,`start.py` 会自动安装 Playwright 的 Chromium。 ### Python / `python3` 故障排除 在 Debian、Ubuntu 和 WSL 上,通常没有 `python` 命令;系统只安装了 `python3`。 | 症状 | 解决方法 | |---------|-----| | `python: command not found` | 使用 `python3` 运行命令(例如 `python3 start.py`) | | 希望在终端中使用 `python` | 在 `~/.bash_aliases` 中添加:`alias python=python3`,然后运行 `source ~/.bashrc` 或打开一个新的 shell | | `python` 在脚本/CI 中仍然缺失 | 别名仅适用于**交互式** bash;请使用 `python3`,或安装 `python-is-python3`(`sudo apt install python-is-python3`)以获得系统级的 `python` 兼容包装 | | 版本错误或过于老旧的 Python | `python3 --version`(需要 3.10+);如果手动创建环境,请使用 `python3 -m venv` | 首次运行后,`start.py` 会使用项目虚拟环境中的 Python;问题通常出在你用来引导程序的**宿主机**解释器上(`python` 还是 `python3`)。 ### 在 Ubuntu 26.04 上的 Playwright Playwright 1.60 尚未提供 `ubuntu26.04-x64` 的浏览器构建版本。在 Ubuntu 26+ 上,`start.py` 会将 `PLAYWRIGHT_HOST_PLATFORM_OVERRIDE` 设置为 Ubuntu 24.04 的构建版本,并在需要时重试安装。 | 症状 | 解决方法 | |---------|-----| | `Playwright does not support chromium on ubuntu26.04-x64` | 重新运行 `python3 start.py`(如果缺少 Chromium,会再次运行安装) | | 手动安装 | `PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=ubuntu24.04-x64 python3 -m playwright install chromium`(引导完成后请使用虚拟环境中的 `python`) | | 浏览器启动失败(缺少库) | `PLAYWRIGHT_HOST_PLATFORM_OVERRIDE=ubuntu24.04-x64 python3 -m playwright install-deps` | ## 快速开始(Web UI) ``` python start.py ``` 打开 **http://localhost:8000**。侧边栏中的工作流如下: 1. **Connect Target** - 浏览器发现或 API 探测;保存 `config.yaml`。 2. **Generate Tests** - 选择 playbook 和策略;套件将保存到组件的 `tests/` 目录树中。 3. **Run Tests** - 执行套件;提供实时的浏览器截图和结果表。 4. **Finding Assessment** - 判断严重性(`indeterminate` … `critical`);写入 `pipeline_report.json`。 5. **Create Bug Bounty Report** - 下载单个报告或批量导出(过去 1小时 / 4小时 / 24小时)为 JSON,或在配置好凭证后提交到 Genbounty。 ## 本地测试目标 ``` python test-target/app.py ``` 使用站点 `localhost:3000`,组件 `chat`(或根据你的设置选择 `main`)。详见 [test-target/README.md](test-target/README.md)。 ## 安全 Playbook Playbook 定义了类别、`exploited_if` / `mitigated_if` 触发器以及评估准则。 | Playbook | 文件 | 关注点 | |----------|------|--------| | OWASP LLM | `playbooks/owasp_llm.json` | LLM01–LLM10 | | OWASP Agent | `playbooks/owasp_agent.json` | ASI01–ASI10 | | MITRE ATLAS | `playbooks/mitre_attack.json` | ML 杀伤链战术 | | Jailbreak Core | `playbooks/jailbreak_core.json` | DAN、编码、注入、渐进式 | | System Prompt Exfil | `playbooks/system_prompt_exfil.json` | SPL01–SPL10 | | Prompt Injection | `playbooks/prompt_injection.json` | PI01–PI10 | | API Secrets / Sensitive Info | `playbooks/api_secrets_disclosure.json`、`sensitive_info_disclosure.json` | 泄露向量 | | Test (实验室) | `playbooks/test.json` | 验证 / 监控场景 | | ~~Multimodal Injection~~ | `playbooks/multimodal_injection.json` | **已弃用** - 请使用策略 `multimodal` + 安全 playbook | 可以通过特定主题生成自定义 playbook(使用 UI 中的 **+ New playbook** 或 CLI 工具 `playbook-generator`)。 ## 策略 | 策略 | 作用 | |----------|------| | `zero_shot` | 单消息攻击(检测基线) | | `multi_shot`、`few_shot`、`iterative`、`prompt_chaining` | 多轮 / 塑造压力 | | `jailbreak` | 专注于越狱的技术 | | `multimodal` | 文件上传测试(`vector_type` + payload 生成器) | | `chain_of_thought`、`tree_of_thoughts`、`self_reflection` 等 | 额外的对抗性塑造 | 默认 playbook:**`owasp_llm`**。 ## 多模态 / 文件上传测试 **多模态是一种交付方式**,而不是一个独立的分类。请将策略 `multimodal` 与任何安全 playbook 结合使用。Prompt 可以包含 `vector_type`、良性的 `prompt` 以及 `payload`(`generator`、`args`)。 ``` python scripts/apply_advanced_multimodal_suite.py --playbook owasp_llm --materialize python main.py generate --strategy multimodal --playbook owasp_llm python main.py run generate-tests/multimodal/owasp-llm.json --site HOST --component COMPONENT --assess ``` 发现过程会记录**文件上传**(`type: file` + `path_from: payload`)以及 API 模式 **`api_document`** / **`api_multipart`**。`attack_log.json` 会在适用时包含 `vector_type` 和 `artifact_path`。 ## CLI(自动化 / CI) Web UI(`python start.py`)是主要界面。仅在编写脚本时使用 `main.py` 的子命令: ``` python main.py generate --strategy zero_shot --playbook owasp_llm --site localhost:3000 --component chat python main.py run browser-bot/sites/localhost:3000/chat/tests/zero-shot/owasp-llm.json \ --site localhost:3000 --component chat --assess python main.py security-assess path/to/attack_log.json python main.py export path/to/pipeline_report.json ``` 子命令包括:`generate`、`run`、`security-assess`、`export`。发现、登录和 playbook 功能仅限 Web UI 使用。 ## 制品 | 文件 | 产生时机 | |------|------| | Suite JSON | 生成后 - 包含 `playbook`、`playbook_id`、`categories[].prompts[]` | | `run_log.json` | 原始运行记录 | | `attack_log.json` | 规范化后的评估日志 | | `pipeline_report.json` | 结果评估后 - 包含 `adversarial_results[]`,可选的 `category_rollup` | 导出时,会将 `pipeline_report.json` 映射为过滤后的 JSON 下载文件(Web UI 的 **Export as JSON**)或 Genbounty 的 **`/api/v2/security-assessments/import`** 接口请求(批量处理,默认每次 POST 25 个结果)。有关 HTTP 契约和环境变量(`GENBOUNTY_*`),请参见 [api-security-export.md](api-security-export.md)。 ## 配置 | 来源 | 用途 | |--------|---------| | [`.env`](.env) | `GEMINI_API_KEY`、`GENBOUNTY_HOST`、`GENBOUNTY_API_KEY`、`GENBOUNTY_USER_ID`、导出微调 | | [`.config`](.config) | `GEMINI_MODEL`、`GEMINI_JUDGE` | | `config.defaults.yaml` | 全局 browser-bot 默认配置 | | `browser-bot/sites///config.yaml` | 针对特定目标的选择器、API URL 及设置覆盖 | ## 项目结构 - `start.py` - 引导虚拟环境并启动 Web UI - `main.py` - 脚本 CLI(`generate`、`run`、`security-assess`、`export`);Web UI 是主要方式 - `web/` - FastAPI 后端 + SPA(AI 白帽漏洞赏金猎人 UI) - `generate-tests/` - 攻击生成(`core.py`、`strategies/`、`playbook_generator.py`) - `browser-bot/` - Playwright / API 测试运行器 - `risk-level-agent/` - Playbook 专家及用于结果评估的裁判 - `pipeline/` - `convert_log.py`、`security_assess.py`、`export_security.py`、`response_html.py` - `playbooks/` - 安全 playbook 和模板 - `payloads/` - 多模态制品生成器 - `test-target/` - 用于实验室运行的本地脆弱性助手 ## 授权声明 请仅对你获准测试的目标和项目使用此工具。该工具包会自动化执行攻击性 prompt 并导出测试结果;你需要对测试范围、速率限制和项目规则自行负责。
标签:AI安全, Chat Copilot, DLL 劫持, Playwright, 域名收集, 大语言模型, 特征检测, 红队评估, 逆向工具, 配置审计