Torna agli aggiornamenti
New releaseJul 27, 2026

scoringengine v2.1.1

Motore di punteggio per competizioni Red/White/Blue Team

Condividi

Documentation Status CI Coverage Status

Scoring Engine

Scoring Engine è una piattaforma open-source per eseguire competizioni di cybersecurity con squadre Rosse/Bianche/Blu. Automatizza i controlli dei servizi a ogni round e fornisce un tabellone web e un'interfaccia di configurazione.

Scoring Engine screenshot

Caratteristiche

  • Pianificazione ed esecuzione automatiche dei controlli dei servizi
  • Esecuzione parallela distribuita tramite worker Celery e Redis
  • Interfaccia web per visualizzare i punteggi e configurare i servizi
  • API JSON per accesso programmatico a punteggi e configurazione
  • 28 controlli di servizio integrati (SSH, HTTP, DNS, SMTP e altri)
  • Supporto per distribuzioni in ambienti isolati/offline
  • Modalità esempio con dati demo pre-caricati

Architettura

Scoring Engine utilizza un'architettura distribuita con i seguenti componenti:

ComponenteTecnologiaScopo
Interfaccia WebFlaskTabellone, gestione squadre, amministrazione
Coda di lavoriCeleryPianificazione ed esecuzione distribuita dei lavori
Broker di messaggiRedisBackend della coda di lavori e caching
DatabaseMySQL/MariaDBArchiviazione persistente per squadre, servizi e risultati
Proxy inversoNginxServer HTTP e bilanciamento del carico

Controlli di Servizio Supportati

Scoring Engine include controlli per i servizi comuni pronti all'uso:

CategoriaServizi
ReteICMP, DNS, NFS
WebHTTP, HTTPS, Elasticsearch, WordPress
AutenticazioneSSH, Telnet, LDAP, WinRM
Trasferimento FileFTP, SMB
EmailSMTP, SMTPS, IMAP, IMAPS, POP3, POP3S
DatabaseMySQL, PostgreSQL, MSSQL
Desktop RemotoRDP, VNC
VPNOpenVPN

Controlli personalizzati possono essere aggiunti creando una classe Python in scoring_engine/checks/.

Prerequisiti

Installazione con Docker (Consigliata)

  • Docker
  • Docker Compose (incluso in Docker Desktop; su Linux installalo separatamente)
  • Per utenti Windows, assicurati che Docker Desktop sia impostato per utilizzare contenitori Linux.

Installazione dai Sorgenti

Per installare dai sorgenti senza Docker:

  • È richiesto Python 3.10 o superiore
  • Server database MariaDB/MySQL
  • Server Redis
# Install the package
pip install -e .

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

Avvio Rapido

Costruisci e avvia tutti i servizi:

docker compose build
docker compose up

Oppure usa il Makefile per comodità:

make build
make run

Una volta in esecuzione, accedi all'applicazione all'indirizzo http://localhost.

Credenziali Demo

Accedi utilizzando una delle seguenti credenziali:

Nome utentePasswordRuolo
whiteteamusertestpassWhite Team (Amministratore)
team1user1testpassBlue Team 1
team2user1testpassBlue Team 2
team2user2testpassBlue Team 2
redteamusertestpassRed Team

Variabili d'Ambiente

Resetta il database prima di avviare:

SCORINGENGINE_OVERWRITE_DB=true docker compose up

Esegui con dati di esempio (modalità demo):

SCORINGENGINE_EXAMPLE=true docker compose up

Oppure combina entrambi per una demo fresca:

make run-demo

Immagini Docker Pre-costruite

Immagini pre-costruite sono disponibili da entrambi i registry:

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

Immagini disponibili: base, bootstrap, engine, web, worker

Tags: latest, develop, tag di versione (es., v1.1.0)

Distribuzioni in Ambienti Isolati

Per competizioni senza accesso a 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

Vedi la Guida alla Distribuzione in Ambienti Isolati per istruzioni dettagliate.

Sviluppo

Comandi del Makefile

ComandoDescrizione
make buildCostruisci tutte le immagini Docker
make runAvvia tutti i servizi
make run-demoAvvia con dati demo (resetta il database)
make stopFerma tutti i servizi
make cleanFerma i servizi e rimuovi i volumi
make rebuild-newRicostruzione completa con database fresco
make run-testsEsegui test unitari con copertura
make build-integrationCostruisci ambiente di test di integrazione
make run-integration-testsEsegui test di integrazione

Esecuzione dei Test

Esegui i linter e la suite di test prima di inviare modifiche:

# 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

Per controllare tutti i file: pre-commit run --all-files

Costruire la Documentazione Localmente

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

Apri docs/build/html/index.html nel tuo browser.

Gestione delle Versioni

Questo progetto utilizza il versionamento semantico. Per incrementare le versioni:

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

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

Vedi VERSION_MANAGEMENT.md per istruzioni dettagliate.

Documentazione

La documentazione completa è disponibile su https://scoringengine.readthedocs.io/en/latest/.

Licenza

Rilasciato sotto la Licenza MIT.

Categorie