返回更新列表
新发布Jul 27, 2026

scoringengine v2.1.1

红/白/蓝队竞赛的评分引擎

分享

Documentation Status CI Coverage Status

评分引擎

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

评分引擎截图

特性

  • 自动化调度和执行服务检查
  • 通过Celery worker和Redis实现分布式并行执行
  • 用于查看分数和配置服务的Web界面
  • 用于程序化访问分数和配置的JSON API
  • 内置28种服务检查(SSH、HTTP、DNS、SMTP等)
  • 支持离线/隔离网络部署
  • 带预置演示数据的示例模式

架构

评分引擎采用分布式架构,包含以下组件:

组件技术用途
Web UIFlask计分板、团队管理、管理
任务队列Celery分布式作业调度与执行
消息代理Redis任务队列后端与缓存
数据库MySQL/MariaDB团队、服务和结果的持久化存储
反向代理NginxHTTP服务器与负载均衡

支持的服务检查

评分引擎自带以下常见服务的检查:

类别服务
网络ICMP、DNS、NFS
WebHTTP、HTTPS、Elasticsearch、WordPress
认证SSH、Telnet、LDAP、WinRM
文件传输FTP、SMB
邮件SMTP、SMTPS、IMAP、IMAPS、POP3、POP3S
数据库MySQL、PostgreSQL、MSSQL
远程桌面RDP、VNC
VPNOpenVPN

可通过在scoring_engine/checks/目录下创建Python类来添加自定义检查。

前提条件

Docker 安装(推荐)

源码安装

不使用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 即可使用应用。

演示凭据

使用以下任一凭据登录:

用户名密码角色
whiteteamusertestpass白队(管理员)
team1user1testpass蓝队1
team2user1testpass蓝队2
team2user2testpass蓝队2
redteamusertestpass红队

环境变量

启动前重置数据库:

SCORINGENGINE_OVERWRITE_DB=true docker compose up

使用示例数据运行(演示模式):

SCORINGENGINE_EXAMPLE=true docker compose up

或者组合两者以获得全新的演示:

make run-demo

预构建的Docker镜像

可从两个仓库获取预构建镜像:

  • GitHub容器仓库ghcr.io/scoringengine/scoringengine/<镜像>:<标签>
  • Docker Hubscoringengine/<镜像>:<标签>

可用镜像:basebootstrapenginewebworker

标签:latestdevelop、版本标签(例如 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

详见 VERSION_MANAGEMENT.md

文档

完整文档请访问 https://scoringengine.readthedocs.io/en/latest/

许可

基于 MIT License 发布。

分类