Shikata Ga Nai

Private? There is no such things.

Burp Suiteの診断オプションについて画像を追加してみた

Hello there, ('ω')ノ

 

診断オプション

 これらのオプションは、挿入ポイントの処理や、使用する検出手法などの動作を制御します。

 軽量で純粋なパッシブ解析から、重厚な侵入型スキャンまで、実行される診断アクティビティのタイプを制御する上でこれらのオプションが非常に重要です。

 

f:id:ThisIsOne:20200920170546p:plain

 

診断オプション

診断スキャン中のBurp Scannerの挙動を設定する多数のオプションがあります。

これらはスキャン開始時にその場で設定でき、またBurpの設定ライブラリで管理もできます。

 

診断の最適化

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

 

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

 

 ・診断スピード

   脆弱性をチェックする際に、診断チェックをどの程度徹底的に行うかを設定します。

   "高速"設定は、リクエストが少なくなり、一部の脆弱性でチェックパターンが少なくなります。

   "徹底的"設定は、より多くのリクエストを発行し、脆弱性のより多くのパターンをチェックします。

   "標準"設定は2つの中間で、多くのアプリケーションにとって適切な、速度と徹底性のバランスになります。


 ・診断精度

   特定タイプの脆弱性を報告する場合にScannerが必要とする、証拠の量を設定します。

   "検知漏れを最小化"設定は、再試行回数が少なくなり、過剰検知が報告される可能性が高くなりますが、アプリケーションの挙動が安定しない場合でも、存在する脆弱性の見逃しが減ります。

   "標準"設定は2つの中間で、多くのアプリケーションにとって適切な、過剰検知と検知漏れのバランスになります。


 ・影響がなさそうな挿入ポイントの元値のチェックをスキップする

   各挿入ポイントのパラメータの元値を考慮し、無関係と思われるチェックを省略して、スキャンの効率を向上させます。

 

 ・頻繁に発生するパッシブ問題を統合する

   頻繁に発生するパッシブ問題を統合するかどうかコントロールします。


 ・自動的にセッションを維持する

   スキャンの診断フェーズ中に自動的にセッションを維持するかどうか制御します。


 ・必要な箇所でリダイレクトをたどる

   一部の脆弱性(例えば、リダイレクトをたどった後に返されるエラーメッセージ内のクロスサイトスクリプティング)は、リダイレクトをたどった場合のみ検出できます。

 

f:id:ThisIsOne:20200920165310p:plain

 

報告される問題

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

個別、または検出したアイテムに関連する診断アクティビティの性質に従って、問題タイプを選択できます。

個々の項目を選択する場合、一部の項目では使用する検出方法も選択できます。

関連する項目のコンテキストメニューから、"検出手法を編集"を選択してください。

各チェックを実行すると、生成されるリクエストが増え、各診断に時間がかかります。

アプリケーションの技術に関する知見を元に、個々の項目のオン/オフを切り替えられます。

 

f:id:ThisIsOne:20200920165401p:plain

 

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

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

 

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

 ・その挿入ポイントの残りのチェックをスキップするまでの、連続して診断チェックが失敗した回数。

 ・残りの挿入ポイントをスキップし、診断アイテムを失敗としてフラグを立てるまでの、失敗した挿入ポイントの数。

 ・タスクを停止するまでの連続して失敗した診断項目数

 ・タスクを停止するまでの失敗した診断項目全体の割合。

 ・失敗した操作を再試行するために、各診断フェーズの終了時に追加確認する回数。
 

挿入ポイントタイプ

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

挿入ポイントの配置位置はきめ細かく設定でき、注意深く設定すれば対象のアプリケーションの性質に合わせた診断の調整ができます。

挿入ポイントの設定は、スキャンの速度と網羅性のトレードオフになります。

 

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

 

 ・URLパラメータ値

  ┗ URLクエリーストリング内の標準的なパラメータ値


 ・ボディのパラメータ値

  ┗ メッセージボディのパラメータ値。


 ・cookieの値

  ┗ HTTP cookieの値


 ・パラメータ名

  ┗ 任意の追加パラメータ名。


 ・HTTPヘッダ

  ┗ RefererとUser-Agentヘッダの値。


 ・ボディ全体

  ┗ リクエストボディ全体 リクエストボディがXMLまたはJSONのリクエストに適用されます。


 ・URLパスのファイル名

  ┗ URLパスのファイル名の部分(最後のフォルダパスの後ろでクエリーストリングの前)。


 ・URLパスのフォルダ

  ┗ URLパスの全てのフォルダトークンの値(ファイル名部分の前)。

 

f:id:ThisIsOne:20200920165445p:plain

 

パラメータ位置の操作オプション

これらの設定は、パラメータの元の位置でのテストに加え、リクエスト内の別の場所にパラメータを移動する設定です。

例えば、各URLパラメータをメッセージボディに移動し再テストができます。

または、各ボディパラメータをcookieに移動し、再テストができます。

この方法でパラメータを移動すると、防御フィルターをバイパスできることがよくあります。

多くのアプリケーションやアプリケーションファイアウォールは、パラメータがリクエスト内の期待している場所にあると仮定してパラメータごとに入力検証をします。

パラメータを別の場所に移動すると、この検証が回避できます。

アプリケーションがその後、メインロジックの実装でそのパラメータを取得する場合、パラメータの場所に依存しないAPIを使用している可能性があります。

よって、通常は処理される前にフィルターされてしまう入力を、脆弱なコードパスに到達させるのにパラメータの移動は有効です。

 

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

 

 ・URLからボディ

 ・URLからcookie

 ・ボディからURL

 ・ボディからcookie

 ・cookieからURL

 ・cookieからボディ


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

 

挿入ポイントの無視

Burpが特定の診断を省略するリクエストパラメータを指定します。

サーバサイドインジェクションチェック(SQLインジェクションなど)をスキップする、および全てのチェックをスキップする設定が別にあります。

サーバサイドインジェクションチェックは、様々なサーバ上の脆弱性を手探りで調べるために複数のリクエストを送信するので、比較的時間がかかります。

 

f:id:ThisIsOne:20200920165526p:plain

 

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

頻繁に発生する挿入ポイントでBurp Scannerに重複を避けさせるかどうかを設定できます。

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

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

 

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

ネストした挿入ポイントを使用するかどうか選択できます。

挿入ポイントの元の値が認識可能な形式のデータを含む場合に、ネストされた挿入ポイントが使われます。

 

JavaScript解析オプション

これらの設定は、Burp ScannerがDOMベースの脆弱性をJavaScriptから検出する方法を制御します。

 

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

 

 ・不足しているJavaScript依存関係をリクエストするかどうか。

 ・静的または動的手法または両方を使用するかどうか。

 ・スキャンされる個々のアイテムごとに静的解析に費やす最大時間。

 

f:id:ThisIsOne:20200920165613p:plain

 

Best regards, (^^ゞ