Burp Collaborator

このセクションでは、Burp CollaboratorとはBurp Collaboratorの仕組みBurp CollaboratorデータのセキュリティBurp Collaboratorの選択肢についての説明します。

Burp Collaboratorとは?

Burp Collaboratorは、Burpが多くの脆弱性を発見するのに役立つネットワークサービスです。例:

Burp Collaboratorを使用すると、Collaborationサーバとの通信を引き起こすように設計されたペイロードが、アプリケーションに送信されます。通信が発生したか確認するために、BurpはCollaboratorサーバに定期的にアクセスします:

Burp Collaborator

Burp Collaboratorは、Burp Scanner手動のBurp Collaboratorクライアントで使用され、Burp拡張からも使用できます。

Burp Collaboratorのしくみ

Burp Collaboratorは単一のサーバとして動作し、さまざまなネットワークサービスのカスタム実装を提供します:

以下は、Burp Collaboratorで検出できる問題の例です。

外部サービスとの通信を検知

典型的な外部サービスとの通信を、次のように検出できます:

外部サービスとの通信を検知

WAFのブラックリストによる誤検出を減らすため、公開されているCollaboratorサーバに定期的に新しいドメイン名を追加しています。Burp CollaboratorクライアントやBurp Scannerは、Burp Suite Professionalがリリースされた時点で利用可能な最新の公開Collaboratorドメインをデフォルトで使用します。現時点では、*.burpcollaborator.net*.oastify.comのどちらかになる予定です。

Burp Collaboratorが最大限の効果を発揮できるよう、Burp ScannerやBurp Collaboratorクライアントを実行しているマシンが、これら両方のドメインにポート80と443でアクセスできるようにしてください。

また、対象アプリケーションが*.burpcollaborator.net*.oastify.comのポート80と443にアクセスできる必要があります。

帯域外リソース読み込みの検知

帯域外リソースの読み込みは、アプリケーションが外部ソースからコンテンツを読み込むよう誘導し、それが自身のレスポンスに含まれる場合に起こります。Burp Suiteは、外部通信に対する特定のデータをCollaboratorサーバに返させ、同じデータに対するアプリケーションの対域内レスポンスを分析して、この問題を検出できます。

帯域外リソース読み込みの検知

ブラインドSQLインジェクションの検出

完全にブラインドなインジェクション系脆弱性を検出するために、インジェクションが成功した場合に外部への通信が発生するよう設計されたインジェクションベースのペイロードを、Burpが送信できます。次の例では、Oracle固有のAPIを使用して、SQL文に正常に挿入された場合に通信を発生させています:

ブラインドSQLインジェクションの検出

ブラインドクロスサイトスクリプティングの検出

対象にペイロードを送信した通信内ではなく、それに続いて後で非同期に発生する遅れた影響を、Collaboratorサーバは検知してBurpに通知できます。これにより、セカンドオーダーSQLインジェクションやブラインドXSSなど、さまざまな蓄積型脆弱性の検出が可能になります。次の例では、いつかユーザにレンダリングされた場合にCollaborサーバとの通信が発生するよう設計された、蓄積型XSSのペイロードをBurp Suiteが送信しています。その後、管理者ユーザがペイロードを表示すると、そのブラウザが通信を実行します。そして、Burp SuiteはCollaboratorサーバをポーリングし、その通信の詳細を受取、蓄積型XSS脆弱性を報告します:

ブラインドクロスサイトスクリプティングの検出

Collaboratorデータのセキュリティ

Collaboratorサーバで処理されるデータのセキュリティに関してユーザが懸念を持つのは当然で、データのセキュリティを重視して機能を設計しています。

Collaboratorサーバはどのようなデータを格納しているのか?

ほとんどの場合脆弱性が見つかっても、Collaboratorサーバは脆弱性に関する十分な情報を受信しません。Burpから対象アプリケーションに送信されたHTTPリクエストは見られません。典型的な場合では、どこから通信を受け取ったのかと、Burpによって生成されたランダムな識別子を含む通信内容を記録します。場合によって、たとえばユーザ登録フォームを経由して生成されたメールの内容など、アプリケーション固有のデータをCollaboratorサーバが受け取ります。

Collaboratorデータの取得はどのように制御されているのか?

Burp Collaborator機能は、特定のペイロードを生成したBurpのインスタンスのみが、そのペイロードに起因する通信の詳細を取得できるように設計されています。この要件は次のように実装されています:

このメカニズムでは、さらにCollaboratorサーバのデータを不正アクセスから守るために次の予防措置を実装しています:

Collaboratorベースの電子メールアドレス

パブリックCollaboratorサーバを使用している場合は、Collaboratorベースの電子メールアドレスのWebサイトへの登録は推奨しません。

二つのクライアントの識別子を含んだ単一のメッセージを、Collaboratorサーバが受け取った場合、このメッセージは両方のクライアントで利用できます。つまり、あなたがパブリックCollaboratorサーバの電子メールアドレスをWebサイトに登録し、攻撃者がコントロールできるデータが電子メール内に配置されてしまう問題がそのサイトにあった場合、攻撃者が自分自身のCollaboratorクライアントを使って電子メールを取得できる可能性があります。

これを完全に防ぐには、プライベートCollaboratorサーバによってポーリングインタフェースを安全にする必要があります。

Burp Collaboratorの選択

Burpユーザは、次の三つの選択肢から選択してBurp Collaboratorを使用できます:

Burp Collaboratorの機能は、慎重に検討しないと問題が起こる場合があります。Burp Collaboratorの機能と代替手段を完全に理解し、利用による自分自身や組織への影響を考慮しておく必要があります。

Burp Suite Professionalでは、 Burp Collaboratorサーバオプションでこれらを設定できます。