サイバーセキュリティの初心者にとって、ペネトレーションテストのための演習環境を構築することは、多くの場合必要です。演習環境とは、基本的には実際のネットワーク環境をシミュレートするプラットフォームであり、セキュリティ担当者が管理された設定で様々なセキュリティテスト(ペネトレーションテスト、脆弱性探索、攻防演習など)を実施できるようにするものです。このような演習環境を構築することで、専門家は現実世界の攻撃や脆弱性を合法的かつ倫理的にシミュレートする練習ができ、最終的にはセキュリティ防御の有効性と精度を高めることができます。
演習環境を構築するための技術アーキテクチャは、基本的に実際のウェブサイトをデプロイするのと同じです。本番環境ではより複雑な設定(負荷分散、セキュリティ強化など)が必要になる場合もありますが、主要な実行環境は以下の主要コンポーネントに依存しています。
- ウェブサイトアプリケーションコード: フロントエンドとバックエンドのロジックを含みます。
- ウェブサーバー: リクエストを処理し、コンテンツを提供します。一般的な例としては、Nginx、Apache、Caddyなどがあります。
- データベース: MySQL、MongoDB、PostgreSQLなど、データを保存・管理します。
これら3つのコンポーネントが、機能するウェブサイトの基盤を形成します。
これらのコンポーネントに基づいて、フロントエンド + Python + Nginx + MySQL
、フロントエンド + Java + Nginx + MySQL
、フロントエンド + PHP + Apache + MongoDB
など、様々な技術スタックを組み合わせることができます。
演習環境のためにこれらすべてのコンポーネントとその依存関係を手動で設定・管理するのは、非常に面倒で時間のかかる作業でしょう。そのため、デプロイを簡素化し、演習自体に集中するために、ServBayのような便利な統合ツールの使用をお勧めします。これにより、様々な組み合わせのウェブサイト実行環境を迅速かつ簡単にセットアップできます。
さて、演習環境の構築を始めましょう!
ServBay
ServBayの紹介
ServBayは、一般的な開発言語(Python、PHP、Go、Node.jsなど)や、主要なウェブサーバー、データベースを統合した開発環境管理ツールです。ペネトレーションテストのニーズに応えるためには、様々なシナリオを考慮する必要があります。ServBayの主な利点は、異なるソフトウェアバージョン間をワンクリックで切り替えられることであり、これにより既知の脆弱性を持つ様々なターゲット環境を迅速にシミュレートできます。
ServBayのインストール
まず、ServBayをインストールしましょう。公式ダウンロードリンク: https://www.servbay.com/download
ServBayの初期化インターフェースに入り、インストールする必要のあるウェブサーバー、言語、データベースを選択します。
インストールが完了するのを待ちます。ServBayは自動的に起動します。
次の画面は、インストールが完了したことを示しています。
MySQLデータベースをダウンロードして起動します。
次に、必要なウェブサーバーを起動します。ここではNginxを選択しました。
環境の準備ができたら、演習用アプリケーションをインストールする必要があります。ここではDVWAをお勧めします。
DVWA
DVWAの紹介
DVWA (Damn Vulnerable Web Application) とは、簡単に言えば、演習用に意図的に脆弱性だらけ("damn vulnerable")にされたウェブサイトです。SQLインジェクション、XSS(クロスサイトスクリプティング)、ファイルアップロードの脆弱性など、一般的なウェブの脆弱性が意図的に多数含まれており、サイバーセキュリティ学習者が練習するのに最適です。
DVWAには10個の攻撃モジュールが含まれています。
さらに、DVWAではソースコードのセキュリティレベルをLow、Medium、High、Impossibleに手動で調整できます。レベルが高いほどセキュリティ対策は厳しくなり、侵入難易度も上がります。初心者から専門家まで、DVWAはあなたの練習ニーズに応えることができます!
DVWAのインストール
DVWAダウンロードリンク: https://github.com/digininja/DVWA
ダウンロードして展開(解凍)後、ファイルを/Applications/ServBay/www/
ディレクトリに移動します。(注意:このパスはmacOS固有です。異なるOSを使用している場合は、通常ServBayが指定するウェブルートフォルダ内に調整してください。)
次に、config.inc.php.dist
ファイルの名前を config.inc.php
に変更します。データベースのユーザー名とパスワードを変更するだけで、他の設定は変更しなくても構いません。
注意点: ここにMySQLの認証情報(ユーザー名とパスワード)を入力する必要があります。セットアップ中またはその後に変更していない限り、デフォルト値は通常ServBayパネルで確認できます。MySQLのユーザー名またはパスワードを変更した場合は、ここでカスタム認証情報を使用してください。
データベースとウェブサイトの設定
ブラウザで https://servbay.host/
(またはServBayで設定したホスト)にアクセスしてインスタンスのウェブサイトを開きます。phpMyAdminをクリックしてログインページに移動します。
MySQLのユーザー名とパスワード(ServBayで確認できるか、自分で設定したもの)を入力し、データベース管理ページにアクセスして、新しいデータベースを作成します。
新しいデータベースの名前(通常はDVWAの設定ファイルで指定されている 'dvwa')を入力し、「作成」をクリックします。
次に、ServBayを開き、新しいサイトを作成します。そのルートディレクトリを先ほど配置したDVWAフォルダ(例:/Applications/ServBay/www/DVWA
)に指定します。ドメイン名(例:dvwa.test
)を割り当てます。
ブラウザで、先ほどサイトに設定したドメイン名を入力します。DVWAのセットアップ/ログインページに正常にアクセスできるはずです。セットアップページの場合は、まず「Create / Reset Database」ボタンをクリックします。
デフォルトのユーザー名 admin
とパスワード password
を入力して、ペネトレーションテストの演習ページにログインします。
これで、DVWAのセットアップは完了です!おめでとうございます!!!
左側のメニューにある「DVWA Security」ボタンをクリックします。このページで、DVWA演習環境のセキュリティレベル(Low、Medium、High、Impossible)を設定できます。ニーズに合わせて希望のレベルを選択し、ペネトレーションテストの練習を開始してください。
ServBayとDVWAを組み合わせることで、サイバーセキュリティ演習環境を迅速に構築できます。サイバーセキュリティの初心者からプロへの道は、もう始まっています!