Bukenkere24/Zero-Trust-Runtime-Threat-Simulation-Platform

GitHub: Bukenkere24/Zero-Trust-Runtime-Threat-Simulation-Platform

一个沙盒化的红蓝对抗安全模拟平台,AI攻击者自动探测漏洞应用,规则引擎实时防御,并通过仪表盘可视化对抗过程和生成安全指标报告。

Stars: 1 | Forks: 0

# 零信任运行时威胁模拟平台 一个独立、沙盒化的红蓝对抗安全模拟系统。AI 驱动的攻击者代理会探测一个故意设计为存在漏洞的 Web 应用,同时基于规则的防御引擎会实时检测并阻止攻击。实时仪表盘会可视化展示这场对抗,并生成包含 MTTD、MTTR 以及由 LLM 生成的摘要的最终记分卡。 ## 架构 ``` ┌─────────────┐ attacks ┌─────────────┐ │ attacker- │ ───────────────► │ target-app │ (port 5000) │ agent │ │ (victim) │ │ (port 5002)│ └──────┬──────┘ └──────┬──────┘ │ access.log │ attack_log.json ▼ │ ┌─────────────┐ │ │ defense- │ (port 5001) │ │ engine │ │ └──────┬──────┘ │ │ alerts, blocklist ▼ ▼ ┌─────────────┐ ◄── polls every 2s ──────────────┐ │ dashboard │ │ │ (port 5173) │ │ └─────────────┘ │ ``` ### 服务 | 服务 | 端口 | 角色 | |---------|------|------| | **target-app** | 5000 | 存在漏洞的 Flask 应用,包含登录功能 + `/api/users` | | **defense-engine** | 5001 | 尾随日志,检测攻击,封禁 IP | | **attacker-agent** | 5002 | AI 红队代理 + 触发 API | | **dashboard** | 5173 | 实时对抗视图 + 模拟报告 | ### 共享数据(Docker volume `shared-data`) - `access.log` — 来自 target-app 的 JSONL 请求日志 - `alerts.log` — JSONL 防御警报 - `blocklist.json` — 被封禁的 IP 及时间戳 - `attack_log.json` — LLM 决策与攻击结果 有关确切的 schema,请参阅 [CONTRACTS.md](./CONTRACTS.md)。 ## 快速开始 ### 前置条件 - Docker & Docker Compose - 无需 API Key — 该代理自带免费且内置的策略引擎 ### 运行完整模拟 ``` docker-compose up --build ``` 就是这么简单 — 无需 Key,零成本。攻击者代理通过一个 本地启发式“大脑”来决定其行动(见下文)。LLM 是完全可选的;如果您 希望启用它,只需在 `.env` 文件中设置 `USE_LLM=1` 和 `ANTHROPIC_API_KEY`。 打开 **http://localhost:5173** 并点击 **Start Simulation**。 ### 本地开发(不使用 Docker) **终端 1 — 目标应用:** ``` cd target-app && pip install -r requirements.txt && python app.py ``` **终端 2 — 防御引擎:** ``` cd defense-engine && pip install -r requirements.txt && python engine.py ``` **终端 3 — 攻击者代理:** ``` cd attacker-agent && pip install -r requirements.txt set TARGET_URL=http://localhost:5000 python api.py ``` **终端 4 — 仪表盘:** ``` cd dashboard && npm install && npm run dev ``` ## 攻击者代理 ### 决策大脑 (`agent.py`) 该代理使用 **免费的启发式策略引擎** 来决定下一步运行哪种攻击 — 无需 API Key,零成本。它会: 1. 遵循升级顺序(隐蔽 → 喧闹):`sql_injection_login` → `credential_stuffing` → `brute_force_login` → `api_flood`。 2. 绝不重复运行已被防御机制封禁的攻击。 3. 绝不重复运行已经彻底失败的攻击。 4. 当所有攻击都被穷尽后,重新探测被封锁的攻击,以测试 封禁是否仍在执行。 每个决策及其人类可读的推理过程都会被记录到 `attack_log.json` 中,因此 无论“大脑”是启发式还是 LLM,数据集看起来都是一样的。 **可选的 LLM 升级:** 设置 `USE_LLM=1` 和 `ANTHROPIC_API_KEY` 即可让 Claude 来选择攻击。任何错误(Key 无效、无网络、速率限制)都会静默 回退到启发式引擎,因此模拟运行绝不会因为 LLM 而失败。 ### 攻击库 (`attacks.py`) | 函数 | 描述 | |----------|-------------| | `brute_force_login` | 尝试针对 admin 使用常见密码 | | `sql_injection_login` | 针对登录表单的 SQLi payload | | `api_flood` | 对 `/api/users` 发起密集的 GET 请求 | | `credential_stuffing` | 常见的用户名/密码对 | ### 安全护栏 (`safety.py`) 每个出站请求都会通过硬编码的 allowlist 进行验证: - `localhost`, `127.0.0.1`, `target-app` - 对任何其他主机的请求都会被**拒绝** ### API endpoint | Endpoint | Method | 描述 | |----------|--------|-------------| | `/start` | POST | 启动攻击循环(后台线程) | | `/status` | GET | 查看运行是否处于活动状态 | | `/attack_log` | GET | 当前攻击日志 | | `/summarize` | POST | 记分卡摘要(免费启发式;可选 LLM) | ## 仪表盘 - **Start Simulation** — 触发 attacker-agent 的 `/start` - **实时信息流** — 每 2 秒轮询一次攻击日志和防御警报 - **对抗视图** — 带有时间戳的红蓝两栏对抗展示 - **模拟报告** — 运行完成后出现(MTTD、MTTR、自动生成的摘要) ## 研究 / 论文数据 所有四个日志文件均带有时间戳,格式为 JSON/JSONL,可用于计算: - 按类型划分的攻击成功率 - 平均检测时间 (MTTD) - 平均修复时间 (MTTR) - 误报率 - 攻击策略演变 (`attack_log.json`) ## 项目结构 ``` ├── CONTRACTS.md # Shared API/log schemas ├── docker-compose.yml # One-command startup ├── target-app/ # Vulnerable victim app ├── defense-engine/ # Blue-team log monitor ├── attacker-agent/ # Red-team AI agent (Avaneesh) │ ├── attacks.py # Attack function library │ ├── agent.py # Heuristic decision engine (LLM optional) │ ├── safety.py # Host allowlist guardrails │ ├── api.py # Flask trigger API │ └── stub_target.py # Local stub for Day 1 testing └── dashboard/ # React live dashboard (Avaneesh) ``` ## 许可证 专为教育和研究目的而构建。切勿在沙盒之外部署 target-app。
标签:版权保护, 请求拦截, 逆向工具