診断オプション

診断スキャン中のBurp Scannerの挙動を設定する多数のオプションがあります。これらはスキャン開始時にその場で設定でき、またBurpの設定ライブラリでも管理できます。

Burp Suiteの設定ライブラリには組み込み設定が用意されているので、これらのオプションを素早く設定できます。

診断の最適化

診断の目的や対象アプリケーションの性質に応じて、診断ロジックの挙動を調整できます。

次のオプションがあります:

報告される問題

Burpがチェックする項目を制御します。

個別、または検出したアイテムに関連する診断アクティビティの性質に従って、問題タイプを選択できます。個々の項目を選択する場合、使用する検出方法も一部の項目では選択できます。関連する項目のコンテキストメニューから、検出手法を編集を選択してください。

各チェックを実行すると、生成されるリクエストが増え、各診断に時間がかかります。アプリケーションの技術に関する知見を元に、個々の項目のオン/オフを切り替えられます。たとえば、アプリケーションがLDAPを使用していないと分かっている場合、LDAPインジェクションをオフにできます。または、アプリケーションが使用しているバックエンドデータベースが分かっている場合、他のデータベースタイプに固有のSQLインジェクション検出手法をオフにできます。

アクティブにラベルされた項目が有効な場合、これらの問題を発見するよう設計されたリクエストをアプリケーションに送信します。選択された項目によっては、これらのリクエストは悪意のあるものと見なされたり、アプリケーションやそのデータに損害を与える可能性があります。

診断中のアプリケーションエラーの処理

スキャンの診断フェーズで発生するアプリケーションエラー(接続エラーや送信タイムアウトなど)の処理方法を制御します。

次のオプションを設定できます:

空白のままにしておくと、無効にできます。

挿入ポイントタイプ

診断する各HTTPリクエストのどこに、Scannerが挿入ポイントを配置するかを制御します。

挿入ポイントの配置位置はきめ細かく設定でき、注意深く設定すれば対象のアプリケーションの性質に合わせた診断を調整できます。挿入ポイントの設定は、スキャンの速度と網羅性のトレードオフになります。

次のカテゴリの挿入ポイントを選択できます:

Burpに自動的に挿入ポイントを割り当てさせるだけではなく、すべてカスタマイズが可能で、リクエスト内の任意の位置を攻撃対象として指定できます。この機能を使うには、リクエストをIntruderに送信し、ペイロードポジションタブで通常の方法で挿入ポイントを定義し、Intruderメニューオプションから定義した挿入ポイントを診断を選択します。または拡張を使って、プログラムでカスタムの挿入ポイントも指定できます。

パラメータ位置の変更オプション

これらの設定は、パラメータの元の位置でのテストに加え、リクエスト内の別の場所にパラメータを移動する設定です。たとえば、各URLパラメータをメッセージボディに移動し再テストできます。または、各ボディパラメータをcookieに移動し、再テストできます。

この方法でパラメータを移動すると、防御フィルタをバイパスできることがよくあります。多くのアプリケーションやアプリケーションファイアウォールは、パラメータがリクエスト内の期待している場所にあると仮定してパラメータごとに入力検証をします。パラメータを別の場所に移動すると、この検証が回避できます。アプリケーションがその後、メインロジックの実装でそのパラメータを取得する場合、パラメータの場所に依存しないAPIを使用している可能性があります。よって、通常は処理される前にフィルタされてしまう入力を、脆弱なコードパスに到達させるのにパラメータの移動は有効です。

パラメータ位置の変更は、次のオプションがあります:

パラメータ位置を変更すると、各リクエストパラメータが複数回スキャンされることになるため、スキャンリクストがより多くなります。

挿入ポイントの無視

Burpが特定の診断を省略するリクエストパラメータを指定します。サーバ側インジェクションチェック(SQLインジェクションなど)をスキップするか、すべてのチェックをスキップする設定が別にあります。

サーバ側インジェクションチェックは、さまざまなサーバ上の脆弱性を手探りで調べるために複数のリクエストを送信するので、比較的時間がかかります。リクエスト内の特定のパラメータに脆弱性がないと考える場合(たとえば、プラットフォームやWebサーバのみが使用する組み込みパラメータなど)、Burpにこれらのテストをしないよう指示できます。(クロスサイトスクリプティングのようなクライアント側のバグのテストは、パラメータが脆弱ではない場合にスキャン中の負荷が最小限になるよう抑えられています。)

テストしたくないアプリケーションコンポーネントに処理されるパラメータや、変更するとアプリケーションが不安定になると分かっている場合は、すべてのチェックの省略が便利です。

各一覧のアイテムでは、パラメータタイプ、マッチさせるアイテム(名前または値)、マッチの種類(リテラル文字列または正規表現)、マッチさせる文字列を指定します。

URLパス内の(スラッシュで区切られた)それぞれのURLパスフォルダがパラメータになっている場合があります。これを行うには、検索アイテムのドロップダウンからURLパスのフォルダを、アイテムのドロップダウンで名前を選択し、テストから除外したいURLパスのインデックス番号(1オリジン)を指定します。URLパスのフォルダパラメータは、値でも指定できます。

頻繁に発生する挿入ポイント

頻繁に発生する挿入ポイントでBurp Scannerに重複を避けさせるかどうかを設定できます。設定された場合、Burpは意味がなさそうな(頻繁に発生するが問題が見つかっていない)ことが判明している挿入ポイントを特定し、それらの挿入ポイントにより軽量な診断をするようになります。

この最適化が適用される挿入ポイントのタイプを選択できます。

その他の挿入ポイントオプション

ネストした挿入ポイントを使用するかどうか選択できます。挿入ポイントの元の値が認識可能な形式のデータを含む場合に、ネストした挿入ポイントが使われます。たとえば、URLパラメータにBase64エンコードされたデータがあり、デコードした値にJSONやXMLデータが含まれているなどです。ネストした挿入ポイントのオプションを使うと、ネストした各レベルごとの入力アイテムをそれぞれ挿入ポイントとして作成します。このオプションを使うと、従来通りのリクエストパラメータのみが含まれるリクエストではオーバーヘッドにはならず、異なる形式でデータがカプセル化された複雑なアプリケーションでより多くの攻撃経路にたどりつけます。

膨大な数のパラメータを含むリクエストがあった場合にスキャンが停止するのを防ぐために、ベースリクエストごとに生成される挿入ポイント数の制限を設定できます。この設定により挿入ポイント数が削減されている場合、診断アイテムビューのアイテムのエントリには、省略された挿入ポイントの数が表示されるため、手動でベースリクエストをレビューし、可能なすべての挿入ポイントをフルスキャンする価値があるかどうか判断できます。

JavaScript分析オプション

これらの設定は、Burp ScannerがDOMベースの脆弱性をJavaScriptから検出する方法を制御します。次のオプションがあります:

JavaScript分析は大量のメモリと計算能力を消費する可能性があるため、重要で主要な対象のみに制限した方が望ましい場合があります。さらに、JavaScript分析を実行する場合は、より多くのメモリを割り当ててBurpを起動する必要があります。そのためには、Burpをコマンドラインから起動する必要があります。

プロジェクトの診断オプション上書き

これらの設定で、診断タスク用に設定されている次のグローバル設定を上書きできます。