クロールオプション

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

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

クロールの最適化

これらの設定は、クロールの目的とアプリケーションの性質を反映するためにクロールロジックの動作を制御します。

最大リンク深度とは、クローラによる開始URLから作成されるナビゲーション遷移(リンクのクリックやフォームの送信)の最大回数です。最近のアプリケーションは、メニューやページフッターのような場所で、すべてのレスポンスに大量のナビゲーションを構築する傾向があります。このため通常は、開始URLから少数のホップで、アプリケーションの大部分のコンテンツと機能に到達できます。アイテムの表示、ショッピングカートへの追加、チェックアウトなど、多段階処理を完全に網羅するには、さらに多くのホップが必要です。

一部のアプリケーションでは、非常に長いナビゲーションシーケンスが含まれていても、興味深い違いのある機能ではない場合があります。たとえばショッピングアプリケーションでは、膨大な数の商品カテゴリ、サブカテゴリ、表示フィルタがある場合があります。クローラにとってこれはリンクの非常に深いネストされたツリーとして表示され、すべて異なるコンテンツを返します。このような場合、ナビゲーション構造の深くまで入り込むことにほとんど意味がないため、最大リンク深度を8など小さな数に制限するのが適当です。

クロール戦略

現実世界のアプリケーションは、コンテンツやナビゲーションの構成方法、レスポンスの揮発性、アプリケーション状態の種類や複雑さの点で、まったく異なっています。極端な例では、アプリケーションはそれぞれの異なる機能について固有で安定したURLを使い、各レスポンスで固定のコンテンツを返し、サーバ側の状態が含まれません。逆の極端な例では、機能にアクセスする都度変化する短命なURLを使い、異なる機能への異なるナビゲーション経路でアクセスするとURLが頻繁に変化し、非確定に変わる揮発性のコンテンツを返し、ユーザの操作によってその後に観察される内容や動作が変化する重度のステートフルな機能などを使用しています。

Burpのクローラは、これらの両極端を処理できます。必要に応じて、短命で頻繁に変化するURL揮発性のコンテンツアプリケーション状態の変化を処理できます。ただし、これらのケースを完全に処理すると、クロール作業に大幅な負荷が発生します。クロール戦略の設定を使用して、指定したアプリケーションに適用されるアプローチを調整できます。実際にこの設定は、クロールの速度と達成される網羅性とのトレードオフになります。デフォルトの戦略は、一般的なアプリケーションで網羅性と速度のバランスが取れています。より安定してユニークなURLを使っていて、ステートフルな機能がないアプリケーションをクロールする場合は、より速度を最適化した戦略を選択できます。あるいは、より揮発的で頻繁に変わるURLや、複雑なステートフル機能のアプリケーションをクロールする場合は、より網羅性を最適化した戦略も選択できます。

"Fastest(最速)"クローリング戦略

Burp Scannerの"Fastest(最速)"クロール戦略は、一部の重要な点が他の戦略とは異なることに注意してください。

提供したログイン名でのみクロール

このオプションを有効にし、使用する1つ以上のアプリケーションログインを設定すると、Burp Scannerは認証されていないクロールフェーズをスキップします。顧客から提供されたログイン情報のみを使用し、ユーザの自己登録を試みたり、ログインを失敗することはありません。これにより、全体のクロール時間を短縮できます。

アプリケーションのログイン情報を提供しない場合、クローラは認証されていないクロールを自動的に実行するようになります。

クロール制限

最新アプリケーションのクロールは、ステートフルな機能、不安定なコンテンツ、無制限のナビゲーションのおかげで、終わらない場合があります。Burpのクローラはさまざまな手法を使用して、クロールの初期段階でユニークなコンテンツを最大限発見しようとします。クロール制限の設定では、クロールの効果が限界に達したとき、クロール範囲に制限がかけられます。一般的に、スキャンされるアプリケーションに関する知識に基づいて、クロール範囲の制限を設定するのが妥当です。

以下に基づいてクロールを制限できます:

ログイン機能

これらの設定は、クロール中に検出されたログイン機能に対するクローラの処理方法を制御します。クローラが次のことを行う必要があるかどうかを設定できます:

これらの設定は、記録されたログインシーケンスとは互換性がありません。記録されたログインをスキャンに使用する場合、これらの設定は無視されます。

クローラはログインフォームと登録フォームをどのように識別するのか?

クローラは、次のチェックリストを使用して、ターゲットサイトのログインフォームと登録フォームを識別します。

これらの基準がすべて満たされると、クローラは次のルールを順番に適用して、登録フォームとログインフォームを区別します。たとえば、2つのフォームに同じ数のパスワードフィールドがある場合、テキストフィールドの数などを比較します。

登録フォームには、これらが多く含まれます:

  1. パスワードフィールド
  2. テキストフィールド
  3. 複数値の選択フィールド
  4. 単一値の選択フィールド
  5. これらのすべてに合致する場合、最初に見つかったフォームのいずれかが登録フォームであるとみなします。

クローラがログインフォームに入力してくれないのはなぜか?

クローラは、パスワードフィールドによってログインフォームと登録フォームを識別します。ただし、関連するフィールドが次の場合にのみ、ユーザ名またはメールアドレスを入力します。

これらのいずれかの条件を満たさない場合クローラは、フォームであることは認識しますが、対応するデータを正しく入力できません。

クロール中のアプリケーションエラーの処理

これらの設定はBurp Scannerの、スキャンのクロールフェーズで発生するアプリケーションエラーの処理方法 (接続失敗や送信タイムアウト)を制御します。

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

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

プロジェクトのクロールオプション上書き

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

その他クロール設定

クロールの詳細をカスタマイズできます:

Burpブラウザオプション

Burpブラウザの挙動を制御します:

画面を表示したブラウザのクロールを監視していると、Burp Scannerが複数のウィンドウを開き、既存のウィンドウが使用できなくなることがあります。これは予想される挙動で、スキャンに問題があるわけではありません。冗長なウィンドウは、一定時間後に自動的に閉じられます。