Zurück zu den Updates
New releaseJul 27, 2026

scoringengine v2.1.1

Bewertungs-Engine für Rot/Weiß/Blau-Team-Wettbewerbe

Teilen

Documentation Status CI Coverage Status

Scoring Engine

Scoring Engine ist eine Open-Source-Plattform zur Durchführung von Red/White/Blue-Team-Cybersicherheitswettbewerben. Es automatisiert Dienstprüfungen in jeder Runde und bietet eine webbasierte Punkteanzeige und Konfigurationsoberfläche.

Screenshot von Scoring Engine

Funktionen

  • Automatisierte Planung und Ausführung von Dienstprüfungen
  • Verteiltes paralleles Ausführen über Celery-Worker und Redis
  • Weboberfläche zur Anzeige von Punkten und Konfiguration von Diensten
  • JSON-API für programmatischen Zugriff auf Punkte und Konfiguration
  • 28 integrierte Dienstprüfungen (SSH, HTTP, DNS, SMTP und mehr)
  • Unterstützung für Luftspalt-/Offline-Bereitstellungen
  • Beispielmodus mit vorab gefüllten Demodaten

Architektur

Scoring Engine verwendet eine verteilte Architektur mit den folgenden Komponenten:

KomponenteTechnologieZweck
Web-UIFlaskPunkteanzeige, Teamverwaltung, Administration
AufgabenwarteschlangeCeleryVerteiltes Job-Scheduling und -Ausführung
NachrichtenbrokerRedisBackend für Aufgabenwarteschlange und Caching
DatenbankMySQL/MariaDBPersistenter Speicher für Teams, Dienste und Ergebnisse
Reverse ProxyNginxHTTP-Server und Lastverteilung

Unterstützte Dienstprüfungen

Scoring Engine enthält von Haus aus Prüfungen für gängige Dienste:

KategorieDienste
NetzwerkICMP, DNS, NFS
WebHTTP, HTTPS, Elasticsearch, WordPress
AuthentifizierungSSH, Telnet, LDAP, WinRM
DateiübertragungFTP, SMB
E-MailSMTP, SMTPS, IMAP, IMAPS, POP3, POP3S
DatenbankMySQL, PostgreSQL, MSSQL
Remote-DesktopRDP, VNC
VPNOpenVPN

Benutzerdefinierte Prüfungen können durch Erstellen einer Python-Klasse in scoring_engine/checks/ hinzugefügt werden.

Voraussetzungen

Docker-Installation (Empfohlen)

Installation aus dem Quellcode

Für die Installation aus dem Quellcode ohne Docker:

  • Python 3.10 oder höher ist erforderlich
  • MariaDB/MySQL-Datenbankserver
  • Redis-Server
# Install the package
pip install -e .

# Or install with test dependencies
pip install -e .
pip install -r tests/requirements.txt

Schnellstart

Alle Dienste erstellen und starten:

docker compose build
docker compose up

Oder verwenden Sie das Makefile der Einfachheit halber:

make build
make run

Sobald die Anwendung läuft, rufen Sie sie auf http://localhost auf.

Demo-Anmeldedaten

Melden Sie sich mit einem der folgenden Anmeldedaten an:

BenutzernamePasswortRolle
whiteteamusertestpassWeißes Team (Administrator)
team1user1testpassBlaues Team 1
team2user1testpassBlaues Team 2
team2user2testpassBlaues Team 2
redteamusertestpassRotes Team

Umgebungsvariablen

Setzen Sie die Datenbank vor dem Start zurück:

SCORINGENGINE_OVERWRITE_DB=true docker compose up

Starten Sie mit Beispieldaten (Demomodus):

SCORINGENGINE_EXAMPLE=true docker compose up

Oder kombinieren Sie beides für eine frische Demo:

make run-demo

Vorgefertigte Docker-Images

Vorgefertigte Images sind in beiden Registries verfügbar:

  • GitHub Container Registry: ghcr.io/scoringengine/scoringengine/<image>:<tag>
  • Docker Hub: scoringengine/<image>:<tag>

Verfügbare Images: base, bootstrap, engine, web, worker

Tags: latest, develop, Version-Tags (z.B. v1.1.0)

Luftspalt-Bereitstellungen

Für Wettbewerbe ohne Internetzugang:

# Create a complete deployment package
./bin/create-airgapped-package.sh

# Transfer scoringengine-airgapped.tar.gz to the airgapped system
# Then extract and deploy:
tar -xzf scoringengine-airgapped.tar.gz
cd scoringengine-airgapped
./deploy.sh

Ausführliche Anweisungen finden Sie im Leitfaden für Luftspalt-Bereitstellungen.

Entwicklung

Makefile-Befehle

BefehlBeschreibung
make buildAlle Docker-Images erstellen
make runAlle Dienste starten
make run-demoMit Demodaten starten (Datenbank zurücksetzen)
make stopAlle Dienste anhalten
make cleanDienste anhalten und Volumes entfernen
make rebuild-newVollständiger Neubau mit frischer Datenbank
make run-testsUnit-Tests mit Abdeckung ausführen
make build-integrationIntegrationstest-Umgebung erstellen
make run-integration-testsIntegrationstests ausführen

Tests ausführen

Führen Sie vor dem Einreichen von Änderungen die Linter und die Testsammlung aus:

# Install pre-commit hooks
pip install pre-commit
pre-commit install

# Run linters on changed files
pre-commit run --files <changed-files>

# Run all tests
pytest tests/

# Run tests with coverage
make run-tests

Um alle Dateien zu überprüfen: pre-commit run --all-files

Dokumentation lokal erstellen

pip install -r docs/requirements.txt
cd docs
make html

Öffnen Sie docs/build/html/index.html in Ihrem Browser.

Versionsverwaltung

Dieses Projekt verwendet semantische Versionierung. So erhöhen Sie die Version:

# Install development dependencies
pip install -r tests/requirements.txt

# Bump version (patch/minor/major)
bump-my-version bump patch

Ausführliche Anweisungen finden Sie in VERSION_MANAGEMENT.md.

Dokumentation

Die vollständige Dokumentation ist verfügbar unter https://scoringengine.readthedocs.io/en/latest/.

Lizenz

Veröffentlicht unter der MIT-Lizenz.

Kategorien