
scoringengine v2.1.1
Bewertungs-Engine für Rot/Weiß/Blau-Team-Wettbewerbe
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.

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:
| Komponente | Technologie | Zweck |
|---|---|---|
| Web-UI | Flask | Punkteanzeige, Teamverwaltung, Administration |
| Aufgabenwarteschlange | Celery | Verteiltes Job-Scheduling und -Ausführung |
| Nachrichtenbroker | Redis | Backend für Aufgabenwarteschlange und Caching |
| Datenbank | MySQL/MariaDB | Persistenter Speicher für Teams, Dienste und Ergebnisse |
| Reverse Proxy | Nginx | HTTP-Server und Lastverteilung |
Unterstützte Dienstprüfungen
Scoring Engine enthält von Haus aus Prüfungen für gängige Dienste:
| Kategorie | Dienste |
|---|---|
| Netzwerk | ICMP, DNS, NFS |
| Web | HTTP, HTTPS, Elasticsearch, WordPress |
| Authentifizierung | SSH, Telnet, LDAP, WinRM |
| Dateiübertragung | FTP, SMB |
| SMTP, SMTPS, IMAP, IMAPS, POP3, POP3S | |
| Datenbank | MySQL, PostgreSQL, MSSQL |
| Remote-Desktop | RDP, VNC |
| VPN | OpenVPN |
Benutzerdefinierte Prüfungen können durch Erstellen einer Python-Klasse in scoring_engine/checks/ hinzugefügt werden.
Voraussetzungen
Docker-Installation (Empfohlen)
- Docker
- Docker Compose (im Docker Desktop enthalten; unter Linux separat installieren)
- Für Windows-Benutzer: Stellen Sie sicher, dass Docker Desktop auf Linux-Container verwenden eingestellt ist.
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:
| Benutzername | Passwort | Rolle |
|---|---|---|
whiteteamuser | testpass | Weißes Team (Administrator) |
team1user1 | testpass | Blaues Team 1 |
team2user1 | testpass | Blaues Team 2 |
team2user2 | testpass | Blaues Team 2 |
redteamuser | testpass | Rotes 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
| Befehl | Beschreibung |
|---|---|
make build | Alle Docker-Images erstellen |
make run | Alle Dienste starten |
make run-demo | Mit Demodaten starten (Datenbank zurücksetzen) |
make stop | Alle Dienste anhalten |
make clean | Dienste anhalten und Volumes entfernen |
make rebuild-new | Vollständiger Neubau mit frischer Datenbank |
make run-tests | Unit-Tests mit Abdeckung ausführen |
make build-integration | Integrationstest-Umgebung erstellen |
make run-integration-tests | Integrationstests 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.