はじめに
この実験(Lab)では、LabEx VM 環境内の Kali Linux コンテナ内で Burp Suite を使用して Web アプリケーションのセキュリティテストを実行する方法を学びます。ここでは、Burp Proxy を設定して Web トラフィックを傍受し、HTTP/HTTPS リクエストを分析し、クロスサイトスクリプティング(XSS)の脆弱性をテストし、詳細なレポートを生成することに焦点を当てます。これらの実践的な手順は、Web アプリケーションにおけるセキュリティ問題を特定し、対処するための基礎的なスキルを提供します。
ターミナルを開くと自動的に設定される Kali Linux コンテナシェル内で直接作業を行います。構造化された手順を通して、ツールを設定し、トラフィックをキャプチャし、脆弱性をテストし、発見事項を文書化します。この実験(Lab)は初心者向けに設計されており、各プロセスを制御された環境でガイドし、実践的なサイバーセキュリティスキルを構築できるようにします。
Burp Suite のインストールと起動
この最初のステップでは、LabEx VM 環境内の Kali Linux コンテナ内で、Web アプリケーションのセキュリティテストに強力なツールである Burp Suite をインストールして起動します。Burp Suite を使用すると、Web トラフィックを傍受して分析できます。これは、Web アプリケーションの脆弱性を特定するために不可欠です。
LabEx VM でターミナルを開くと、自動的に Kali Linux コンテナのシェルに接続されます。コンテナを手動で起動したり、シェルに入力したりする必要はありません。環境はすでに設定されています。必要なツールがインストールされ、使用できる状態になっていることを確認することから始めましょう。
まず、利用可能なソフトウェアに関する最新情報を確実に取得するために、パッケージリストを更新します。ターミナルで、次のコマンドを入力し、Enter キーを押します。
apt update
このコマンドは、パッケージリポジトリデータを更新します。完了するまでに数秒かかる場合があり、更新プロセスの進行状況を示す出力が表示されます。
次に、Kali Linux リポジトリで利用可能な Burp Suite Community Edition をインストールします。次のコマンドを入力し、Enter キーを押します。
apt install -y burpsuite
このコマンドは、-yフラグにより確認を求めることなく Burp Suite をインストールします。インストールには 1、2 分かかる場合があり、ダウンロードとインストールの進行状況を示す出力が表示されます。
期待される出力(部分、実際の出力は異なる場合があります):
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Setting up burpsuite (2023.10.3.7-0kali1) ...
インストールが完了したら、次のコマンドを入力して Enter キーを押して Burp Suite を起動します。
burpsuite
これにより、Burp Suite のグラフィカルユーザーインターフェース(GUI)が開きます。読み込みに数秒かかる場合があります。プロンプトが表示されたら、デフォルトの「Temporary Project」オプションを選択し、「Next」または「Start Burp」をクリックして続行します。Burp Suite のメインウィンドウが表示されます。
Burp Suite が実行され、次のステップでは、Web トラフィックを傍受するように設定します。Burp Suite のウィンドウを開いたままにしておいてください。このステップにより、Web セキュリティテストタスクの主要なツールが準備完了となります。
Burp Proxy 設定
Burp Suite がインストールされ、実行されているので、次のステップは、Web トラフィックを傍受するように Burp Proxy 設定を構成することです。プロキシは、ブラウザとインターネットの間の中間者として機能し、HTTP/HTTPS リクエストとレスポンスをキャプチャして分析できます。これは、Web アプリケーションのセキュリティテストにとって重要な設定です。
初心者にとって、プロキシの役割を理解することは重要です。プロキシは、ブラウザとターゲット Web サイトの間に位置し、交換されるすべてのデータを傍受します。これにより、ブラウザから送信された生の要求とサーバーからの応答を検査し、潜在的なセキュリティ問題を特定するのに役立ちます。
すでに Kali Linux コンテナシェル内(ターミナルを開くと自動的に入力されます)にいるため、Burp Suite GUI で直接プロキシ設定を構成することに進みましょう。前のステップから Burp Suite がまだ実行されていることを確認してください。実行されていない場合は、ターミナルでburpsuiteと入力して Enter キーを押して再起動します。
Burp Suite ウィンドウで、「Proxy」タブに移動します。このタブには、Burp Suite がトラフィックを傍受する方法を構成するための設定が含まれています。「Proxy Settings」セクションで、プロキシが127.0.0.1:8080でリッスンするように設定されていることを確認します。これはデフォルトの設定であり、Burp Proxy がポート8080でローカルマシン上のトラフィックをキャプチャすることを意味します。
設定が127.0.0.1:8080に設定されていない場合は、これらの値を手動で入力して調整し、オプションが利用可能な場合は「Apply」をクリックします。この段階では、他の設定を変更しないでください。
プロキシがアクティブであることを確認するには、ターミナルで次のコマンドを実行し、Enter キーを押します。
netstat -tuln | grep 8080
期待される出力(実際の出力は異なる場合があります):
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN
この出力は、Burp Proxy がポート8080でリッスンしていることを示しています。この出力が表示されない場合は、Burp Suite が実行されており、プロキシ設定が正しく構成されていることを確認してください。
これで、Web トラフィックを傍受するように Burp Proxy を正常に設定しました。次のステップに進む際に、これらの設定で Burp Suite を開いたままにしておきます。次のステップでは、このプロキシを介してトラフィックをルーティングするようにブラウザを構成します。この構成は、その後のタスクで Web インタラクションをキャプチャして分析するために不可欠です。
Firefox を Burp Proxy で使用するための設定
Burp Proxy が構成されたので、次のステップは、Web ブラウザがトラフィックをプロキシ経由でルーティングするように設定することです。これにより、Burp Suite は、ブラウザによって行われたすべての HTTP/HTTPS リクエストとレスポンスをキャプチャして表示できます。この実験では、Kali Linux コンテナ内でインストールおよび構成される Firefox を使用します。
すでに Kali Linux コンテナシェル内(ターミナルを開くと自動的に入力されます)にいるため、まだ利用できない場合は、Firefox のインストールから始めましょう。ターミナルで次のコマンドを入力し、Enter キーを押して Firefox をインストールします。
apt install -y firefox-esr
このコマンドは、Kali Linux での使用に適した Firefox の Extended Support Release(ESR)バージョンをインストールします。インストールにはしばらく時間がかかる場合があり、進行状況を示す出力が表示されます。
期待される出力(部分、実際の出力は異なる場合があります):
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Setting up firefox-esr (102.10.0esr-1~deb11u1) ...
Firefox がインストールされたら、ターミナルで次のコマンドを入力し、Enter キーを押して起動します。
firefox &
&記号は、Firefox をバックグラウンドで実行し、ターミナルを使い続けることができます。LabEx VM のグラフィカルインターフェースに Firefox ウィンドウが開きます。
次に、Burp Proxy を使用するように Firefox を構成します。Firefox ブラウザウィンドウ内で、次の詳細な手順に従います。
- Firefox の右上隅にあるメニューアイコン(3 本の水平線)をクリックします。
- ドロップダウンメニューから
Settingsを選択します。 Generalタブの下にあるNetwork Settingsセクションまでスクロールし、Settings...をクリックします。Connection Settingsウィンドウで、Manual proxy configurationを選択します。HTTP Proxyフィールドを127.0.0.1に、Portを8080に設定します。Also use this proxy for HTTPSというラベルの付いたチェックボックスをオンにします。- 他のフィールドは変更せずに、
OKをクリックして設定を保存します。
この設定により、Firefox からのすべての Web トラフィックが127.0.0.1:8080の Burp Proxy を通過することが保証されます。すべてが正常に機能していることを確認するには、Firefox のアドレスバーに URL を入力して Enter キーを押して、http://example.comのような単純な Web サイトに移動します。
Burp Suite ウィンドウに戻り、Proxyタブに移動して、HTTP historyサブタブを選択します。そこにexample.comへのリクエストが表示されるはずです。リクエストが表示されない場合は、Firefox でページを更新し、プロキシ設定が正しいことを確認します。
Burp Suite での期待される出力(視覚的、ターミナルではありません):
HTTP historyタブに、example.comへのリクエストが表示され、ホスト、メソッド(例:GET)、URL パスなどの詳細が表示されます。
このステップでは、トラフィックを Burp Proxy 経由でルーティングするためのブラウザ設定が完了します。次のステップに進む際に、Firefox と Burp Suite の両方を開いたままにしておきます。ここでは、この構成を使用して、セキュリティテストのために Web トラフィックをキャプチャして分析します。
Web トラフィックのキャプチャと分析
Firefox が Burp Proxy を使用するように構成されたので、Web トラフィックをキャプチャして分析する準備ができました。このステップは、Web アプリケーションのセキュリティテストにおいて非常に重要です。ブラウザと Web サイト間で交換される生のデータを検査し、潜在的な脆弱性や誤った構成を特定するのに役立ちます。
初心者にとって、Web トラフィックのキャプチャとは、ブラウザが Web サイトに送信するリクエスト(ページの読み込みなど)と、Web サイトが返信するレスポンス(ページコンテンツなど)を記録することを意味します。Burp Suite は仲介役として機能し、このデータを詳細に表示するため、ヘッダー、パラメータ、およびコンテンツを調べてセキュリティの問題を調べることができます。
Kali Linux コンテナシェル内(ターミナルを開くと自動的に入力されます)で作業しているため、前のステップから Burp Suite と Firefox の両方がまだ実行されていることを確認してください。Burp Suite が実行されていない場合は、burpsuiteで再起動します。Firefox が開いていない場合は、firefox &で起動します。
Firefox で、アドレスバーに URL を入力して Enter キーを押して、http://example.comなどのテスト Web サイトに移動します。このアクションは、Burp Proxy を介してリクエストを送信し、分析のためにそれらをキャプチャします。
Burp Suite ウィンドウに切り替え、Proxyタブに移動し、HTTP historyサブタブを選択します。Firefox が Web サイトに対して行ったリクエストのリストが表示されます。各エントリには、ホスト、メソッド(例:GET)、および URL パスなどの詳細が含まれています。
http://example.comに関連するリクエストを 1 つクリックして選択します。これにより、RequestとResponseの 2 つのペインが表示されます。Requestペインには、ヘッダーやパラメータなど、ブラウザから送信されたデータが表示されます。Responseペインには、HTML コンテンツやステータスコードなど、Web サイトから返されたデータが表示されます。
Burp Suite での期待される出力(視覚的、ターミナルではありません):
HTTP historyタブには、次のようなエントリが表示されます。
- Host: example.com
- Method: GET
- Path: /
エントリをクリックすると、詳細なリクエストヘッダー(User-Agentなど)とレスポンスコンテンツ(ページの HTML コードなど)が表示されます。
Web トラフィックの構造を理解するために、いくつかのリクエストを探索する時間を取ってください。トラフィックをキャプチャして分析するこのスキルは、セキュリティの問題を特定するための基礎であり、次のステップで構築します。特定の脆弱性をテストするために進むにつれて、Burp Suite と Firefox を現在の設定で開いたままにしておきます。
XSS 脆弱性テストの実施
Web トラフィックのキャプチャが設定されたので、Burp Suite を使用して Cross-Site Scripting(XSS)の脆弱性をテストできるようになりました。XSS は一般的な Web セキュリティの問題であり、攻撃者が悪意のあるスクリプトを Web ページに注入し、それがユーザーのブラウザで実行されます。このステップでは、テスト入力を送信し、レスポンスを分析することにより、潜在的な XSS の欠陥を特定することに焦点を当てます。
初心者にとって、XSS は、Web アプリケーションがユーザー入力をサニタイズできず、有害なコード(JavaScript など)が注入されて実行される場合に発生します。XSS にはさまざまな種類がありますが、ここでは、悪意のある入力が保存されずにサーバーのレスポンスに即座に反映される、反射型 XSS をテストします。
Kali Linux コンテナシェル内(ターミナルを開くと自動的に入力されます)にいるため、前のステップから Burp Suite と Firefox がまだ実行されていることを確認してください。そうでない場合は、それぞれburpsuiteとfirefox &で再起動します。
Firefox で、検索ボックスやフォームなど、ユーザー入力を受け入れるテスト Web サイトに移動します。この実験では、LabEx VM で特定のテストサイトが提供されていない場合は、アクセス可能なhttp://testphp.vulnweb.comのような公開テストサイトを使用できます。Firefox のアドレスバーに URL を入力し、Enter キーを押します。
ページが読み込まれたら、検索バーなどの入力フィールドを見つけます。フィールドにtest<xss>のような単純なテスト文字列を入力し、フォームを送信します。この入力は無害ですが、アプリケーションがサニタイズせずにその入力を反映しているかどうかを確認するのに役立ちます。
Burp Suite に切り替え、Proxyタブに移動し、HTTP historyサブタブを選択します。フォーム送信に対応するリクエストを見つけます。それをクリックして詳細を表示します。Requestペインで、入力test<xss>が送信されたパラメータを探します(searchやqueryなどのフィールドの下にある場合があります)。
次に、Responseペインで、入力文字列test<xss>を検索します。エスケープされていない(たとえば、test<xss>に変換されていない)正確な文字列がレスポンスに反映されている場合は、アプリケーションが反射型 XSS に対して脆弱である可能性があります。
Burp Suite での期待される出力(視覚的、ターミナルではありません):
Responseペインで、HTML コンテンツにtest<xss>がそのまま表示される場合は、潜在的な脆弱性を示しています。test<xss>として表示される場合は、入力がサニタイズされており、XSS のリスクが軽減されています。
潜在的な脆弱性を特定した場合は、HTTP historyタブでリクエストを右クリックし、Add to site mapを選択して、次のステップでレポートするために整理します。テストデータを送信し、レスポンスを分析することにより XSS をテストするこのプロセスは、脆弱性評価のスキルを構築します。最後のステップに進むにつれて、Burp Suite と Firefox を開いたままにしておきます。
Burp Suite レポートの生成
この最後のステップでは、Web トラフィック分析と XSS 脆弱性テストからの調査結果を文書化するために、Burp Suite でレポートを生成します。レポートの作成は、特定した問題をまとめ、結果を確認または共有するための構造化された方法を提供するので、セキュリティテストの不可欠な部分です。
初心者にとって、Burp Suite レポートは、テストセッションからの脆弱性または観察結果を要約します。問題の種類、影響を受ける URL、関連するリクエスト/レスポンスデータなどの詳細が含まれています。このドキュメントは、セキュリティの欠陥を追跡し、修復を計画するために不可欠です。
Kali Linux コンテナシェル内(ターミナルを開くと自動的に入力されます)にいるため、Burp Suite がまだ実行されていることを確認してください。そうでない場合は、burpsuiteで再起動します。
Burp Suite インターフェースで、TargetタブまたはIssuesタブ(バージョンによって異なります)に移動します。このセクションには、Burp Suite が自動的に検出した脆弱性、または手動で追加した問題がリストされます。前のステップで、サイトマップに追加して潜在的な XSS の問題にフラグを立てた場合、ここに表示される可能性があります。
問題がリストされていない場合は、練習のために手動で追加できます。Proxyタブに移動し、XSS をテストした(たとえば、入力test<xss>を使用)HTTP historyからリクエストを選択し、右クリックしてReport issueまたはSend to Issuesを選択します。利用可能な場合は、Cross-site scripting (reflected)などのタイプを選択し、Potential XSS in input fieldのような簡単な説明を追加して、OKをクリックします。
レポートを生成するには、Issuesタブで、Reportボタンをクリックするか、メニューでGenerate Reportを見つけます。レポートウィザードで次の手順に従います。
- 読みやすい形式として、形式を
HTMLに選択します。 All issuesまたは追加した特定のものを選択します。- 保存場所を求められたら、Kali Linux コンテナ内のパスを
/root/xss_report.htmlに設定します。 NextまたはFinishをクリックして、レポートを保存します。
レポートを生成した後、ターミナルで次のコマンドを入力して Enter キーを押して、保存されたことを確認します。
ls -l /root/xss_report.html
期待される出力(実際の出力は異なる場合があります):
-rw-r--r-- 1 root root [size] [date] /root/xss_report.html
この出力は、ファイルxss_report.htmlが/rootディレクトリに存在することを確認します。ファイルがない場合は、レポート生成プロセスを繰り返し、正しいパスが指定されていることを確認します。
これで、テスト結果を文書化した Burp Suite レポートが正常に作成されました。これにより、この実験が完了し、Kali Linux 環境の必須ツールを使用した Web セキュリティテストの実践的な経験が得られます。
まとめ
この実験では、LabEx VM 環境の Kali Linux コンテナ内で Burp Suite を使用した Web アプリケーションセキュリティテストの基本を学びました。まず、Burp Suite をインストールして起動し、Burp Proxy を設定して Web トラフィックを傍受しました。Firefox を設定してトラフィックをプロキシ経由でルーティングすることにより、HTTP/HTTPS リクエストとレスポンスをキャプチャして分析しました。また、テスト入力を送信し、サーバーのレスポンスを調べることで、XSS 脆弱性をテストしました。最後に、調査結果を文書化するために詳細なレポートを生成しました。これらの手順により、業界標準のツールを使用して Web セキュリティの問題を特定し、対処するための実践的なスキルが身につきました。


