CTFやセキュリティトレーニングをOWASP Juice Shopで実施するのは通常かなり難しいものです。Juice Shopは同時に複数のユーザーが使用することを想定していません。各自のマシンでJuice Shopを起動する方法を全員に指示するのも一応機能しますが、貴重な時間を大幅に奪ってしまいます。
MultiJuicerを使用すると、中央のKubernetesクラスタ上で各参加者に個別のJuice Shopインスタンスを実行でき、ローカルにJuice Shopインスタンスを用意することなくイベントを開催できます。
機能:
アーキテクチャと個々のコンポーネントの詳細については、アーキテクチャドキュメントを参照してください。
👉 MultiJuicerを初めて使う方は? 参加者の登録方法、JuiceShopインスタンスの入手方法、スコアボードでのスコア追跡方法については、ビジュアルウォークスルーをご覧ください。
MultiJuicerはKubernetes上で動作します。インストールにはhelmが必要です。
helm install multi-juicer oci://ghcr.io/juice-shop/multi-juicer/helm/multi-juicer
本番イベントでMultiJuicerを使用する前に設定が必要と思われる値のチェックリストについては、プロダクションノートを参照してください。
JuiceShop v20+のAI/LLM関連チャレンジをサポートするMultiJuicerのセットアップについては、AI/LLM設定ガイドを参照してください。
一般的にMultiJuicerはほとんどすべてのKubernetesクラスタで動作しますが、Kubernetesに不慣れな方のために、いくつかの特定のクラウドプロバイダ向けにKubernetesクラスタをセットアップしMultiJuicerをインストールするガイドを用意しています。
スタックのセットアップ方法にはいくつかのオプションがあり、JuiceShopインスタンスを好みに合わせてカスタマイズするオプションがあります。デフォルトの設定値は helm/multi-juicer/values.yaml にあります。
ファイルをダウンロードして保存し、以下のコマンドを実行してhelmにデフォルトの代わりにあなたの設定ファイルを使用するように指示します:
helm install -f values.yaml multi-juicer ./multi-juicer/helm/multi-juicer/
JuiceShopインスタンスとMultiJuicer UIのテーマ(テーマ、ロゴ、有効なチャレンジなど)をカスタマイズするには、JuiceShopカスタマイズガイドを参照してください。
helm delete multi-juicer
安全側で見積もるには:
上記の数値はデフォルトのリソース制限を反映しています。これらは調整可能です。セットアップのカスタマイズを参照してください。
実際には固定の制限はありません。(設定することは可能ですが😉)個々のインスタンスへのすべてのトラフィックが流れるカスタムLoadBalancerは、好きなだけレプリケートできます。また、Horizontal Pod AutoscalerをアタッチしてLoadBalancerを自動スケーリングすることもできます。
既存のロードバランサーでは簡単に解決できないいくつかの特別な要件があります:
カスタムロードバランサーなしでこれらの問題を解決する素晴らしいアイデアがあれば、ぜひお知らせください。ご連絡をお待ちしています!
これにはいくつかの正当な理由があります:
kubectlを使うだけでデバッグが非常に簡単になります。kubectlを使ってJuiceShopを簡単に管理するには?kubectlのcustom-columns機能を使用して、関連情報とともにすべてのJuiceShopを一覧表示できます。
$ kubectl get -l app.kubernetes.io/name=juice-shop -o custom-columns="TEAM:metadata.labels.team,SOLVED-CHALLENGES:metadata.annotations.multi-juicer\.owasp-juice\.shop/challengesSolved,LAST-REQUEST:metadata.annotations.multi-juicer\.owasp-juice\.shop/lastRequestReadable" deployments
TEAM SOLVED-CHALLENGES LAST-REQUEST
foobar 3 Wed May 4 2042 18:14:22 GMT+0000 (Coordinated Universal Time)
team-42 0 Wed May 4 2042 18:14:30 GMT+0000 (Coordinated Universal Time)
the-empire 0 Wed May 4 2042 18:14:46 GMT+0000 (Coordinated Universal Time)
このプロジェクトはドイツのソフトウェア開発企業iteratecで、自社の開発者とクライアント向けのセキュリティトレーニングを実施するために始まりました。その後、2019年にオープンソース化され、2023年にOWASP組織/OWASP Juice Shopプロジェクトに寄贈されました。
OWASP Slackワークスペースの#project-juiceshopチャンネルでお問い合わせいただけます。フィードバックや使用報告をお聞かせいただけると嬉しいです。まだOWASP Slackワークスペースに参加されていない場合は、このリンクから参加できます。