1. サポートセンター
  2. ドキュメント
  3. デスクトップ版
  4. ペネトレーションテスト

ペネトレーションテスト

このセクションでは、Web アプリケーションのテストにおけるBurp Suiteの使い方の基本を説明します。Webアプリケーションテストの一般的な手法や方法論については、Burp Suiteサポートセンターを参照してください。

Burpの基本

Burpのインストールと起動、プロジェクトの開始、表示設定については、Burp Suite入門のヘルプを参照してください。

Burpをペネトレーションテストに使用するには、Burpを使用するようブラウザを設定し、BurpのCA証明書をブラウザにインストールする必要があります。

Burpが動作し、Burpを使うようブラウザを設定したら、Proxyインターセプトタブを開き、インターセプトが有効になっていることを確認してください(もし"インターセプト無効"になっていたら、クリックしてインターセプト状態を反転します)。そして、ブラウザでどこかのURLにアクセスします。

ブラウザが送信した各HTTPリクエストが、インターセプトタブに表示されます。それぞれのメッセージを確認し、必要なら編集もできます。"転送"ボタンをクリックすると、リクエストが宛先サーバに送信されます。インターセプトされたメッセージが保留されている場合、ブラウザが読み込みを完了させるためには、全てのメッセージを転送する必要があります。インターセプトの必要に応じて"インターセプト有効/無効"ボタンを変更してください。詳細は、Burp Proxy入門を参照してください。

Burpを経由したアプリケーションへのアクセスについて、Proxyは全てのリクエストとレスポンスの履歴を保存しています。ProxyのHTTP履歴タブを開くと、あなたが行った一連のリクエストを確認できます。一覧から1つアイテムを選択すると、RequestとResponseタブでメッセージ全体が表示されます。

また、ブラウズをしていると、Burpはデフォルトで対象アプリケーションのサイトマップを構築します。Targetのサイトマップタブに移動すると表示できます。このサイトマップには、あなたがブラウザでアクセスした全てのURLと、Burpがレスポンスから推測したコンテンツ(例えば、HTMLレスポンスから解析したリンクなど)が含まれます。既にアクセスしたアイテムは黒で、その他のアイテムは灰色で表示されます。ツリーを展開し、個々のアイテムを選択すると、完全なリクエストとレスポンスが(存在していれば)表示されます。詳細は、Targetツールの使い方を参照してください。ライブスキャンタスクを適切に設定すると、ブラウズ時にサイトマップに追加するコンテンツを制御できます。

Burpのペネトレーションテストワークフローの中核は、特定のタスクを実行する際に各ツール間でHTTPリクエストを転送する機能です。ProxyインターセプトタブやProxy履歴、サイトマップなど、HTTPメッセージが表示されるどこからでも、メッセージを転送できます。1つまたは複数のメッセージを選択し、コンテキストメニューから他のツールに転送ができます。

特定のタスクに使用するBurpツールは次の通りです:

  • Scanner - 自動でウェブサイトをスキャンし、コンテンツと脆弱性を探し出します。
  • Intruder - カスタマイズされた自動攻撃をし、様々な種類のテストタスクを実行します。
  • Repeater - HTTPリクエストを手動で変更し再送します。
  • Collaboratorクライアント - Burp Collaboratorのペイロードを作成し、帯域外通信の結果を監視します。
  • Clickbandit - 脆弱なアプリケーションに対するクリックジャッキング攻撃を生成します。
  • Sequencer - アプリケーションのセッショントークンの、乱数の質を解析します。
  • Decoder - 一般的なアプリケーションデータの変換やデコードをします。
  • Comparer - アプリケーションデータの変更点を視覚的に表示します。

とても簡単なものから高度で専門的なものまで、様々なテストタスクを実行する際に、Burpのツールを組み合わせて使用できます。

テストワークフロー

手動および自動の技術を効果的に組み合わせられ、Burpの動作を完全に制御でき、テストする全てのアプリケーションについて詳細な情報と分析を提供します。

一部のユーザは、Burpをこのように使うのではなく、高速かつ簡単にアプリケーションの脆弱性スキャンを実行したいだけかもしれません。もしそうなら、ウェブサイトのスキャンを参照してください。

次の図は、Burpのペネトレーションテストワークフローの主要部分の概要です。

Burp Suiteのテストワークフロー

情報収集・分析

ProxyツールはBurpのワークフローの中心部に位置します。ブラウザでアプリケーションを巡回している間、Burpは全ての関連情報を収集しており、他のアクションを簡単に開始できます。典型的なテストで、情報収集・分析フェーズには次のタスクが行われます。

アプリケーションの手動マッピング

リンクを辿る、フォームをサブミットする、複数手順の処理を実行するなど、Burp Proxyを経由するよう設定したブラウザを使って、アプリケーションを手動でマッピングこのプロセスで、リクエストしたコンテンツがProxy履歴とTargetサイトマップに取り込まれ、レスポンスから推測できる追加のコンテンツ(リンク、フォームなど)が、(ライブスキャンによって)サイトマップ追加されます。リクエストされていないアイテム(サイトマップでグレーで表示される)を確認し、ブラウザでこれらをリクエストします

必要な箇所で自動マッピングを実行

必要に応じて、様々な方法でマッピングプロセスを自動化できます。以下が可能です:

自動アクションを実行する前に、ターゲットスコープセッションハンドリングなどBurpの様々な挙動の設定を更新する必要があります。

アプリケーションの攻撃経路の分析

マッピングプロセスでは、アプリケーションについて収集した全ての情報を、Proxy履歴やTargetサイトマップへ取り込みます。どちらのリポジトリにも、含まれている情報の解析サポートする機能や、アプリケーションが晒している攻撃経路を評価する機能があります。さらに、Burpの対象解析を使用すると、攻撃経路の範囲やアプリケーションが使用している様々な種類のURLを見つけられます。

ツールの設定

対象アプリケーションに応じた動作をBurpにさせるために必要な様々な設定オプションがあり、テストの各段階で使用する必要があります。例:

脆弱性の検出とエクスプロイト

対象アプリケーションの情報収集と分析、必要なBurpの設定が終わったら、アプリケーションの脆弱性調査を開始できます。この段階では、異なるツール間で個々のリクエストを受け渡してBurpの様々なツールを併用し、一部のテストではブラウザに戻りながら、様々なタスクを実行すると最も効果的です。Burp全体で、コンテキストメニューを使用すると、ツール間のアイテムの受け渡しや他のアクションが実行できます。

Burpのデフォルト設定で、Proxyを通過した全てのリクエストレスポンスにライブパッシブスキャンが自動的に実行されます。アプリケーションを積極的に調査する前から既に、詳細な調査に裏付けられた問題点が登録される場合があります。

Burpのツールは様々な方法で使用でき、積極的に脆弱性をテストするプロセスをサポートします。様々な種類の問題点における例を挙げます。

入力値ベースのバグ

SQLインジェクション、クロスサイトスクリプティング、ファイルパストラバーサルのような問題で、様々な方法でBurpを使用できます:

ロジックと設計の欠陥

クライアント側のコントロールを安全に使用していない問題、アカウントロックアウトの欠如、多段階処理で重要な処理を省略できる問題などは、通常手動で作業する必要があります:

アクセス制御の問題

Burpには、アクセス制御の脆弱性をテストする際に便利な機能があります:

その他の脆弱性

その他の種類の脆弱性を調査する際に発生するほぼ全てのタスクで使用できる機能がBurpにはあり、多くは自動化ができます。例:

続きを読む

Burpの全ツールと機能、Burpでテストする際の一般的なワークフローについて、豊富なドキュメントがあります。

Burpのメインツールの詳細については、次のリンクを参照してください: