はじめに
Burp Suite は、Web アプリケーションのセキュリティテストのための強力なプラットフォームです。その中核機能の 1 つは、ブラウザと Web サーバー間のトラフィックを検査および変更できるインターセプトプロキシです。しかし、特定のホストへのトラフィックのインターセプトを Burp に防止したい場合があります。これは、証明書ピンニングを使用するアプリケーションの破損を防ぐため、信頼されたドメインからの大量トラフィックを無視してパフォーマンスを向上させるため、または単にターゲットアプリケーションに集中するためです。
ここで SSL パススルーが登場します。この機能は、暗号化された (TLS/SSL) トラフィックを復号化またはインターセプトしようとせずに、宛先サーバーに直接渡すように Burp Suite に指示します。
この実験では、Burp Suite で SSL パススルー ルールを構成して、すべての Google ドメインをインターセプトから除外する方法を学びます。実験環境には Burp Suite Community Edition がプリインストールされており、ブラウザは Burp プロキシを使用するように事前構成されています。
Proxy > Options > SSL Passthrough へ移動する
このステップでは、Burp Suite を起動し、SSL パススルー設定に移動します。すべての操作は VNC デスクトップ環境内で行われます。
まず、Burp Suite を起動します。
- 画面左上の「Applications」メニューをクリックします。
Other->Burp Suite Community Editionへ移動します。
ダイアログボックスが表示されます。この実験では、一時的なプロジェクトを使用できます。
Temporary projectを選択したまま、「Next」をクリックします。- 次の画面で、「Use Burp defaults」をクリックし、「Start Burp」をクリックします。
Burp Suite が開いたら、SSL パススルー設定を見つける必要があります。
Proxyタブをクリックします。Proxyタブ内で、Optionsサブタブをクリックします。- オプションページを下にスクロールして、「SSL Passthrough」というタイトルのセクションを見つけます。
これで、新しいルールを追加する正しい場所にいます。
新しいルールの作成のために「Add」をクリックする
このステップでは、新しい SSL パススルー ルールを追加するプロセスを開始します。
SSL Passthrough セクションでは、Burp が TLS インターセプトを実行しない宛先を指定できます。これらの宛先へのリクエストはすべてサーバーに直接渡され、その内容はプロキシ履歴に表示されません。
開始するには、SSL Passthrough セクション内の Add ボタンを見つけてクリックします。
Add をクリックすると、「Add SSL Passthrough rule」というタイトルの新しいダイアログボックスが表示されます。このダイアログで、インターセプトから除外したいホストの詳細を指定します。
インターセプトしたくないホスト名を入力する(例:*.google.com)
このステップでは、インターセプトから除外する特定のホストまたはドメインを定義します。
前のステップで開いた「Add SSL Passthrough rule」ダイアログボックスには、「Host or IP range」というラベルのフィールドがあります。ここに、バイパスしたい宛先を入力します。
ワイルドカード (*) を使用して、特定のドメインのすべてのサブドメインに一致させることができます。これは、多くの異なるサブドメイン(例:www.google.com、mail.google.com、apis.google.com)を使用する Google のような大規模なサービスに非常に役立ちます。
「Host or IP range」フィールドに、次の値を入力します。
*.google.com
ホスト名を入力したら、「OK」ボタンをクリックしてルールを保存します。「SSL Passthrough」リストに新しいルールが表示され、ダイアログボックスが閉じます。
ルールの有効化
このステップでは、新しく作成した SSL パススルー ルールを有効化します。
デフォルトでは、新しいルールを追加すると無効な状態で作成されます。ルールを有効にするには、明示的に有効化する必要があります。リストに *.google.com の新しいルールが表示されますが、「Enabled」列のチェックボックスは現在チェックされていません。
ルールを有効にするには、*.google.com のエントリの隣にある「Enabled」列のチェックボックスをクリックするだけです。
ボックスがチェックされると、ルールはアクティブになります。Burp Suite は、google.com の任意のサブドメイン宛ての TLS トラフィックをインターセプトせずに、自動的にパススルーするようになります。
指定したホストにアクセスし、プロキシ履歴にトラフィックが表示されないことを確認する
この最終ステップでは、Google ドメインにアクセスし、プロキシ履歴を確認することで SSL パススルー ルールをテストします。
まず、Burp Suite のプロキシ履歴ログに移動します。
- まだ「Proxy」タブにいることを確認します。
- 「HTTP history」サブタブをクリックします。このログには、Burp のプロキシを通過するすべてのトラフィックが表示されます。
次に、VNC 環境でウェブブラウザを開きます。
- 「Applications」メニューをクリックします。
- 「Internet」->「Firefox」に移動します。
Firefox のアドレスバーに https://www.google.com と入力し、Enter キーを押します。Google のホームページが正常に読み込まれるはずです。
次に、Burp Suite に戻り、「HTTP history」タブを確認します。www.google.com のエントリで、ページの読み込みの詳細(GET /、GET /some-image.png など)が表示されているものがないことに気づくでしょう。初期接続設定である CONNECT www.google.com:443 のような単一のエントリが表示されるかもしれませんが、暗号化されたアプリケーションデータ自体はログに記録されることなく「パススルー」されています。
プロキシが他のサイトで引き続き機能していることを確認するには、Firefox に戻り http://example.com にアクセスします。次に、Burp の「HTTP history」を再度確認します。example.com の完全なリクエストとレスポンスが表示され、パススルー ルールが Google に限定されていることが証明されます。
まとめ
この実験では、Burp Suite の SSL パススルー機能を正常に設定し、テストしました。
以下の方法を学びました。
- Burp Suite のプロキシオプション内の SSL パススルー設定に移動する方法。
- 特定のドメインを除外する新しいルールを追加し、ワイルドカード (
*.google.com) を使用してすべてのサブドメインをカバーする方法。 - ルールを有効化してアクティブにする方法。
- 指定されたドメインへのトラフィックがもはやインターセプトされず、HTTP 履歴に記録されないことを観察し、他のドメインへのトラフィックは影響を受けないことを確認することで、ルールが機能していることを検証する方法。
この機能を習得することで、Web アプリケーションのセキュリティ評価中に、より効率的で集中的なワークフローを作成するのに役立ちます。
