12/04追記 2023.10.3.4安定版リリースで、2023.10.3のアーリーアダプターの内容が取り込まれたため、本記事も安定版に書き換えております。
はじめに
この記事は、Burp Suiteのリリース内容について抄訳した内容と筆者の気になるポイントを記載しています。
Burpを使用して診断を行う方を対象にしていますので、バグ修正のような細かい変更点については本記事で触れない場合がございます。
原文をご確認されたい方は、公式のリリースノートをご覧ください。
Bambdas を使用した高度な HTTP 履歴フィルタリング
Bambda は、Javaのスニペットを使用して、UI から直接 Burp Suite をカスタマイズする新しい方法です。
このリリースでは、Bambda が[Proxy] > [HTTP history]タブに導入され、HTTP 履歴のカスタム フィルターを作成できるようになります。これらの高度にカスタマイズ可能なフィルターを使用すると、HTTP 履歴のホワイト ノイズを除去して、表示したい項目のみに焦点を当てることができます。
自分で Bambda を試すには、[Proxy] > [HTTP history]タブのフィルターに移動し、Bambda Modeに切り替えて、独自のコードを使用してカスタム フィルターを作成します。
BCheck のエクスポート
BCheck をエクスポートできるようになり、Burp の異なるインスタンス間で BCheck を共有しやすくなりました。必要な BCheck を選択し、[Export]をクリックしてください。
PortSwigger および Burp Suite コミュニティの BCheck については、BChecks GitHub リポジトリをチェックしてください。
Burp 全体でのノートのサポート強化
この機能を使用すると、重要な情報をタブに記録できるため、後で簡単に見直すことができます。アイテムが異なるタブ間で送信されるとノートがコピーされまるようになりました。タブのサイドバーにある[Notes]パネルを使用してノートを追加します。
このアップデートでは、Burp の異なるツール間でアイテムを送信するときにノートをコピーする機能が導入されました。
- Target > Site map
- Proxy > Intercept
- Proxy > HTTP history
- Proxy > WebSockets history
スコープ外アイテムの TLS パススルー
ターゲット スコープを設定するときに、スコープ外のアイテムに TLS パススルーを自動的に適用できるようになりました。これにより、パフォーマンスが大幅に向上します。この動作は、「Stop logging out-of-scope items」オプションを受け入れると自動的に有効になります。
ターゲットスコープにサブドメインを含める
ターゲット スコープに含めた、またはターゲット スコープから除外したホストのサブドメインを含めることができるようになりました。この機能を有効にするには、Target > Scope settingsでInclude subdomainsチェックボックスをオンにします。
タスク詳細ダイアログの改善
- 「Details」タブを新しく「Summary」タブに置き換えました。[Summary]タブには、 [Details]タブに含まれるすべての情報が含まれていますが、見つかった最も深刻な脆弱性のリスト、タスクの進行状況に関する詳細情報、およびタスクのアクションに関するリアルタイム情報を提供するタスク ログも含まれています。
- スキャン中に見つかったすべての問題をリストする新しい[Issues]タブを追加しました。この変更の一環として、[Issue activityタブ (削除された問題や追加の証拠が見つかったなど、以前のスキャンからの変更の詳細も表示されます) の名前を [Audit log]タブに変更しました。
- イベント ログ内の項目を選択すると、その項目の詳細を表示できるようになりました。以前は、 [Event detail]ダイアログを表示するには項目をダブルクリックする必要がありました。
BChecks文法の強化
removing query_string
リクエストからクエリ文字列全体を削除するアクションの追加- Burp のヘッダーを返す新しい変数
User-Agent
の追加 - 現在の挿入ポイントの基本値を含む、呼び出される新しい事前定義変数
insertion_point_base_value
の追加 - チェックのベースとなる新しいパスごとの BCheck テンプレートの追加。
- BCheck は複数の問題を返すことができるようになりました。この結果、BChecks によって報告された問題には個別の名前が付けられるようになりました。
その他の改善点
スキャンが終了すると、Burp Scanner は最初の 10 分間、Collaborator サーバーに新しいインタラクションをポーリングするよう毎分ポーリングします。この後は、デフォルトの 10 分ごとの間隔に戻ります。
これは、Burp Scanner がほぼ瞬時にトリガーされる帯域外インタラクションを報告するまでに長い時間待つ必要がなくなったことを意味します。
気になるポイント
Bambda を使用した高度な HTTP 履歴フィルタリング
フィルタリングに関する新しい機能が登場しました。HTTP Historyのフィルター画面を開くと[Settings mode]と[Bambda mode]の二つがありますね。Settings modeは従来の画面のようです。
試しにBambdaを書いてみました。
var reqest = requestResponse.request(); var response = requestResponse.response(); if (!reqest.isInScope()) { return false; } MimeType mimetype = response.mimeType(); List<MimeType> filteredMimeType = Arrays.asList(MimeType.CSS, MimeType.IMAGE_PNG); if (!requestResponse.hasResponse() || filteredMimeType.contains(mimetype)) { return false; } return response.isStatusCodeClass(StatusCodeClass.CLASS_2XX_SUCCESS);
このフィルターコードは次のようなフィルターが作用します。
- スコープ内のリクエスト
- 空でないレスポンス
- filteredMimeType(CSS,PNG)に含まれていないMimeTypeのレスポンス
適応に少し時間が掛かるときもあるのですが、Bambdaを使って高度なフィルターができそうなのはいいですね。