Voltar às atualizações
New releaseJul 27, 2026

scoringengine v2.1.1

Motor de Pontuação para Competições de Equipes Vermelha/Branca/Azul

Compartilhar

Documentation Status CI Coverage Status

Scoring Engine

Scoring Engine é uma plataforma de código aberto para executar competições de cibersegurança das equipes Vermelha/Branca/Azul. Ela automatiza verificações de serviço a cada rodada e fornece um placar e interface de configuração baseados na web.

Screenshot do Scoring Engine

Funcionalidades

  • Agendamento e execução automatizados de verificações de serviço
  • Execução paralela distribuída via workers Celery e Redis
  • Interface web para visualizar pontuações e configurar serviços
  • API JSON para acesso programático a pontuações e configuração
  • 28 verificações de serviço integradas (SSH, HTTP, DNS, SMTP e mais)
  • Suporte para implantações isoladas/sem conexão
  • Modo de exemplo com dados de demonstração pré-preenchidos

Arquitetura

O Scoring Engine usa uma arquitetura distribuída com os seguintes componentes:

ComponenteTecnologiaFinalidade
Interface WebFlaskPlacar, gerenciamento de equipes, administração
Fila de TarefasCeleryAgendamento e execução distribuída de tarefas
Corretor de MensagensRedisBackend da fila de tarefas e cache
Banco de DadosMySQL/MariaDBArmazenamento persistente para equipes, serviços e resultados
Proxy ReversoNginxServidor HTTP e balanceamento de carga

Verificações de Serviço Suportadas

O Scoring Engine inclui verificações para serviços comuns prontas para uso:

CategoriaServiços
RedeICMP, DNS, NFS
WebHTTP, HTTPS, Elasticsearch, WordPress
AutenticaçãoSSH, Telnet, LDAP, WinRM
Transferência de ArquivosFTP, SMB
E-mailSMTP, SMTPS, IMAP, IMAPS, POP3, POP3S
Banco de DadosMySQL, PostgreSQL, MSSQL
Área de Trabalho RemotaRDP, VNC
VPNOpenVPN

Verificações personalizadas podem ser adicionadas criando uma classe Python em scoring_engine/checks/.

Pré-requisitos

Instalação via Docker (Recomendada)

Instalação a partir do código-fonte

Para instalar a partir do código-fonte sem Docker:

  • Python 3.10 ou superior é necessário
  • Servidor de banco de dados MariaDB/MySQL
  • Servidor Redis
# Install the package
pip install -e .

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

Início Rápido

Construa e inicie todos os serviços:

docker compose build
docker compose up

Ou use o Makefile por conveniência:

make build
make run

Após iniciar, acesse a aplicação em http://localhost.

Credenciais de Demonstração

Faça login usando qualquer uma das seguintes credenciais:

Nome de UsuárioSenhaFunção
whiteteamusertestpassEquipe Branca (Admin)
team1user1testpassEquipe Azul 1
team2user1testpassEquipe Azul 2
team2user2testpassEquipe Azul 2
redteamusertestpassEquipe Vermelha

Variáveis de Ambiente

Redefina o banco de dados antes de iniciar:

SCORINGENGINE_OVERWRITE_DB=true docker compose up

Execute com dados de exemplo (modo de demonstração):

SCORINGENGINE_EXAMPLE=true docker compose up

Ou combine ambos para uma demonstração nova:

make run-demo

Imagens Docker Pré-construídas

Imagens pré-construídas estão disponíveis nos dois registros:

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

Imagens disponíveis: base, bootstrap, engine, web, worker

Tags: latest, develop, tags de versão (ex.: v1.1.0)

Implantações Isoladas

Para competições sem acesso à 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 o Guia de Implantação Isolada para instruções detalhadas.

Desenvolvimento

Comandos do Makefile

ComandoDescrição
make buildConstruir todas as imagens Docker
make runIniciar todos os serviços
make run-demoIniciar com dados de demonstração (redefine o banco de dados)
make stopParar todos os serviços
make cleanParar serviços e remover volumes
make rebuild-newRecriação completa com banco de dados novo
make run-testsExecutar testes unitários com cobertura
make build-integrationConstruir ambiente de teste de integração
make run-integration-testsExecutar testes de integração

Executando Testes

Execute os linters e a suíte de testes antes de enviar alterações:

# 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 os arquivos: pre-commit run --all-files

Construindo a Documentação Localmente

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

Abra docs/build/html/index.html no seu navegador.

Gerenciamento de Versão

Este projeto usa versionamento semântico. Para incrementar versões:

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

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

Consulte VERSION_MANAGEMENT.md para instruções detalhadas.

Documentação

A documentação completa está disponível em https://scoringengine.readthedocs.io/en/latest/.

Licença

Lançado sob a Licença MIT.

Categorias