
ネットワークセキュリティとペネトレーションテスト技術の研究のためのマイクロサービスベースのフレームワーク

Docker Security Playground は、以下のことを可能にするアプリケーションです:
DSP の推奨インストール手順は、Kali VM を使用する方法です:
以下は、Kali VM に DSP をインストールする手順です。他の Linux ディストリビューションの場合は、同様の手順に従ってください。ただし、すべての要件がインストールされていることを確認してください。
sudo apt update && sudo apt install -y docker.io docker-compose nodejs npm git
注意(Kali キーリングの問題 2025)
インストール中に以下の問題が発生した場合:
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.不足しているキーを追加する必要があります:
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
また、docker compose が動作することを確認します:
docker compose --version # または古いバージョンの場合は docker-compose --version
さらに、npm と nodejs のインストールを確認します:
node -v
npm -v
Rosetta を有効にすることでホスト M1 上で DSP を実行することは可能ですが、UTM または VMware Fusion で Kali VM を作成し、前述のインストール手順に従い、ARM アーキテクチャ上で x86 イメージを実行するために binfmt-misc パッケージをインストールすることを強くお勧めします。
sudo apt install binfmt-support qemu-user-static
マシンを再起動します。
次に、Tonisiigi コンテナを使用して、異なるアーキテクチャ用のすべてのインタプリタを登録します:
docker run --privileged --rm tonistiigi/binfmt --install amd64
Docker イメージがマシン上で実行できることを確認します:
docker run --rm -it --platform linux/amd64 ubuntu uname -m
git clone https://github.com/DockerSecurityPlayground/DSP.git
cd DSP
npm install
インストールが完了したら、DSP を起動します:
npm start
DSP は "http://localhost:18181" で実行されます。
Kali で Wireshark を使用する際の注意:chromium ブラウザの使用をお勧めします。wireshark コンテナは Kali の Firefox でサポートされていないコーデックを使用するためです。ターミナルで "chromium" と入力するだけで起動できます。
最初のステップとして、現在のマシンに必要なフォルダがすべてインストールされます。
このインストール手順は、環境変数を使用して自動化することもできます:
export DSP_AUTOINSTALL=1 && npm start
ホストのブラウザを使用したい場合は、0.0.0.0 インターフェースで公開できます。 別のインターフェースで公開する場合は、DSP_IFACE 環境変数を変更します:
export DSP_IFACE="0.0.0.0"
これで、リモートインターフェース上で DSP を使用できます。
問題が発生した場合、以下のコマンドで DSP を工場出荷時状態にリセットできます:
npm run uninstall
これによりすべてが削除され、インストール手順から DSP を再開できます。
DSP_Repo には公式の DSP ラボが含まれています。新しい DSP ラボを作成して DSP に貢献してください。
インストール時に、Git とリンクしないローカル環境を作成するか、アプリケーションに個人リポジトリを関連付けることができます。これは自分の作業を他の人と共有したい場合に非常に便利です。 DSP リポジトリにはいくつかの要件があるため、個人リポジトリを作成するためのベースとなる DSP リポジトリテンプレートを作成しました。 ラボを共有する最も簡単な方法は以下の通りです:
使用するすべてのイメージは他のユーザーが利用できるようにする必要があります。そのため:
プライベートな方法でラボを共有する必要がある場合は、他の方法でリポジトリを共有する必要があります。現時点では、プライベートリポジトリの共有はサポートされていません。
DSP では複数のユーザーリポジトリを管理できます(「リポジトリ」タブ)
問題がある場合は、Issue セクションを使用してください。
テストを実行するには:
mocha test/<test-nodejs-file.js>
テストでは、helper.start() メソッドを使用してテスト環境を初期化します:
インストール中に以下のエラーが発生した場合:
[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)
以下の 2 点を確認してください:
docker グループに属していること確認方法:
docker ps
通常ユーザーで DSP を実行している場合は sudo を使用しないでください。 以下のエラーが発生した場合:
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
ユーザーを docker グループに追加する必要があります: https://docs.docker.com/engine/install/linux-postinstall/
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
ログアウトしてログインし直します。 次に DSP をクリーンアップします:
npm run uninstall
これで正常に動作するはずです。
macOS の ECONNRESET エラー:
events.js:183
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at _errnoException (util.js:992:11)
at TCP.onread (net.js:618:25)
Mac では一部の Node パッケージに問題があるようです。解決するには以下を実行してください:
MacBook-Pro:DockerSecurityPlayground gaetanoperrone$ npm install [email protected] --save-dev --save-exact
詳細はこちら: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-featureお気軽に Issues をご利用ください。
Giuseppe Criscuolo と Alessandro Placido Luise によるロゴデザインに感謝します。
すべてのバージョン変更については CHANGELOG.md を参照してください。
研究活動で Docker Security Playground を使用する場合は、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}}
このプロジェクトは MIT ライセンス の下で提供されています。
![]() gx1 🐛 💻 🖋 🎨 📖 🚧 📆 | ![]() Simon Pietro Romano 🎨 📖 📆 | ![]() catuhub 🐛 💻 🎨 📖 🚧 📆 | ![]() Giuseppe Di Terlizzi 💻 | ![]() Alessandro 📖 📹 🖋 | ![]() Roberto 💻 🖋 🚇 | ![]() the-licato 🚇 |
![]() Gabriele Previtera 💻 📢 |