
scoringengine v2.1.1
Motor de Pontuação para Competições de Equipes Vermelha/Branca/Azul
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.

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:
| Componente | Tecnologia | Finalidade |
|---|---|---|
| Interface Web | Flask | Placar, gerenciamento de equipes, administração |
| Fila de Tarefas | Celery | Agendamento e execução distribuída de tarefas |
| Corretor de Mensagens | Redis | Backend da fila de tarefas e cache |
| Banco de Dados | MySQL/MariaDB | Armazenamento persistente para equipes, serviços e resultados |
| Proxy Reverso | Nginx | Servidor HTTP e balanceamento de carga |
Verificações de Serviço Suportadas
O Scoring Engine inclui verificações para serviços comuns prontas para uso:
| Categoria | Serviços |
|---|---|
| Rede | ICMP, DNS, NFS |
| Web | HTTP, HTTPS, Elasticsearch, WordPress |
| Autenticação | SSH, Telnet, LDAP, WinRM |
| Transferência de Arquivos | FTP, SMB |
| SMTP, SMTPS, IMAP, IMAPS, POP3, POP3S | |
| Banco de Dados | MySQL, PostgreSQL, MSSQL |
| Área de Trabalho Remota | RDP, VNC |
| VPN | OpenVPN |
Verificações personalizadas podem ser adicionadas criando uma classe Python em scoring_engine/checks/.
Pré-requisitos
Instalação via Docker (Recomendada)
- Docker
- Docker Compose (incluído no Docker Desktop; no Linux instale separadamente)
- Para usuários do Windows, certifique-se de que o Docker Desktop esteja configurado para usar contêineres Linux.
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ário | Senha | Função |
|---|---|---|
whiteteamuser | testpass | Equipe Branca (Admin) |
team1user1 | testpass | Equipe Azul 1 |
team2user1 | testpass | Equipe Azul 2 |
team2user2 | testpass | Equipe Azul 2 |
redteamuser | testpass | Equipe 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
| Comando | Descrição |
|---|---|
make build | Construir todas as imagens Docker |
make run | Iniciar todos os serviços |
make run-demo | Iniciar com dados de demonstração (redefine o banco de dados) |
make stop | Parar todos os serviços |
make clean | Parar serviços e remover volumes |
make rebuild-new | Recriação completa com banco de dados novo |
make run-tests | Executar testes unitários com cobertura |
make build-integration | Construir ambiente de teste de integração |
make run-integration-tests | Executar 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.