Skip to content

A ready-to-use containerized cybersecurity lab for simulating attacks (Red Team) and defenses (Blue Team) using Caldera and Splunk.

License

Notifications You must be signed in to change notification settings

had-nu/threat-hunt-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Threat Hunt Lab

Laboratório integrado de simulação de ameaças com Splunk e MITRE Caldera

Docker Splunk MITRE Caldera Caldera Version License Project Status

Este é um ambiente Docker pré-configurado para simular ataques (Caldera) e monitorar/responder com o Splunk. Ideal para testes de Red Team/Blue Team.


Estrutura do Projeto

threat-hunt-lab/
├── .env                    # Variáveis de ambiente (senhas)
├── docker-compose.yml      # Orquestração dos serviços
├── caldera/
│   └── Dockerfile          # Build personalizado do Caldera
└── volumes/
    ├── splunk-data/        # Dados persistentes do Splunk
    └── caldera-logs/       # Logs do Caldera

Notas de atualização: 22-fev-2024 - Este é apenas um Minimum Viable Product (MVP) com uma estrutura mínima para testes. Algumas configurações adicionais (como redes personalizadas, volumes, limites de arquivos, etc.), embora úteis em um projeto maior, poderiam complicar o trabalho. Farei pequenos incrementos diários, conforme avanço com o projeto.


Começando

Pré-Requisitos

Certifique-se de ter o Docker e o Docker Compose instalados com os seguintes comandos (exemplo para Ubuntu):

  • Docker e Docker Compose instalados.
  • Portas 8000 (Splunk) e 8888 (Caldera) liberadas.

Nota: Consulte a documentação oficial do Docker para lidar com especificidades não mencionadas anteriormente.


Configuração do Laboratório

  1. Clone o repositório:
git clone https://github.com/had-nu/threat-hunt-lab.git
cd threat-hunt-lab
  1. Configure senhas no .env:
echo "SPLUNK_PASSWORD=SenhaForte123" > .env

Construção do ambiente

  1. Splunk O docker-compose.yml deste repositório já configura e baixa a imagem oficial do Splunk do Docker Hub automaticamente ao rodar os contêineres. Não é necessário nenhum passo manual antes disso.
  • Imagem utilizada: splunk/splunk:9.1.2.
  1. Caldera O MITRE Caldera não possui uma imagem oficial no Docker Hub, portanto será necessário construir a imagem localmente. Entretanto, o repositório oficial do Caldera fornece um Dockerfile que pode ser usado para essa construção.

Para construir o Caldera:

  1. Clone o repositório do Caldera e construa a imagem:
git clone --recursive --branch 5.0.0 https://github.com/mitre/caldera.git caldera
docker build ./caldera --build-arg WIN_BUILD=true -t caldera:latest
cd ..
  • Isso usa o Dockerfile oficial do Caldera.
  • O argumento --build-arg WIN_BUILD=true é opcional (inclua apenas se precisar de suporte a builds Windows no plugin Sandcat).

Rodando os Contêineres

Com a imagem do Caldera construída e o Splunk configurado via docker-compose.yml, inicie o laboratório:

  1. Suba os contêineres:
docker-compose up
  1. Verifique os logs:
  • Logs aparecem no terminal.
  • Logs persistentes ficam em ./volumes/splunk-data e ./volumes/caldera-logs.

  1. Parando o ambiente:
docker compose down  # Mantém os volumes
docker compose down -v  # Remove volumes

Solução de Problemas

  • Portas em conflito: Se necessário, altere as portas no docker-compose.yml.
  • Erros de build: Verifique se o Caldera foi clonado recursivamente.
  • Erros de permissão: Se está no Linux sem privilégios de super usuário, lembre-se de incluir o sudo.
  • Atualizar senhas: Após alterar senhas no .env lembre-se de reiniciar o serviço.

Comandos Docker essenciais

Comandos Docker Compose

  1. Iniciar os serviços em segundo plano:
docker-compose up -d # cria e inicia os containers do Splunk e Caldera em modo detached.
  1. Parar e remover containers (mantendo volumes de dados):
docker-compose down
  1. Parar e remover tudo (containers + volumes):
docker-compose down -v # dados persistentes serão apagados.
  1. Visualizar logs em tempo real:
docker-compose logs -f # para "follow".
  1. Reiniciar um serviço específico:
docker-compose restart splunk

Comandos Docker

  1. Listar containers em execução:
docker ps # exibe apenas containers ativos.
  1. Listar todos os containers (ativos e parados):
docker ps -a # mostra todos os containers, incluindo os parados.
  1. Visualizar logs de um container:
docker logs splunk-threatlab
  1. Acessar o terminal de um container:
docker exec -it splunk-threatlab /bin/bash
  1. Remover uma imagem:
docker rmi splunk/splunk:9.1.2 # remove a imagem do Splunk (após parar containers dependentes).
  1. Limpar recursos não utilizados:
docker system prune -a # remove containers, imagens e volumes não utilizados (use com cuidado).

Gerenciamento de Volumes

  1. Listar todos os volumes criados pelo Docker:
docker volume ls
  1. Inspecionar um volume:
docker volume inspect threat-hunt-lab_splunk-data

Licença

Este projeto está licenciado sob a Apache License 2.0. Consulte o arquivo LICENSE para mais detalhes.

License

About

A ready-to-use containerized cybersecurity lab for simulating attacks (Red Team) and defenses (Blue Team) using Caldera and Splunk.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published