
新发布Jul 27, 2026
scoringengine v2.1.1
红/白/蓝队竞赛的评分引擎
评分引擎
评分引擎是一个开源平台,用于运行红队/白队/蓝队网络安全竞赛。它能自动化每轮的服务检查,并提供基于Web的计分板与配置界面。

特性
- 自动化调度和执行服务检查
- 通过Celery worker和Redis实现分布式并行执行
- 用于查看分数和配置服务的Web界面
- 用于程序化访问分数和配置的JSON API
- 内置28种服务检查(SSH、HTTP、DNS、SMTP等)
- 支持离线/隔离网络部署
- 带预置演示数据的示例模式
架构
评分引擎采用分布式架构,包含以下组件:
| 组件 | 技术 | 用途 |
|---|---|---|
| Web UI | Flask | 计分板、团队管理、管理 |
| 任务队列 | Celery | 分布式作业调度与执行 |
| 消息代理 | Redis | 任务队列后端与缓存 |
| 数据库 | MySQL/MariaDB | 团队、服务和结果的持久化存储 |
| 反向代理 | Nginx | HTTP服务器与负载均衡 |
支持的服务检查
评分引擎自带以下常见服务的检查:
| 类别 | 服务 |
|---|---|
| 网络 | ICMP、DNS、NFS |
| Web | HTTP、HTTPS、Elasticsearch、WordPress |
| 认证 | SSH、Telnet、LDAP、WinRM |
| 文件传输 | FTP、SMB |
| 邮件 | SMTP、SMTPS、IMAP、IMAPS、POP3、POP3S |
| 数据库 | MySQL、PostgreSQL、MSSQL |
| 远程桌面 | RDP、VNC |
| VPN | OpenVPN |
可通过在scoring_engine/checks/目录下创建Python类来添加自定义检查。
前提条件
Docker 安装(推荐)
- Docker
- Docker Compose(Docker Desktop已包含;Linux上需单独安装)
- Windows用户请确保Docker Desktop已设置为使用Linux容器。
源码安装
不使用Docker从源码安装:
- 需要 Python 3.10 或更高版本
- MariaDB/MySQL数据库服务器
- Redis服务器
# 安装包
pip install -e .
# 或附带测试依赖安装
pip install -e .
pip install -r tests/requirements.txt
快速开始
构建并启动所有服务:
docker compose build
docker compose up
或者使用Makefile以方便操作:
make build
make run
运行后,访问 http://localhost 即可使用应用。
演示凭据
使用以下任一凭据登录:
| 用户名 | 密码 | 角色 |
|---|---|---|
whiteteamuser | testpass | 白队(管理员) |
team1user1 | testpass | 蓝队1 |
team2user1 | testpass | 蓝队2 |
team2user2 | testpass | 蓝队2 |
redteamuser | testpass | 红队 |
环境变量
启动前重置数据库:
SCORINGENGINE_OVERWRITE_DB=true docker compose up
使用示例数据运行(演示模式):
SCORINGENGINE_EXAMPLE=true docker compose up
或者组合两者以获得全新的演示:
make run-demo
预构建的Docker镜像
可从两个仓库获取预构建镜像:
- GitHub容器仓库:
ghcr.io/scoringengine/scoringengine/<镜像>:<标签> - Docker Hub:
scoringengine/<镜像>:<标签>
可用镜像:base、bootstrap、engine、web、worker
标签:latest、develop、版本标签(例如 v1.1.0)
离线部署
适用于无互联网连接的竞赛:
# 创建完整的部署包
./bin/create-airgapped-package.sh
# 将 scoringengine-airgapped.tar.gz 传输到离线系统
# 然后解压并部署:
tar -xzf scoringengine-airgapped.tar.gz
cd scoringengine-airgapped
./deploy.sh
详见离线部署指南。
开发
Makefile 命令
| 命令 | 描述 |
|---|---|
make build | 构建所有Docker镜像 |
make run | 启动所有服务 |
make run-demo | 使用演示数据启动(重置数据库) |
make stop | 停止所有服务 |
make clean | 停止服务并移除卷 |
make rebuild-new | 使用全新数据库完全重建 |
make run-tests | 运行单元测试并生成覆盖率 |
make build-integration | 构建集成测试环境 |
make run-integration-tests | 运行集成测试 |
运行测试
在提交更改前运行 linter 和测试套件:
# 安装 pre-commit 钩子
pip install pre-commit
pre-commit install
# 对更改的文件运行 linter
pre-commit run --files <changed-files>
# 运行所有测试
pytest tests/
# 运行测试并生成覆盖率
make run-tests
检查所有文件:pre-commit run --all-files
本地构建文档
pip install -r docs/requirements.txt
cd docs
make html
在浏览器中打开 docs/build/html/index.html。
版本管理
本项目使用语义化版本控制。要升级版本:
# 安装开发依赖
pip install -r tests/requirements.txt
# 升级版本(补丁/次要/主要)
bump-my-version bump patch
文档
完整文档请访问 https://scoringengine.readthedocs.io/en/latest/。
许可
基于 MIT License 发布。