Volver a actualizaciones
Nuevo releaseJul 27, 2026

scoringengine v2.1.1

Motor de puntuación para competiciones de equipos Rojo/Blanco/Azul

Compartir

Documentation Status CI Coverage Status

Scoring Engine

Scoring Engine es una plataforma de código abierto para ejecutar competiciones de ciberseguridad de equipos Rojo/Blanco/Azul. Automatiza las comprobaciones de servicios en cada ronda y proporciona un marcador basado en web y una interfaz de configuración.

Scoring Engine screenshot

Características

  • Programación y ejecución automatizadas de comprobaciones de servicios
  • Ejecución paralela distribuida mediante workers de Celery y Redis
  • Interfaz web para ver puntuaciones y configurar servicios
  • API JSON para acceso programático a puntuaciones y configuración
  • 28 comprobaciones de servicios integradas (SSH, HTTP, DNS, SMTP y más)
  • Soporte para despliegues aislados/sin conexión
  • Modo de ejemplo con datos de demostración precargados

Arquitectura

Scoring Engine utiliza una arquitectura distribuida con los siguientes componentes:

ComponenteTecnologíaPropósito
Interfaz webFlaskMarcador, gestión de equipos, administración
Cola de tareasCeleryProgramación y ejecución distribuidas de trabajos
Broker de mensajesRedisBackend de cola de tareas y almacenamiento en caché
Base de datosMySQL/MariaDBAlmacenamiento persistente para equipos, servicios y resultados
Proxy inversoNginxServidor HTTP y balanceo de carga

Comprobaciones de Servicios Compatibles

Scoring Engine incluye comprobaciones para servicios comunes de serie:

CategoríaServicios
RedICMP, DNS, NFS
WebHTTP, HTTPS, Elasticsearch, WordPress
AutenticaciónSSH, Telnet, LDAP, WinRM
Transferencia de archivosFTP, SMB
CorreoSMTP, SMTPS, IMAP, IMAPS, POP3, POP3S
Base de datosMySQL, PostgreSQL, MSSQL
Escritorio remotoRDP, VNC
VPNOpenVPN

Se pueden añadir comprobaciones personalizadas creando una clase de Python en scoring_engine/checks/.

Prerrequisitos

Instalación con Docker (Recomendada)

Instalación desde el código fuente

Para instalar desde el código fuente sin Docker:

  • Se requiere Python 3.10 o superior
  • Servidor de base de datos MariaDB/MySQL
  • Servidor Redis
# Install the package
pip install -e .

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

Inicio Rápido

Construir e iniciar todos los servicios:

docker compose build
docker compose up

O utilice el Makefile por comodidad:

make build
make run

Una vez en ejecución, acceda a la aplicación en http://localhost.

Credenciales de Demostración

Inicie sesión con cualquiera de las siguientes credenciales:

UsuarioContraseñaRol
whiteteamusertestpassEquipo Blanco (Admin)
team1user1testpassEquipo Azul 1
team2user1testpassEquipo Azul 2
team2user2testpassEquipo Azul 2
redteamusertestpassEquipo Rojo

Variables de Entorno

Reiniciar la base de datos antes de iniciar:

SCORINGENGINE_OVERWRITE_DB=true docker compose up

Ejecutar con datos de ejemplo (modo demo):

SCORINGENGINE_EXAMPLE=true docker compose up

O combinar ambos para una demo nueva:

make run-demo

Imágenes Docker Preconstruidas

Las imágenes preconstruidas están disponibles en ambos registros:

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

Imágenes disponibles: base, bootstrap, engine, web, worker

Etiquetas: latest, develop, etiquetas de versión (p. ej., v1.1.0)

Despliegues Aislados

Para competiciones sin acceso 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

Consulte la Guía de Despliegue Aislado para obtener instrucciones detalladas.

Desarrollo

Comandos del Makefile

ComandoDescripción
make buildConstruir todas las imágenes Docker
make runIniciar todos los servicios
make run-demoIniciar con datos de demo (reinicia la base de datos)
make stopDetener todos los servicios
make cleanDetener servicios y eliminar volúmenes
make rebuild-newReconstrucción completa con base de datos nueva
make run-testsEjecutar pruebas unitarias con cobertura
make build-integrationConstruir entorno de pruebas de integración
make run-integration-testsEjecutar pruebas de integración

Ejecutar Pruebas

Ejecute los linters y el conjunto de pruebas antes de enviar cambios:

# 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

Para verificar todos los archivos: pre-commit run --all-files

Construir Documentación Localmente

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

Abra docs/build/html/index.html en su navegador.

Gestión de Versiones

Este proyecto utiliza versionado semántico. Para incrementar versiones:

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

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

Consulte VERSION_MANAGEMENT.md para obtener instrucciones detalladas.

Documentación

La documentación completa está disponible en https://scoringengine.readthedocs.io/en/latest/.

Licencia

Publicado bajo la Licencia MIT.

Categorías