アップデート一覧に戻る
New releaseJul 27, 2026

scoringengine v2.1.1

レッド/ホワイト/ブルーチーム競技用スコアリングエンジン

共有

Documentation Status CI Coverage Status

Scoring Engine

Scoring Engineは、Red/White/Blueチームのサイバーセキュリティ競技を運営するためのオープンソースプラットフォームです。ラウンドごとにサービスチェックを自動化し、Webベースのスコアボードと設定インターフェースを提供します。

Scoring Engine screenshot

機能

  • サービスチェックの自動スケジューリングと実行
  • CeleryワーカーとRedisによる分散並列実行
  • スコア表示とサービス設定のためのWebインターフェース
  • スコアと設定へのプログラムによるアクセスのためのJSON API
  • 28の組み込みサービスチェック(SSH、HTTP、DNS、SMTPなど)
  • エアギャップ/オフライン環境への展開をサポート
  • 事前入力されたデモデータを使用したサンプルモード

アーキテクチャ

Scoring Engineは、以下のコンポーネントで構成される分散アーキテクチャを採用しています。

コンポーネントテクノロジー目的
Web UIFlaskスコアボード、チーム管理、管理
Task QueueCelery分散ジョブスケジューリングと実行
Message BrokerRedisタスクキューのバックエンドとキャッシュ
DatabaseMySQL/MariaDBチーム、サービス、結果の永続ストレージ
Reverse ProxyNginxHTTPサーバーとロードバランシング

サポートされているサービスチェック

Scoring Engineには、標準で一般的なサービスのチェックが含まれています。

カテゴリサービス
ネットワーク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 Container Registry: ghcr.io/scoringengine/scoringengine/<image>:<tag>
  • Docker Hub: scoringengine/<image>:<tag>

利用可能なイメージ: 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統合テストを実行

テストの実行

変更を送信する前にリンターとテストスイートを実行:

# pre-commitフックをインストール
pip install pre-commit
pre-commit install

# 変更されたファイルに対してリンターを実行
pre-commit run --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

# バージョンを上げる(patch/minor/major)
bump-my-version bump patch

詳細な手順はVERSION_MANAGEMENT.mdを参照してください。

ドキュメント

完全なドキュメントはhttps://scoringengine.readthedocs.io/en/latest/で入手可能です。

ライセンス

MITライセンスの下で公開されています。

カテゴリ