Retour aux mises à jour
New releaseJul 27, 2026

scoringengine v2.1.1

Moteur de score pour les compétitions d'équipes Rouge/Blanche/Bleue

Partager

Documentation Status CI Coverage Status

Scoring Engine

Scoring Engine est une plateforme open-source pour organiser des compétitions de cybersécurité en équipes Rouge/Blanche/Bleue. Elle automatise les vérifications de services à chaque tour et fournit une interface web de tableau de scores et de configuration.

Scoring Engine screenshot

Fonctionnalités

  • Planification et exécution automatisées des vérifications de services
  • Exécution parallèle distribuée via les workers Celery et Redis
  • Interface web pour visualiser les scores et configurer les services
  • API JSON pour un accès programmatique aux scores et à la configuration
  • 28 vérifications de services intégrées (SSH, HTTP, DNS, SMTP, etc.)
  • Prise en charge des déploiements sans accès Internet (airgapped)
  • Mode exemple avec des données de démonstration pré-remplies

Architecture

Scoring Engine utilise une architecture distribuée avec les composants suivants :

ComposantTechnologieObjectif
Interface WebFlaskTableau de scores, gestion des équipes, administration
File d'attente de tâchesCeleryPlanification et exécution distribuée des travaux
Courtier de messagesRedisBackend de file d'attente et mise en cache
Base de donnéesMySQL/MariaDBStockage persistant des équipes, services et résultats
Proxy inverseNginxServeur HTTP et équilibrage de charge

Vérifications de services prises en charge

Scoring Engine inclut des vérifications pour les services courants prêts à l'emploi :

CatégorieServices
RéseauICMP, DNS, NFS
WebHTTP, HTTPS, Elasticsearch, WordPress
AuthentificationSSH, Telnet, LDAP, WinRM
Transfert de fichiersFTP, SMB
EmailSMTP, SMTPS, IMAP, IMAPS, POP3, POP3S
Base de donnéesMySQL, PostgreSQL, MSSQL
Bureau à distanceRDP, VNC
VPNOpenVPN

Des vérifications personnalisées peuvent être ajoutées en créant une classe Python dans scoring_engine/checks/.

Prérequis

Installation avec Docker (Recommandé)

  • Docker
  • Docker Compose (inclus avec Docker Desktop ; sous Linux, installer séparément)
  • Pour les utilisateurs Windows, assurez-vous que Docker Desktop est configuré pour utiliser des conteneurs Linux.

Installation depuis les sources

Pour une installation depuis les sources sans Docker :

  • Python 3.10 ou plus récent est requis
  • Serveur de base de données MariaDB/MySQL
  • Serveur Redis
# Install the package
pip install -e .

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

Démarrage rapide

Construire et démarrer tous les services :

docker compose build
docker compose up

Ou utilisez le Makefile pour plus de commodité :

make build
make run

Une fois en cours d'exécution, accédez à l'application à http://localhost.

Identifiants de démonstration

Connectez-vous en utilisant l'un des identifiants suivants :

Nom d'utilisateurMot de passeRôle
whiteteamusertestpassÉquipe Blanche (Admin)
team1user1testpassÉquipe Bleue 1
team2user1testpassÉquipe Bleue 2
team2user2testpassÉquipe Bleue 2
redteamusertestpassÉquipe Rouge

Variables d'environnement

Réinitialiser la base de données avant de démarrer :

SCORINGENGINE_OVERWRITE_DB=true docker compose up

Exécuter avec des données d'exemple (mode démo) :

SCORINGENGINE_EXAMPLE=true docker compose up

Ou combinez les deux pour une démo fraîche :

make run-demo

Images Docker pré-construites

Les images pré-construites sont disponibles depuis les deux registres :

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

Images disponibles : base, bootstrap, engine, web, worker

Étiquettes : latest, develop, étiquettes de version (ex. v1.1.0)

Déploiements sans accès Internet (airgapped)

Pour les compétitions sans accès Internet :

# 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

Consultez le Guide de déploiement airgapped pour des instructions détaillées.

Développement

Commandes Makefile

CommandeDescription
make buildConstruire toutes les images Docker
make runDémarrer tous les services
make run-demoDémarrer avec les données de démo (réinitialise la base de données)
make stopArrêter tous les services
make cleanArrêter les services et supprimer les volumes
make rebuild-newReconstruction complète avec une base de données fraîche
make run-testsExécuter les tests unitaires avec couverture
make build-integrationConstruire l'environnement de test d'intégration
make run-integration-testsExécuter les tests d'intégration

Exécution des tests

Exécutez les linters et la suite de tests avant de soumettre des modifications :

# 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

Pour vérifier tous les fichiers : pre-commit run --all-files

Construction de la documentation localement

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

Ouvrez docs/build/html/index.html dans votre navigateur.

Gestion des versions

Ce projet utilise le versionnement sémantique. Pour incrémenter les versions :

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

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

Consultez VERSION_MANAGEMENT.md pour des instructions détaillées.

Documentation

La documentation complète est disponible à https://scoringengine.readthedocs.io/en/latest/.

Licence

Publié sous Licence MIT.

Catégories