Burp Infiltrator

Burp Infiltratorは、Burp Scannerを使ったテストを推進するために、対象Webアプリケーションを器具化するツールです。潜在的に危険なAPIまでBurpの入力が達したかどうかをBurpが検出できるように、対象アプリケーションを変更します。

Burp Infiltratorは現在、次の言語で書かれたアプリケーションをサポートしています:

重要な注意事項

Burp Infiltratorの仕組み

Burp Infiltratorは次のように動作します:

  1. Burpユーザは、Burpメニューを使って、適切なBurp InfiltratorのインストーラをBurp Suite Professionalからエクスポートします。
  2. アプリケーション開発者または管理者は、アプリケーションのバイトコードがあるマシンでそれを実行し、Burp Infiltratorツールをインストールします。
  3. Burp Infiltratorはアプリケーションのバイトコードにパッチを適用し、潜在的に危険なAPIを呼び出している箇所にインストルメンテーションフックを挿入します。
  4. アプリケーションを通常通り起動すると、パッチが適用されたバイトコードが実行されます。
  5. Burpユーザは通常の方法でアプリケーションのスキャンを実行します。
  6. アプリケーションが潜在的に危険なAPIを呼び出すと、関連するAPIのパラメータをインストルメンテーションフックが検査します。Burp Collaboratorドメインを含むBurpのペイロードはそれぞれ一意になる構造で、フィンガープリントになっています。
  7. インストルメンテーションフックは、検出したBurp Collaboratorドメインを、呼び出されたAPIの識別子を組み込むよう変更します。
  8. インストルメンテーションフックは、変更されたBurp CollaboratorドメインのDNS参照を実行します。
  9. 必要に応じて、設定オプションによっては、変更後のBurp CollaboratorドメインにHTTP/Sリクエストを発行します。そこには、関連するすべてのパラメータやアプリケーションのコールスタックが含まれています。
  10. スキャンペイロードによって発生したCollaboratorとの通信の詳細を取得するため、Burpは通常通りCollaboratorサーバをポーリングします。Burp Infiltratorが実行した通信の詳細が、Burpに返されます。
  11. アプリケーション内で、入力に関連するアイテムが潜在的に危険なAPIまで達したことを、関連する脆弱性タイプの情報レベルの問題としてユーザに報告します。同じ問題の他の証跡(診断中の動作や他のColalborator通信)が見つかった場合、この証跡は1つの問題に集約されます。
Burp Infiltrator

Burp InfiltratorはBurp Collaboratorドメインを含むBurpペイロードを観察する動作をし、指定されたBurp Collaboratorサーバを経由して通信するので、Burp Infiltratorを使うには次を満たす必要があります:

Burp InfiltractorはプライベートなBurp Collaboratorサーバの使用をサポートしています。Burpが送信したペイロードに含まれるCollaboratorサーバの完全なドメイン名から、どのCollaboratorサーバと通信すべきかを認識します。しかし、ドメイン名を使うプライベートCollaboratorサーバだけをサポートし、IPアドレスを使うよう設定されたプライベートCollaboratorサーバはサポートしていません。

Burp Infiltratorのインストール

Burp Infiltratorを使用するには、次の手順で対象のアプリケーションにインストールする必要があります:

Burp Suite ProfessionalからBurp Infiltratorのインストーラをエクスポートします。BurpメニューからBurp Infiltratorを選択し、器具化したいアプリケーションのタイプを選択し、好きな場所にファイルを保存します。

Burp Infiltratorをインストールして実行する前に、現在アプリケーションが実行されていないことを確認してください。ディスク上のバイトコードが変更されない可能性があります。

Burp Infiltratorのインストーラをエクスポート

Burp Infiltratorのインストーラを、アプリケーションをコンパイルしたバイトコードのあるマシンにコピーします。これは対象のアプリケーションサーバ上に既にあるかもしれませんし、別のマシン上でデプロイの準備中かもしれません。

パッチをあてる際、Burp Infiltratorはアプリケーションのバイトコードが置かれた場所を知る必要があります。最も簡単な方法は、アプリケーションのルートフォルダにInfiltratorインストーラを置き、そこを作業ディレクトリとして実行してください。または、インストール処理中にアプリケーションのバイトコードへのパスを指定できます。

Burp Infiltratorインストーラを、アプリケーションバイトコードを含むマシンにコピー

Burp Infiltratorのインストールを実行するユーザが、アプリケーションのバイトコードを含むファイルとフォルダへの書き込み権限があるかを確認してください。

コマンドラインからBurp Infiltratorを実行します。たとえば、Javaアプリケーションの場合、java -jar burp_infiltrator_java.jar と入力します。

Burp Infiltratorのインストーラはデフォルトで、対話形式で実行され、インストール時に一連の質問をしてきます。または、非対話形式でも実行できます。

コマンドラインからBurp Infiltratorを実行

Burp Infiltratorはアプリケーションのバイトコードにパッチを適用し、潜在的に危険なAPIを呼び出している箇所にインストルメンテーションフックを挿入します。

パッチ適用処理が終了したら、変更されたバイトコードを使ってアプリケーションを通常の方法で起動します。

Burp Infiltratorによるバイトコードへのパッチ適用中

最後に、アプリケーションのスキャンを実行します。

Burp Infiltratorを使用すると、潜在的に安全でないAPIの呼び出し、関連するパラメータの完全な値、APIが呼び出されたときのアプリケーション呼び出しスタックを、Burp Scannerが報告できるようになります。

Burp Infiltratorがアプリケーションをスキャン

考慮事項

パッチ適用プロセスに関する次の考慮事項に注意してください:

非対話形式のインストール

Burp Infiltratorは非対話形式でインストールできます。これはさまざまなユースケースをサポートしています。たとえばCIパイプラインで、アプリケーションのビルドをステージングサーバにデプロイし、Burp Infiltratorをインストールし、Burp Scannerを使ってスキャンを実行できます。

Burp Infiltratorを非対話形式で実行するには、次の引数をコマンドラインに追加します:

--non-interactive

非対話モードでは、通常対話モードで要求されるすべての設定オプションにデフォルト値を使います。必要な場合は、追加のコマンドライン引数でこれらのデフォルト値を上書きできます。サポートしているすべてのオプションを表示するには、次のコマンドライン引数を使用してください:

--help

非対話形式でBurp Infiltratorをインストールする前に、上書きされずに使われる設定オプションのデフォルト値を、上記のオプションを使って確認し、要件に基づいて適切なオプションが確実に使われるようにすべきです。

Burp Infiltratorのインストーラを非対話モードで実行すると、対話モードで表示されるすべての警告と免責事項を読み、同意したと見なされます。

設定オプション

Burp Infiltratorのインストール中に次の設定オプションが対話形式で、または非対話形式インストールではコマンドラインオプションで、指定できます。

設定オプションはパッチを適用している処理中に指定され、アプリケーションのバイトコードに行った変更に反映されています。パッチを適用された後にBurp Infiltratorの設定を変更するには、更新したオプションを使用してBurp Infiltratorのインストーラを再度実行し、アプリケーションを再起動する必要があります。