
Um framework baseado em microsserviços para o estudo de técnicas de Segurança de Redes e Testes de Penetração.

Docker Security Playground é uma aplicação que permite:
O fluxo de instalação sugerido para o DSP é usando uma VM Kali:
Aqui estão os passos para instalar o DSP em uma VM Kali. Siga passos semelhantes para outras distribuições Linux, mas certifique-se de instalar todos os requisitos.
sudo apt update && sudo apt install -y docker.io docker-compose nodejs npm git
Nota (problema de chave do Kali 2025).
Se você tiver o seguinte problema durante a instalação:
Fetched 34.0 kB in 1s (58.4 kB/s) Warning: Failed to fetch http://http.kali.org/kali/dists/kali-rolling/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ED65462EC8D5E4C5 Warning: Some index files failed to download. They have been ignored, or old ones used instead.Você precisa adicionar a chave ausente:
wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2025.1_all.deb sudo dpkg -i kali-archive-keyring_2025.1_all.deb rm kali-archive-keyring_2025.1_all.deb
sudo systemctl enable docker
sudo groupadd docker
sudo usermod -aG docker $USER
docker ps
Além disso, verifique se o docker compose está funcionando:
docker compose --version # ou docker-compose --version para versões mais antigas
Verifique também a instalação do npm e nodejs:
node -v
npm -v
É possível executar o DSP em um host M1 habilitando o Rosetta, mas recomendo fortemente criar uma VM Kali com UTM ou Vmware Fusion, seguir os passos de instalação anteriores e instalar o pacote binfmt-misc para executar imagens x86 em arquitetura ARM.
sudo apt install binfmt-support qemu-user-static
Reinicie a máquina.
Em seguida, use o container Tonisiigi para registrar todos os interpretadores para as diferentes arquiteturas:
docker run --privileged --rm tonistiigi/binfmt --install amd64
Verifique se as imagens docker podem ser executadas na sua máquina:
docker run --rm -it --platform linux/amd64 ubuntu uname -m
git clone https://github.com/DockerSecurityPlayground/DSP.git
cd DSP
npm install
Quando a instalação estiver concluída, você pode iniciar o DSP:
npm start
O DSP será executado em "http://localhost:18181".
Nota sobre o uso do Wireshark no Kali: sugiro usar o navegador Chromium, pois o container do Wireshark usa alguns codecs que não são suportados pelo Firefox no Kali. Você pode iniciar o Chromium apenas digitando "chromium" no terminal.
O primeiro passo será instalar todas as pastas necessárias na máquina atual.
Você também pode automatizar esta etapa de instalação usando a variável de ambiente:
export DSP_AUTOINSTALL=1 && npm start
Se você quiser usar o navegador do seu host, pode expor na interface 0.0.0.0. Se quiser expor em outra interface, altere a variável de ambiente DSP_IFACE:
export DSP_IFACE="0.0.0.0"
Agora você pode usar o DSP em interface remota.
Se algo der errado, você pode redefinir o DSP para as configurações de fábrica usando o seguinte comando:
npm run uninstall
Isso irá deletar tudo, e você pode começar o DSP a partir da etapa de instalação.
DSP_Repo contém laboratórios oficiais do DSP. Contribua com o DSP criando novos Laboratórios DSP.
Durante a instalação você pode criar um ambiente local que não tem vínculo com git, ou pode associar um repositório pessoal à aplicação. Isso é muito útil se você quiser compartilhar seu trabalho com outras pessoas. O Repositório DSP deve ter vários requisitos, então criei um Template de Repositório DSP base que você pode usar para criar seu repositório pessoal. Portanto, a maneira mais fácil de compartilhar laboratórios é a seguinte:
É importante que todas as imagens que você usa estejam disponíveis para outros usuários, então:
Se você precisar de uma "maneira privada" de compartilhar laboratórios, deve compartilhar o repositório por outros meios; no momento, não há suporte para compartilhar repositórios privados.
No DSP você pode gerenciar vários repositórios de usuários (aba Repositórios).
Se você tiver um problema, use a seção de Issues.
Para executar um teste:
mocha test/<test-nodejs-file.js>
Os testes usam o método helper.start() para inicializar o ambiente de teste:
Se você tiver o seguinte erro durante a instalação:
[2020-12-14T10:18:21.854Z] INFO: DockerSecurityPlayground/1536 on vagrant: [DOCKER ACTIONS - DOWNLOAD IMAGE]
events.js:174
throw er; // Unhandled 'error' event
^
Error: connect EACCES /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
Emitted 'error' event at:
at Socket.socketErrorListener (_http_client.js:401:9)
at Socket.emit (events.js:198:13)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
Verifique 2 coisas:
docker