Burp Suiteのパフォーマンス問題のトラブルシューティング

場合によって、Burp Suiteの動作が遅くなってしまうことがあります。このセクションでは、Burp Suiteのパフォーマンス問題をトラブルシューティングし、テスト効率を高めるための簡単な手順について説明します。

最小システム要件の確認

Burp Suiteのすべてのエディションで、64ビットハードウェアが必要です。Burp Suite Professionalを最大限に活用するには、8GB以上のメモリと2つのCPUコアを搭載したマシンの使用を推奨します。大量の作業を実行する場合、または大規模で複雑なアプリケーションをテストする場合には、これよりも強力なマシンが必要になるかもしれません。

潜在的なボトルネックを特定: CPU, メモリ, ネットワーク

Burp Suiteは、マシンのCPUとメモリ、そしてそれが実行されるネットワークに負荷をかけます。

CPU使用率の最適化

次の方法で特定機能の無効化やスキャン設定を行い、BurpのCPU使用率を管理します:

整形表示の無効化

TargetタブやBurp RepeaterなどBurp SuiteでHTTPリクエストやレスポンスが表示される箇所では、生のコンテンツだけでなく、メッセージの整形バージョンを表示するオプションがあります。大きなファイル、特にJavaScriptファイルの整形には時間がかかる場合があります。デフォルトで、Burp SuiteがサポートしているすべてのコンテンツタイプにPrettyビューを使用します。しかし、この方法でパフォーマンスが低下する場合は、このオプションを無効にして代わりにRawビューを使用できます。設定するには:

  1. ユーザオプション > 表示タブを選択します。
  2. HTTPメッセージ表示セクションで、デフォルトで整形表示チェックボックスをオフにします。

JavaScript分析の無効化

JavaScript分析は計算コストが高く、スキャンの診断フェーズが遅くなる可能性があります。対象で実行されているJavaScriptに関心がない場合は、分析を無効化できます。

Burp Scannerの組み込み設定: 診断チェック - JavaScript分析を除くすべてを適用すると、JavaScript分析を無効化できます。あるいは、次の手順で独自のスキャン設定も可能です。

  1. 画面上部のメニューバーから、Burp > 設定ライブラリを選択します。
  2. 新規スキャン設定を選択するか、既存の設定を編集します。診断を選択してください。
  3. 報告される問題セクションを展開します。
  4. JavaScript分析チェックボックスをオフにします。
  5. 設定を保存し、OKを選択します。

パフォーマンスのためのスキャン設定

Burp Scannerには、クロールフェーズと診断フェーズの両方に、パフォーマンスを最適化する設定項目が多数あります。次の組み込みスキャン設定を適用すると、パフォーマンスを向上できます:

あるいは、次の手順で独自の設定も可能です。

  1. 画面上部のメニューバーから、Burp > 設定ライブラリを選択します。
  2. 新規スキャン設定を作成するか、既存の設定を編集します。
  3. 次の2つのセクションの説明に従って、設定を変更します。
  4. 編集した設定を保存します。

クロール中のパフォーマンスを最適化するには:

診断中のパフォーマンスを最適化するには:

スキャン範囲を狭める

対象サイトで関心のある範囲のみをスキャンしているか確認してください。スコープを狭めると、パフォーマンスが向上します。スキャンランチャの詳細なスコープ設定で、スキャンスコープを微調整してください。

単一プロトコルのスキャン

対象がHTTPとHTTPSのどちらかのみサポートしている場合は、サポートされているプロトコルのみを使用してBurp Scannerがリクエストを送信するようにします。スキャン詳細スキャンするURLセクションで、スキャンする各URLに目的のプロトコルを含めます。そして同じ箇所の指定したプロトコルを使用してスキャンを選択してください。

メモリ使用量の最適化

次の方法でメモリ使用量を最適化します:

拡張の無効化

Burp Suite拡張は便利ですが、システムの負荷が増える可能性があります。PortSwiggerは、拡張のリソース最適化状況をテストしていません。一部の拡張は、Burp Suiteのパフォーマンスに影響を与えるかもしれません。使用する拡張に注意し、不要な拡張の削除を推奨します。Burp Suiteが過剰な量のメモリを使用しているように見える場合は、拡張を1つずつ無効にして、問題の原因となっている拡張があるか確認してください。

Javaマシンにより多くのメモリを割り当てる

Burp Suiteは、マシンがJavaに割り当てるメモリの量によって制約されます。コマンドラインからBurpを起動すると、コマンドライン引数を使用してより多くのメモリを割り当てられます。手順の詳細はこちらを参照してください。

ディスクベースのプロジェクトの使用

一時プロジェクトでは、すべてのプロジェクトデータをディスクではなくメモリに保存する必要があるため、ディスクベースのプロジェクトよりもメモリに対する要求が高くなります。メモリ使用量が最大化されている場合、ディスクベースのプロジェクトに切り替えると、負荷の一部がメモリからハードディスクに移動します。ただしこれを行うと、RAMはハードドライブよりも高速ですから、特にディスクが遅い場合(ソリッドステートドライブではなくハードディスクドライブなど)に遅延が発生する可能性があることに注意してください。ディスクベースのプロジェクトと一時プロジェクトのどちらが高速かを確認するために、実験が必要かもしれません。Projectメニューに移動してコピーを保存を選択すると、一時プロジェクトをディスクベースのプロジェクトに変換できます。

永続化フレームワークの動作上プロジェクトファイルの保存は、ネットワークドライブではなくローカルドライブを推奨します。

ネットワーク使用量の最適化

次の方法でネットワークの問題を管理します:

同時スキャンの削減

ネットワークの負荷を軽減するには、同時実行するスキャン数を減らします。

リソースプールの設定

Burp Suiteは、アクティブスキャン中に対象が処理できる速度よりも速くリクエストを送信し、対象アプリケーションを過負荷にする可能性があります。Burp Suiteが同時に行うリクエストの数を減らすと、リクエストのハングアップやタイムアウトを防ぎます:

  1. 新規ライブタスクの横にある歯車のアイコンをクリックして、設定ダイアログを表示します。
  2. 新しいリソースプールを作成するか、既存のリソースプールを編集して、同時タスクの最大数を減らします。
  3. リソースプールを保存します。