Aymwvn/BrovanaRange
GitHub: Aymwvn/BrovanaRange
一个基于 Docker 的开源网络安全靶场平台,提供按用户隔离的攻击性安全训练实验室,并集成 IDS 监控、强认证与反作弊机制。
Stars: 0 | Forks: 0
# Brovana 范围




## 演示

## 什么是 BrovanaRange?
BrovanaRange 是一个开源的网络安全靶场平台,允许用户启动隔离的、容器化的实验室来练习攻击性安全技术——包括 Web 漏洞利用、权限提升和数字取证——同时每一个操作都会被真实的 IDS 技术栈(Suricata + Zeek)监控。它的架构像生产级平台,而不是一个玩具:支持带 MFA 的 JWT 认证、RBAC、速率限制、审计日志,以及一个可以检测 flag 共享和自动化解题的反作弊系统。
## 主要功能
- 🔒 **按用户隔离的实验室环境** — 每个会话都运行在独立的 Docker 容器中,配有专用网络、自动过期机制和资源限制
- 🛡️ **真实的 IDS/网络监控** — 部署 Suricata + Zeek 来检查实验室流量,提供 EVE JSON 日志记录和自定义检测规则
- 🔑 **强化的身份验证** — JWT + 轮换刷新 token,Argon2 密码哈希,TOTP MFA,邮件 OTP,账户锁定
- 🚦 **反作弊系统** — 检测快速解题爆发、IP 复用以及跨用户 flag 共享
- 📊 **全面的可观测性** — 审计日志、Prometheus metrics endpoint,以及用于监控会话/容器/反作弊事件的管理员仪表板
- 🌐 **网络隔离** — 为 frontend/DMZ、backend、database 以及按用户划分的实验室提供独立的 Docker 网络,所有这些都位于带有 TLS 的 Nginx 反向代理之后
## 架构

流量通过 Nginx(TLS 终止)流入隔离的 Docker 网络——frontend/DMZ、backend/internal、database 以及按用户划分的实验室网络之间都是相互隔离的。每个实验室会话的流量都会被镜像到 Suricata 和 Zeek 以进行实时检测,警报和日志会反馈到后端,用于管理员仪表板和审计追踪。
## 技术栈
| 层级 | 技术 |
|---|---|
| Frontend | React |
| Backend | FastAPI |
| Database | PostgreSQL |
| 容器化 | Docker, Docker Compose |
| 反向代理 | Nginx (TLS 终止) |
| IDS / 监控 | Suricata, Zeek |
| 认证 | JWT, Argon2, TOTP MFA |
| Metrics | 兼容 Prometheus 的 `/metrics` |
## 安全架构
BrovanaRange 在每一层都采用了纵深防御的设计方法:
完整的安全架构说明:[`docs/SECURITY.md`](docs/SECURITY.md)
## 快速开始
```
git clone https://github.com/Aymwvn/BrovanaRange.git
cd BrovanaRange
cp .env.example .env
# 在启动前使用你自己的 secrets 编辑 .env
docker-compose up --build
```
Frontend 将在 `https://localhost` 提供(首次运行时使用自签名证书)。
## 项目结构
```
BrovanaRange/
├── backend/ # FastAPI app (auth, labs, API)
├── frontend/ # React dashboard
├── ids/ # Suricata + Zeek configs/rules
├── docs/
│ ├── SECURITY.md # Full security architecture doc
│ └── screenshots/
├── docker-compose.yml
├── .env.example
├── LICENSE
└── README.md
```
## 路线图
- [ ] 自动 IPS 阻断(目前为被动 IDS)
- [ ] SIEM 集成 + 集中式日志仪表板
- [ ] 部署 WAF
- [ ] Kubernetes 网络策略 / 云安全组
- [ ] 为实验室提供 Firecracker/Kata microVM 隔离
- [ ] 为生产环境部署受信任的公共 TLS 证书
## 许可证
MIT — 查看 [LICENSE](LICENSE)
## 作者
**Aymane Boualam** — [github.com/Aymwvn](https://github.com/Aymwvn)
网络安全
- 通过 Nginx 实现的 HTTPS/TLS,HTTP→HTTPS 重定向 - Backend、frontend 和 database 端口从不对外公开 - Docker 网络隔离:独立的 frontend/DMZ、backend、database 以及按用户划分的实验室网络 - 带有默认拒绝入站策略的 UFW 防火墙 - 通过 Nmap 扫描验证攻击面容器安全
- 为每个用户的每个实验室会话提供隔离的 Docker 容器 - 自动过期的会话及自动清理机制 - `no-new-privileges`,默认丢弃 Linux capabilities - 对每个容器强制执行 CPU/RAM/PID 限制 - 支持 gVisor (runsc) 沙箱;仅在权限提升实验室需要时才使用 `runc` - 没有将宿主机文件夹挂载到实验室容器中;Docker socket 从不直接挂载到 backend 中身份验证与授权
- JWT access token + 轮换 refresh token,支持 logout/logout-all 会话撤销 - Argon2 密码哈希(支持传统的 bcrypt 验证) - 支持 TOTP MFA 和邮件 OTP 挑战 - 多次登录失败后触发账户锁定 - 基于角色的访问控制 (RBAC),管理员 API 受角色限制 - 会话/终端所有权验证——用户无法触碰彼此的实验室速率限制与防滥用
- 对登录、注册、启动实验室和提交 flag 实施速率限制 - 缓解暴力破解、自动化 flag 猜测和资源耗尽攻击反作弊系统
- 检测快速解题爆发、可疑的 IP 复用以及跨用户 flag 复用 - flag 是动态的且基于会话生成,在验证前进行哈希处理,在存储时进行脱敏 - 用于查看反作弊事件的管理员仪表板IDS 与网络监控
- Suricata 部署在 Docker 中,通过 EVE JSON + fast.log 警报监控实验室网络流量 - 自定义检测规则(ICMP,HTTPS 流量) - Zeek 生成连接、DNS、DHCP 和异常日志监控与可观测性
- 完整的审计日志:身份验证事件、实验室生命周期、flag 提交、管理员操作 - 兼容 Prometheus 的 `/metrics` endpoint - 用于会话、容器和审计日志的管理员仪表板标签:CISA项目, Docker, Metaprompt, Web报告查看器, 安全训练, 安全防御评估, 测试用例, 版权保护, 网络安全, 网络靶场, 自定义请求头, 请求拦截, 隐私保护