
Ein auf Microservices basierendes Framework für das Studium von Netzwerksicherheit und Penetrationstest-Techniken.

Docker Security Playground ist eine Anwendung, die Folgendes ermöglicht:
Der empfohlene Installationsablauf für DSP ist die Verwendung einer Kali-VM:
Hier die Schritte zur Installation von DSP auf einer Kali-VM. Befolgen Sie ähnliche Schritte für andere Linux-Distributionen, stellen Sie jedoch sicher, dass alle Anforderungen installiert sind.
sudo apt update && sudo apt install -y docker.io docker-compose nodejs npm git
Hinweis (Kali-Keyring-Problem 2025).
Falls während der Installation folgendes Problem auftritt:
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.Fügen Sie den fehlenden Schlüssel hinzu:
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
Überprüfen Sie auch, ob Docker Compose funktioniert:
docker compose --version # oder docker-compose --version für ältere Versionen
Überprüfen Sie außerdem die npm- und Node.js-Installation:
node -v
npm -v
Es ist möglich, DSP auf einem M1-Host mit Rosetta auszuführen, aber ich empfehle dringend, eine Kali-VM mit UTM oder VMware Fusion zu erstellen, die vorherigen Installationsschritte zu befolgen und das Paket binfmt-misc zu installieren, um x86-Images auf der ARM-Architektur auszuführen.
sudo apt install binfmt-support qemu-user-static
Starten Sie die Maschine neu.
Verwenden Sie dann den Tonisiigi-Container, um alle Interpreter für die verschiedenen Architekturen zu registrieren:
docker run --privileged --rm tonistiigi/binfmt --install amd64
Überprüfen Sie, ob Docker-Images auf Ihrer Maschine laufen:
docker run --rm -it --platform linux/amd64 ubuntu uname -m
git clone https://github.com/DockerSecurityPlayground/DSP.git
cd DSP
npm install
Wenn die Installation abgeschlossen ist, können Sie DSP starten:
npm start
DSP wird unter „http://localhost:18181" laufen.
Hinweis zur Verwendung von Wireshark auf Kali: Ich empfehle die Verwendung des Chromium-Browsers, da der Wireshark-Container einige Codecs verwendet, die von Firefox auf Kali nicht unterstützt werden. Sie können Chromium starten, indem Sie einfach „chromium" im Terminal eingeben.
Der erste Schritt wird sein, alle erforderlichen Ordner auf der aktuellen Maschine zu installieren.
Sie können diesen Installationsschritt auch automatisieren, indem Sie die Umgebungsvariable verwenden:
export DSP_AUTOINSTALL=1 && npm start
Wenn Sie Ihren Host-Browser verwenden möchten, können Sie DSP auf der 0.0.0.0-Schnittstelle verfügbar machen.
Wenn Sie eine andere Schnittstelle verwenden möchten, ändern Sie die Umgebungsvariable DSP_IFACE:
export DSP_IFACE="0.0.0.0"
Jetzt können Sie DSP über eine entfernte Schnittstelle nutzen.
Wenn etwas schiefgeht, können Sie DSP mit dem folgenden Befehl auf die Werkseinstellungen zurücksetzen:
npm run uninstall
Dies löscht alles und Sie können DSP ab dem Installationsschritt erneut starten.
DSP_Repo enthält offizielle DSP-Labs. Tragen Sie zu DSP bei, indem Sie neue DSP-Labs erstellen.
Während der Installation können Sie eine lokale Umgebung erstellen, die keine Verbindung zu Git hat, oder Sie können ein persönliches Repository mit der Anwendung verknüpfen. Dies ist sehr nützlich, wenn Sie Ihre Arbeit mit anderen teilen möchten. Ein DSP-Repository muss bestimmte Anforderungen erfüllen. Daher habe ich eine DSP-Repository-Vorlage erstellt, die Sie verwenden können, um Ihr persönliches Repository zu erstellen. Der einfachste Weg, Labs zu teilen, ist daher der folgende:
Es ist wichtig, dass alle von Ihnen verwendeten Images für andere Benutzer verfügbar sind. Daher:
.docker-images-Verzeichnis bereitstellen, sodass Benutzer build.sh verwenden können, um Ihre Images zu bauen und Ihr Repository zu nutzen.Wenn Sie eine „private Möglichkeit" zum Teilen von Labs benötigen, sollten Sie das Repository auf andere Weise teilen. Derzeit wird das Teilen privater Repositories nicht unterstützt.
In DSP können Sie mehrere Benutzer-Repositories verwalten (Tab „Repositories").
Wenn Sie ein Problem haben, nutzen Sie den Issue-Bereich.
Um einen Test auszuführen:
mocha test/<test-nodejs-file.js>
Tests verwenden die Methode helper.start(), um die Testumgebung zu initialisieren:
Falls während der Installation folgender Fehler auftritt:
[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)
Überprüfen Sie zwei Dinge:
docker.Testen Sie es mit:
docker ps
VERWENDEN SIE KEIN SUDO, wenn Sie DSP mit einem normalen Benutzer ausführen. Falls folgender Fehler auftritt:
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
Müssen Sie Ihren Benutzer zur Gruppe docker hinzufügen:
https://docs.docker.com/engine/install/linux-postinstall/
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
Melden Sie sich ab und wieder an. Setzen Sie nun DSP zurück:
npm run uninstall
Danach sollte alles funktionieren.
MacOS ECONNRESET-Fehler:
events.js:183
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at _errnoException (util.js:992:11)
at TCP.onread (net.js:618:25)
Auf dem Mac scheint es ein Problem mit einem Node-Paket zu geben. Führen Sie Folgendes aus, um das Problem zu beheben:
MacBook-Pro:DockerSecurityPlayground gaetanoperrone$ npm install [email protected] --save-dev --save-exact
Weitere Informationen hier: 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-featureNutzen Sie die Issues , um alles zu fragen, was Sie möchten!
Dank an Giuseppe Criscuolo und Alessandro Placido Luise für das Logo-Design.
Gehen Sie zu CHANGELOG.md, um alle Versionsänderungen zu sehen.
Wenn Sie Docker Security Playground für Ihre Forschungstätigkeit verwenden, zitieren Sie das folgende, von der IEEE (Institute of Electrical and Electronics Engineers) veröffentlichte Paper: 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}}
Dieses Projekt steht unter der MIT-Lizenz.
![]() gx1 🐛 💻 🖋 🎨 📖 🚧 📆 | ![]() Simon Pietro Romano 🎨 📖 📆 | ![]() catuhub 🐛 💻 🎨 📖 🚧 📆 | ![]() Giuseppe Di Terlizzi 💻 | ![]() Alessandro 📖 📹 🖋 | ![]() Roberto 💻 🖋 🚇 | ![]() the-licato 🚇 |
![]() Gabriele Previtera 💻 📢 |