Siddforeal/Blackhole_AI
GitHub: Siddforeal/Blackhole_AI
一款人机协同的 AI 辅助安全研究工作台,用于授权漏洞发现、端点情报分析和结构化证据收集,强调范围控制与人工审批。
Stars: 0 | Forks: 0
# Blackhole AI Workbench
[](https://github.com/Siddforeal/bugintel-ai-workbench/actions/workflows/tests.yml)
Blackhole AI Workbench 是一个人机协同的安全研究工作台,用于授权漏洞发现、端点情报、响应分析和结构化证据收集。
当前版本:0.11.0
## 研究目标
本项目探索用于现代 Web 和 API 安全研究的 AI 辅助漏洞发现和 Bug 情报工作流。
长期目标是支持范围控制的测试、端点挖掘、基于任务树的研究工作流、安全的 Kali 命令规划、受控执行、响应分析、证据存储、秘密脱敏和报告生成。
## 已实现功能
- 用于授权测试边界的 Scope Guard
- CLI 命令
- 针对 JavaScript、日志、HAR 样式文本和 Burp 样式导出的端点挖掘器
- 安全的 curl 规划器
- 带有明确批准的受控 curl 执行
- HTTP 响应解析器
- Secret 和电子邮件脱敏器
- 结构化证据存储
- 响应差异分析器
- 研究任务树构建器
- 用于链接、脚本、表单和端点的被动 HTML 分析
- 受 Scope Guard 保护的网站页面获取器
- JavaScript 源代码收集器
- 带有端点合并和编排的网站模式流水线
- 用于浏览器/DevTools 导出的 HAR 流量导入器
- 用于捕获的浏览器流量的 HAR 到编排工作流
- Android 清单/配置分析器
- Android 权限、组件、导出组件、深度链接和端点提取
- iOS plist/配置分析器
- iOS Bundle ID、URL scheme、关联域、ATS、主机和端点提取
- 针对 Chromium、Chrome 和 Firefox 工作流的浏览器动作规划器
- 浏览器网络捕获、屏幕截图和 HTML 提取规划
- 单元测试
- GitHub Actions CI
## 计划功能
- Playwright 浏览器流量捕获
- HAR 和 Burp 导入器
- AI 规划层
- Markdown 报告生成器
- 发现严重性评分
- 重复发现检测
- Android APK 静态分析
- iOS IPA/plist 分析
- 仪表盘 UI
## 安全模型
Blackhole AI Workbench 专为授权安全测试而设计。
每个具备网络功能的模块在执行前都应通过 Scope Guard。
Scope Guard 会验证允许的域名、允许的协议、允许的 HTTP 方法、禁止的路径模式以及人工批准要求。
run-curl 命令在执行前需要明确的批准。
## 道德使用
仅在您自己的系统、本地实验室、CTF 环境、明确授权的漏洞赏金计划或书面范围的渗透测试中使用此项目。
请勿将此项目用于未经授权的扫描、利用、凭据攻击、拒绝服务活动、隐蔽、规避或破坏性测试。
## 许可证
MIT 许可证。
## 研究规划器工作流
Blackhole 包含一个确定性的研究规划器,可将现有的浏览器证据转化为结构化的假设和建议。
示例:
```
bugintel plan-research /tmp/browser-evidence-sample.json --json-output /tmp/research-plan.json --markdown-output /tmp/research-plan.md
```
该规划器不调用 LLM,不执行命令,也不发出网络请求。它仅分析现有证据。
示例输出类别包括:
```
api-authorization
object-authorization
sensitive-surface-review
error-handling
browser-evidence-review
```
将输出用作手动研究指南。在将其视为发现之前,请通过已授权且在范围内的测试确认每个假设。
### 安全的 LLM 提示包
Blackhole 可以将确定性的研究计划转换为可审查的 LLM 提示包:
```
bugintel build-llm-prompt /tmp/research-plan.json --json-output /tmp/llm-prompt.json --markdown-output /tmp/llm-prompt.md
```
此命令不调用 LLM 提供商,不读取 API 密钥,不发出网络请求,也不执行命令。它仅创建一个经过脱敏处理的系统/用户提示包,供人工审查。
将此包作为通往未来 LLM 提供商的可选桥梁。将任何未来的 LLM 输出仅视为建议,而不是已确认的发现。
### LLM 提示安全审计
Blackhole 可以在提供商使用之前,在本地对提示包进行审计:
```
bugintel audit-llm-prompt /tmp/llm-prompt.json --json-output /tmp/llm-prompt-audit.json --markdown-output /tmp/llm-prompt-audit.md
```
该审计完全在本地进行。它会扫描常见的敏感值和危险的提示指令,然后返回 `pass`、`review` 或 `blocked`。
当前的检查包括:
```
emails
JWT-like tokens
bearer tokens
API-key-like assignments
passwords/secrets/tokens
AWS access key IDs
prompt-injection style instructions
safety-bypass instructions
credential theft or destructive-action instructions
```
### 优先级感知编排
Blackhole 编排现在在生成的计划和终端输出中包含了端点优先级评分。
示例:
```
blackhole orchestrate endpoints.txt --target demo --json-output /tmp/orchestration.json
```
编排输出包括:
- 任务树扩展
- 专家代理分配
- 端点优先级得分
- 评分带,例如 critical、high、medium、low 和 info
- 每个端点的最高得分信号
这有助于在任何主动测试之前确定高价值端点的优先级。
优先级感知编排仍仅限于规划。它不会发送请求、执行 shell 命令、启动浏览器、调用 LLM 提供商、修改目标或绕过授权。
### 端点优先级评分
Blackhole 可以使用仅用于规划的安全启发式算法对单个端点进行评分:
```
blackhole endpoint-priority "/api/accounts/123/users/{id}/permissions" --json-output /tmp/endpoint-priority.json
```
Blackhole 还可以对文本文件中的端点清单进行排序:
```
blackhole prioritize-endpoints endpoints.txt --json-output /tmp/prioritized-endpoints.json
```
优先级评分有助于将手动研究集中在外观更具安全敏感性的端点上。
信号包括:
- 授权敏感路由
- 对象引用
- 文件上传/下载面
- 认证/会话流
- 计费/支付/发票路由
- 集成/Webhooks/OAuth 回调
- Token/Key/Secret 路由
- 低信号公共/静态/状态路由
此命令仅用于规划。它不会发送请求、执行 shell 命令、启动浏览器、调用 LLM 提供商、修改目标或绕过授权。
### 端点调查配置文件
Blackhole 可以将单个端点扩展为仅用于规划的调查配置文件:
```
blackhole endpoint-investigation "/api/accounts/123/users/{id}/permissions" --json-output /tmp/endpoint-profile.json
```
该命令对端点进行分类,并为专家代理创建可审查的任务计划。
示例任务类别包括:
- 基线和方法策略审查
- 参数和模式审查
- 授权边界规划
- 租户隔离审查
- 对象引用变更规划
- 文件表面安全审查
- 认证流审查
- 证据和报告清单
此命令不会发送请求、执行 shell 命令、启动浏览器、调用 LLM 提供商、修改目标或绕过授权。
### 已禁用的 LLM 提供商存根
Blackhole 包含一个默认禁用的提供商存根:
```
bugintel run-llm-provider /tmp/llm-prompt.json --json-output /tmp/llm-provider-result.json
```
当前的提供商不调用 OpenAI、Anthropic、本地模型或任何网络 API。它返回一个结构化的禁用结果,以便将来可以在显式选择加入门控之后添加提供商集成。
### UFO 启动介绍
Blackhole 包含一个可选的终端 UFO 启动屏幕:
```
bugintel intro
```
不带命令运行 `bugintel` 也会显示 UFO 加载屏幕。正常命令保持独立,应用于脚本化工作流。
## 浏览器证据工作流
Blackhole v0.11.0 包含一个安全的浏览器自动化基础。
安装可选的 Playwright 支持:
```
pip install -e ".[browser]"
```
然后,当您准备好在本地运行真实的 Playwright 时,请安装浏览器二进制文件:
```
python -m playwright install chromium
```
当前的浏览器工作流:
1. 使用 Scope Guard 规划浏览器动作。
2. 在执行前审查计划。
3. 将未来的浏览器/Playwright 捕获输出保存为脱敏证据。
4. 从保存的证据生成 Markdown 报告。
示例:
```
bugintel plan-browser examples/target.example.yaml https://demo.example.com/dashboard --browser chromium
bugintel save-browser-capture examples/browser_capture_result.example.json
```
`save-browser-capture` 命令通过证据模型存储浏览器捕获输出。它对敏感预览进行脱敏,并存储响应体和 HTML 快照的哈希值。
保存证据后,从保存的 JSON 路径生成报告:
```
bugintel generate-report data/evidence/demo-lab/.json --output reports/browser-evidence-report.md
```
浏览器执行本身仍是未来的步骤。当前的实现提供了规划、捕获结果规范化、脱敏证据存储和报告渲染。
### Playwright 执行预览
v0.11.0 基础添加了一个安全的 Playwright 执行预览命令。它不会启动浏览器。它验证范围,检查可选的 Playwright 包是否可用,并写入一个 JSON 预览,稍后可以馈送到执行/证据工作流。
示例:
```
bugintel preview-playwright examples/target.example.yaml https://demo.example.com/dashboard --browser chromium --json-output reports/playwright-preview.json
```
该预览默认保持实时执行禁用。
### Playwright 执行安全门控
Blackhole 现在包含一个安全门控的 `execute_playwright_plan()` 骨架,用于未来的实时浏览器执行。
该骨架尚未启动浏览器。它会阻止执行,除非:
1. 浏览器计划已获得 Scope Guard 的批准。
2. 在人工批准后显式设置了 `allow_live_execution=True`。
3. 可选的 Playwright Python 包可用。
如果任何门控未通过,执行将引发 `PlaywrightExecutionSafetyError`。
您可以从 CLI 执行安全门控:
```
bugintel execute-playwright-plan examples/target.example.yaml https://demo.example.com/dashboard
```
默认情况下,此命令会因安全消息而阻止。传递 `--allow-live-execution` 仅通过显式选择加入门控;该命令在实现真正的 Playwright 执行之前仍不会启动浏览器。
当安全门控通过时,该命令还可以写入捕获结果交接 JSON:
```
bugintel execute-playwright-plan examples/target.example.yaml https://demo.example.com/dashboard --allow-live-execution --json-output reports/playwright-capture-result.json
```
默认情况下,这仍将通过适配器存根进行路由。要选择加入真正的 Playwright 适配器路由,请显式传递两个门控:
```
bugintel execute-playwright-plan examples/target.example.yaml https://demo.example.com/dashboard --allow-live-execution --use-real-adapter --json-output reports/playwright-capture-result.json
```
真正的适配器路由需要:
1. Scope Guard 批准。
2. `--allow-live-execution`。
3. `--use-real-adapter`。
4. 安装并导入可选的 Playwright Python 包。
可以针对临时的 `127.0.0.1` HTTP 服务器运行安全的本地冒烟测试。使用仅允许 `http://127.0.0.1` 的本地范围文件,然后运行:
```
bugintel execute-playwright-plan /tmp/bugintel-local-scope.yaml http://127.0.0.1:8765/dashboard.html --task-name "local real adapter smoke" --allow-live-execution --use-real-adapter --json-output /tmp/bugintel-real-playwright-success.json
```
预期的成功本地结果:
```
status: completed
loaded_network_events: >= 1
loaded_screenshots: 1
loaded_html_snapshots: 1
```
安全交接链为:
```
bugintel execute-playwright-plan examples/target.example.yaml https://demo.example.com/dashboard --allow-live-execution --json-output reports/playwright-capture-result.json
bugintel save-browser-capture reports/playwright-capture-result.json
bugintel generate-report data/evidence/demo-lab/.json --output reports/playwright-browser-report.md
```
这在实时浏览器执行实现之前验证了证据/报告流水线。
### Playwright 执行请求模型
Blackhole 还具有一个用于未来 Playwright 作业的预执行请求模型。
Playwright 请求在执行前记录目标、任务、起始 URL、浏览器类型、配置、计划动作和工件路径。
工件规划器准备未来的路径,例如:
```
artifacts/browser///screenshot.png
artifacts/browser///page.html
artifacts/browser///network.json
artifacts/browser///trace.zip
```
创建此请求不会创建文件,也不会启动浏览器。
您可以从 CLI 创建请求 JSON:
```
bugintel build-playwright-request examples/target.example.yaml https://demo.example.com/dashboard --task-name "Capture Dashboard" --json-output reports/playwright-request.json
```
这会在实时浏览器执行实现之前创建一个可审查的 Playwright 请求。
一个安全的示例请求包含在:
```
examples/playwright_request.example.json
```
此文件仅是示例请求的形状。它不是浏览器证据,也不意味着启动了浏览器。
您可以预览已保存的请求 JSON:
```
bugintel preview-playwright-request examples/playwright_request.example.json --json-output reports/playwright-request-preview.json
```
这会读取 Playwright 请求并生成执行预览,而无需启动浏览器。
您还可以通过执行安全门控传递已保存的请求:
```
bugintel execute-playwright-request examples/playwright_request.example.json examples/target.example.yaml
```
这将根据范围重新检查已保存的请求,然后由于实时执行被禁用而默认阻止。
要通过真正的 Playwright 适配器路由已保存的请求,必须传递两个选择加入标志:
```
bugintel execute-playwright-request examples/playwright_request.example.json examples/target.example.yaml --allow-live-execution --use-real-adapter
```
要测试未来的交接路径:
```
bugintel execute-playwright-request examples/playwright_request.example.json examples/target.example.yaml --allow-live-execution --json-output reports/playwright-request-capture-result.json
```
在当前的骨架中,这仍然不会启动浏览器。当安全门控通过时,它仅到达安全的 `not_implemented` 交接路径。
### 浏览器工件加载
Blackhole 可以从保存的 Playwright 请求中加载计划好的浏览器工件,并将它们转换为浏览器捕获结果 JSON。
预期的工件路径来自请求 JSON:
```
artifacts/browser///network.json
artifacts/browser///page.html
artifacts/browser///screenshot.png
```
示例:
```
bugintel load-browser-artifacts examples/playwright_request.example.json --json-output reports/browser-capture-result.json
```
然后将捕获结果保存为脱敏证据:
```
bugintel save-browser-capture reports/browser-capture-result.json
```
此命令不会启动浏览器。它仅读取已存在的工件文件。
### Playwright 适配器上下文
Blackhole 现在拥有一个内部的 Playwright 适配器上下文。
适配器上下文将请求和计划好的工件路径携带到浏览器适配器中。
默认情况下,它不会创建文件。它可以选择仅创建工件目录,但仍然不会启动浏览器、捕获网络流量、保存屏幕截图、保存 HTML 或创建跟踪。
### Playwright 适配器存根运行器
Blackhole 现在拥有一个用于未来 Playwright 适配器的存根运行器。
适配器存根返回 `status: not_implemented` 作为浏览器捕获结果。
它证明适配器可以将结果交接成证据流水线的形状,但它仍然不会启动浏览器、捕获网络流量、保存屏幕截图、保存 HTML 或创建跟踪。
标签:AI安全, Android安全, API安全, Bug情报, Chat Copilot, ChatGPT, CISA项目, DLL 劫持, HAR解析, iOS安全, JSON输出, Promptflow, Python, SOC工具, Web安全, 人工智能辅助, 人机协同, 代码生成, 反取证, 大语言模型, 安全研究工作台, 安全评估, 密码管理, 授权测试, 插件系统, 数据脱敏, 无后门, 渗透测试工具, 漏洞发现, 特征检测, 移动安全分析, 端点情报, 端点挖掘, 网络安全, 蓝队分析, 逆向工具, 隐私保护