
Un framework basé sur les microservices pour l'étude de la sécurité réseau et des techniques de test d'intrusion.

Docker Security Playground est une application qui vous permet de :
Le flux de travail d'installation recommandé pour DSP consiste à utiliser une VM Kali :
Voici les étapes pour installer DSP sur une VM Kali. Suivez des étapes similaires pour les autres distributions Linux, mais assurez-vous d'installer toutes les dépendances.
sudo apt update && sudo apt install -y docker.io docker-compose nodejs npm git
Note (problème de clé Kali 2025).
Si vous rencontrez le problème suivant lors de l'installation :
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.Vous devez ajouter la clé manquante :
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
Vérifiez également que docker compose fonctionne :
docker compose --version # ou docker-compose --version pour les versions plus anciennes
Vérifiez aussi l'installation de npm et nodejs :
node -v
npm -v
Il est possible d'exécuter DSP sur un hôte M1 en activant Rosetta, mais je recommande vivement de créer une VM Kali avec UTM ou VMware Fusion, de suivre les étapes d'installation précédentes et d'installer le paquet binfmt-misc pour exécuter les images x86 sur l'architecture ARM.
sudo apt install binfmt-support qemu-user-static
Redémarrez la machine.
Ensuite, utilisez le conteneur Tonisiigi pour enregistrer tous les interpréteurs pour les différentes architectures :
docker run --privileged --rm tonistiigi/binfmt --install amd64
Vérifiez que les images docker peuvent s'exécuter sur votre machine :
docker run --rm -it --platform linux/amd64 ubuntu uname -m
git clone https://github.com/DockerSecurityPlayground/DSP.git
cd DSP
npm install
Une fois l'installation terminée, vous pouvez démarrer DSP :
npm start
DSP fonctionnera sur "http://localhost:18181".
Note pour l'utilisation de Wireshark sur Kali : je suggère d'utiliser le navigateur Chromium, car le conteneur Wireshark utilise des codecs qui ne sont pas pris en charge par Firefox sur Kali. Vous pouvez lancer Chromium en tapant simplement "chromium" dans le terminal.
La première étape consistera à installer tous les dossiers nécessaires sur la machine actuelle.
Vous pouvez également automatiser cette étape d'installation en utilisant la variable d'environnement
export DSP_AUTOINSTALL=1 && npm start
Si vous souhaitez utiliser le navigateur de votre hôte, vous pouvez exposer sur l'interface 0.0.0.0. Si vous souhaitez exposer sur une autre interface, modifiez la variable d'environnement DSP_IFACE :
export DSP_IFACE="0.0.0.0"
Vous pouvez maintenant utiliser DSP sur une interface distante.
Si quelque chose ne va pas, vous pouvez réinitialiser DSP aux paramètres d'usine en utilisant la commande suivante :
npm run uninstall
Cela supprimera tout, et vous pourrez recommencer l'installation depuis le début.
DSP_Repo contient les laboratoires officiels DSP. Contribuez à DSP en créant de nouveaux laboratoires DSP.
Lors de l'installation, vous pouvez créer un environnement local qui n'a pas de lien avec git, ou vous pouvez associer un dépôt personnel à l'application. C'est très utile si vous souhaitez partager votre travail avec d'autres personnes. Le dépôt DSP doit remplir plusieurs conditions, j'ai donc créé un modèle de dépôt DSP de base que vous pouvez utiliser pour créer votre dépôt personnel. Ainsi, le moyen le plus simple de partager des laboratoires est le suivant :
Il est important que toutes les images que vous utilisez soient disponibles pour les autres utilisateurs, donc :
Si vous avez besoin d'un "moyen privé" de partager des laboratoires, vous devez partager le dépôt par d'autres moyens ; actuellement, il n'y a pas de support pour partager des dépôts privés.
Dans DSP, vous pouvez gérer plusieurs dépôts utilisateur (onglet Dépôts).
Si vous avez un problème, vous pouvez utiliser la section Issues.
Pour exécuter un test :
mocha test/<test-nodejs-file.js>
les tests utilisent la méthode helper.start() pour initialiser l'environnement de test :
Si vous rencontrez l'erreur suivante pendant l'installation :
[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)
Vérifiez 2 choses :
dockerPour le tester :
docker ps
N'UTILISEZ PAS SUDO si vous exécutez DSP avec un utilisateur normal. Si vous rencontrez l'erreur suivante :
vagrant@vagrant:~/git/DockerSecurityPlayground$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json: dial unix /var/run/docker.sock: connect: permission denied
Vous devez ajouter votre utilisateur au groupe docker : https://docs.docker.com/engine/install/linux-postinstall/
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
Déconnectez-vous et reconnectez-vous. Maintenant, vous devez nettoyer DSP :
npm run uninstall
Et tout devrait fonctionner.
Erreur ECONNRESET sur MacOS :
events.js:183
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at _errnoException (util.js:992:11)
at TCP.onread (net.js:618:25)
Sur Mac, il semble y avoir un problème avec certains paquets node ; pour résoudre cela, exécutez :
MacBook-Pro:DockerSecurityPlayground gaetanoperrone$ npm install [email protected] --save-dev --save-exact
Autres informations ici : http://gitlab.comics.unina.it/NS-Thesis/DockerSecurityPlayground_1/wikis/docker-operation-errors
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-featureUtilisez la section Issues pour poser toutes vos questions !
Merci à Giuseppe Criscuolo et Alessandro Placido Luise pour la conception du logo.
Consultez CHANGELOG.md pour voir tous les changements de version.
Si vous utilisez Docker Security Playground pour votre activité de recherche, citez l'article suivant publié par l'IEEE (Institute of Electrical and Electronics Engineers) https://ieeexplore.ieee.org/document/8169747
@INPROCEEDINGS{8169747,
author={Perrone, G. and Romano, S. P.},
booktitle={2017 Principles, Systems and Applications of IP Telecommunications (IPTComm)},
title={The Docker Security Playground: A hands-on approach to the study of network security},
year={2017},
volume={},
number={},
pages={1-8},
keywords={Security;Communication networks;Tools;Containers;Virtualization;Standards},
doi={10.1109/IPTCOMM.2017.8169747}}
Ce projet est sous la licence MIT.
![]() gx1 🐛 💻 🖋 🎨 📖 🚧 📆 | ![]() Simon Pietro Romano 🎨 📖 📆 | ![]() catuhub 🐛 💻 🎨 📖 🚧 📆 | ![]() Giuseppe Di Terlizzi 💻 | ![]() Alessandro 📖 📹 🖋 | ![]() Roberto 💻 🖋 🚇 | ![]() the-licato 🚇 |
![]() Gabriele Previtera 💻 📢 |