Burp Suite 2.0触ってみた

6.9K Views

May 08, 23

スライド概要

本資料はslideshareに掲載していたスライドを移行したものです。
Burp Suite Japan LT Carnivalで発表した資料です。
2.0で追加された一部の機能について説明しています。

profile-image

都内で働くセキュリティエンジニア

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
2.

目次 • はじめに • BURP SUITE 2.0 • 利用時の注意点 • 2.0 新機能 • 検証不足&気になる点 • 2.0のイケてない点 • まとめ • ロードマップ

3.

自己紹介

4.

はじめに • 触ってみた というより 機能紹介になってしまいました。 • もっと検証したかったけど時間なかった(言い訳) • 他の発表者の内容が尖りまくってると思うので、マイルドに( ˘ω˘ )

5.

BURP SUITE 2.0 • 2018/8/23 2.0 beta リリース • Pro版 利用者のみ使用可能 • しばらくの間はbeta版で留まるみたい

6.

BURP SUITE 2.0 利用時の注意点 • バグは当然あります! • 1.x系で発見できていた脆弱性を見逃す可能性があります! • 仕事を失う可能性があります!(データが消える的ニュアンス?) • パフォーマンスが低下する可能性があります! • 迷惑になる頻度でアップデートをリリースします!

7.

(参考)3/11時点のリリース頻度 • 2018/8/23 2.0beta release • 2018/11/15 2.0.12 bugfix • 2018/8/24 2.0.01 bugfix • 2018/11/28 2.0.13 bugfix • 2018/8/29 2.0.02 bugfix • 2019/1/23 2.0.14 bugfix • 2018/8/30 2.0.03 bugfix • 2019/1/29 2.0.15 bugfix • 2018/9/4 2.0.04 bugfix • 2019/2/15 2.0.16 bugfix • 2018/9/10 2.0.05 bugfix • 2019/2/20 2.0.17 bugfix • 2018/9/18 2.0.06 bugfix and security fix • 2019/3/5 2.0.18 bugfix and crawler algorithm update • 2018/9/26 2.0.07 bugfix • 2018/10/9 2.0.08 bugfix • 2018/10/16 2.0.09 bugfix 2018年は週1ペースで更新 • 2018/10/31 2.0.10 bugfix and dark theme release 2019年は隔週ペースで更新 • 2018/10/31 2.0.11 bugfix

8.

2.0 新機能 公式ブログで紹介されていた新機能+性能向上 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

9.

2.0 新機能 今日話す内容 • クローラ機能(一部) • スキャンエンジン(一部) • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング 緑部分は、当日発表できなかった 箇所です。

10.

2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

11.

クローラ機能 2.0から以下のクロールに関する機能がアップデートされました。 • クロール機能の改善 • 自動セッションハンドリング • アプリケーションの状態変更の検知 • 複数ログインでクローリング • 揮発性コンテンツのクローリング

12.

クローラ機能 2.0から以下のクロールに関する機能がアップデートされました。 • クロール機能の改善 • 自動セッションハンドリング ← 紹介する機能 • アプリケーションの状態変更の検知 • 複数ログインでクローリング • 揮発性コンテンツのクローリング 緑部分は、当日発表できなかった 箇所です。

13.

クローラの説明の前に…名称がちょっと変わります これまでは、Spider(サイト巡回)とScan(脆弱性テスト)でしたが、 2.0からはCrawlとAuditと呼ぶようになりました。 また、Crawl と Audit を合わせてScanと呼ぶようになりました。 Spider Scan Crawl Audit Scan

14.

クローラ機能の改善 改善① サイト構造の識別方法が変わりました サイトの構造をURLではなくコンテンツに基づいて識別するようにな りました。

15.

クローラ機能の改善 これにより、同じURLで異なるコンテンツを返す場合や、 リンクのURLが毎回変わる場合でも、 クローラは正確にマッピングするようになりました。 商品画面 支払画面 POST /buy/next 確認画面 POST /buy/next 完了画面 POST /buy/next

16.

クローラ機能の改善 改善② 待機中のリクエストの追跡方法が変わりました 1.x系のクローラは、キューに入っているリクエストから 追跡していました。 2.0のクローラは、クロールで観測された未訪問のリンクから追跡する ようになりました。

17.

クローラ機能の改善 保留中のリンクに直接アクセスするのではなく、リンク経由で遷移す るか、開始位置に戻ってから遷移します。 company About us contact ? 開始地点 shop ? リンクが無い場合、 開始地点からクロールを 始める

18.

クローラ機能の改善 確認のため、以下の構成のサイトを用意しました。 Burpでクロールし、アクセスログを確認します。

19.

クローラ機能の改善 リンク経由もしくは、開始地点からのアクセスを している事がわかりました。リファラもついてる。

20.

自動セッションハンドリング 1.x系のクローラでは、CSRFトークンを追従する必要がある場合や 特定の順序でアクセスしなければならない状況ではチューニングが 必要でした。 完了画面 入力画面 開始地点 確認画面 CSRF tokenが有効 CSRF tokenが無効 CSRF token発行 追従してくれない! エラー画面

21.

自動セッションハンドリング 2.0では、直前のリクエストに基づいて次のリクエストを生成するため、 CSRFトークンを自動で追従することができるようになりました。 追従してくれる 完了画面 入力画面 開始地点 確認画面 CSRF tokenが有効 CSRF tokenが無効 CSRF token発行 エラー画面

22.

自動セッションハンドリング 確認のため、遷移時にCSRF tokenが必要なページを作成しました。 csrf.php csrf2.php csrf3.php CSRF token発行 CSRF token確認 CSRF token確認 CSRF token発行

23.

自動セッションハンドリング Csrf_tokenを追従していることが確認できました。

24.

アプリケーションのステート変化の検知 アプリケーションのステートを検出する事ができるようになりました。 ユーザが実行したアクションに応じて、同じ機能でも異なるコンテン ツを返すような状況でもステートの変化を検出します。

25.

アプリケーションのステート変化の検知 例えば、カートの中身に応じてコ ンテンツを変えるような場合に有 効です。 ① サイト表示 商品一覧 画面 ② 商品表示 商品詳細 画面 ③ カートに 追加 ④ カート表示 STATE 2 STATE 1 空のカート 画面 商品削除 商品入 カート 画面

26.

アプリケーションのステート変化の検知 Wordpress の ECサイト系プラグインで検証。 以下の流れで注文ができるか確認 1. 商品一覧画面に遷移 2. 商品をカートに追加 3. カート画面に遷移 4. 支払い画面に遷移 5. 注文情報を送信 右の情報+CSRF token

27.

アプリケーションのステート変化の検知 クロール後、注文情報を見ると以下の注文情報が送信されていること を確認できました。

28.

複数ログインでクローリング 1.x系のクローラでは、一つのログインアカウントしか設定できません でした。

29.

複数ログインでクローリング 2.0 のクローラでは、複数のユーザロールに対応できるように 複数のログインアカウントを設定することができるようになりました。

30.

複数ログインでクローリング アプリケーションがユーザ登録機能を持っている場合、 デフォルトでユーザ登録を試みるようになりました。 登録に成功した場合、登録時のクレデンシャルを利用して ログイン以降のページもクロールします。

31.

2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

32.

スキャンエンジン 2.0から新しいスキャンエンジンになりました。 • 並行スキャン • スキャンフェーズ • スキャン中の自動セッション管理 • 格納された入力値の検出向上 • サイト全体のパッシブ系issueの統一 • 頻繁に発生する挿入ポイントの効率化 • アプリケーションエラーの処理改善

33.

スキャンエンジン 2.0から新しいスキャンエンジンになりました。 • 並行スキャン • スキャンフェーズ • スキャン中の自動セッション管理 • 格納された入力値の検出向上 • サイト全体のパッシブ系issueの統一 • 頻繁に発生する挿入ポイントの効率化 • アプリケーションエラーの処理改善 ← 紹介する機能

34.

並行スキャン 1.x系では、同時に複数のスキャンができませんでした。 2.0 から複数の並行スキャンをサポートするようになりました。 それぞれのスキャンはタスクとして個別に管理されます。 ← http://notsecure.com:8888 のスキャンタスク ← http://notsecure.com:8528 のスキャンタスク

35.

スキャンフェーズ 1.x系のスキャナは、スキャンタイプ毎の進捗が分かりませんでした。

36.

スキャンフェーズ 2.0のスキャナでは、各フェーズの進捗が段階毎に分かるようになりま した。

37.

2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

38.

Javascriptの動的解析 2.0 では、劇的にDOMベースの脆弱性検出が劇的に向上しました!

39.

Javascriptの動的解析 劇的に向上した理由 2.0から、組み込みのヘッドレスブラウザを使用しているようです。 通常のブラウザでJavaScriptを実行するように、解析を行うようにな りました。

40.

Javascriptの動的解析 劇的に向上した理由 2.0から、組み込みのヘッドレスブラウザを使用しているようです。 通常のブラウザでJavaScriptを実行するように、解析を行うようにな りました。 Diagnosticsをみるとjxbrowserを使用している。

41.

Javascriptの動的解析 jjencodeで難読化した JavaScriptでDOM based XSS が検出するか試してみた。

42.

Javascriptの動的解析 jjencodeで難読化した JavaScriptでDOM based XSS が検出するか試してみた。 ちゃんと検出した!

43.

Javascriptの動的解析 検出時のソースとシンクも教え てくれる。 ……ただし、pretty表示されて いるわけじゃないので若干使い にくい。

44.

Javascriptの動的解析 検出時のソースとシンクも教え てくれる。 ……ただし、pretty表示されて いるわけじゃないので若干使い にくい。 ちなみに、PoCを用意してくれる場合がある みたいです!

45.

2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

46.

ダッシュボード

47.

ダッシュボード Burp上で設定されているタスク一覧 並列してスキャンやクロールをしている場 合、それぞれの進捗が確認できます。 デフォルトでライブパッシブスキャンが動 作しています。

48.

ダッシュボード イベントログ 1.x系のAlertタブの内容

49.

ダッシュボード Issue activity 全てのタスクで確認されたissueが一 覧で確認できます。

50.

2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

51.

スキャンランチャー スキャンまたはライブスキャンの設定をランチャーから設定できるよ うになりました。 1.x系に比べると分かりやすい。

52.

2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

53.

ライブスキャン 1.x系では、Proxy経由の通信のみライブスキャンが出来ました。 2.0では、Proxy,Repeater,Intruderでライブスキャンが出来るように なりました。(デフォルトではProxyのみ)

54.

ライブスキャン 補足 ライブスキャンのクロールは、 勝手にリンク先にアクセスするわ けではありません。 アクセスしたページのリンクを サイトマップに追加するだけ。 アクセスすると白く なる。

55.

2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

56.

リソース管理の改善 並行スキャンが可能になったため、タスク毎に同時リクエスト数と リクエスト間隔を設定できるようになりました。 タスク全体のリソース管理をしているエンジンがあり、各タスクに割 り当てるリソースをいい感じに動的に調整してくれるようです。 (ユーザによる設定は出来なさそうです)

57.

リソース管理の改善 ダッシュボードからBurpが使用す るメモリ・ディスク容量を確認で きようになりました。 また、メモリがカツカツになった ら、実行中のタスクは一時停止し ます。

58.

2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

59.

設定ライブラリ デフォルト・カスタム問わず、以下の設定情報をjson形式でインポー ト/エクスポートできるようになりました。 • クローリング設定 • スキャン設定 • スコープ設定 • ログイン設定 • ライブパッシブクロール設定

60.

2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

61.

REST API 現在はスキャンの開始と結果の取得のみ。 今後のアップデートで機能を追加していく予定とのこと。

62.

REST API User options → Misc から設定することができます。

63.

REST API Service URLにアクセスするとAPIのドキュメントが確認できます。

64.

2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング

65.

新しいレンダリング しっかり表示してくれる 意外と便利

66.

新しいレンダリング Awwwardsに乗っているような、イケてるサイトも崩れる事なく レンダリングできました。 ただし、スクロール操作やキーボード操作はできませんでした。 また、大量のJSを読み込んでいるせいかPCに強い負荷がかかってい ました…。 https://www.awwwards.com

67.

検証不足&気になる点 バリデーションのかかっているフォームへの対処が気になる スキャン時間の長期化 複雑なサイトorいじわるなサイトにどこまで対応できるか気になる

68.

2.0のイケてない点 仕方ないけど、ちょいちょいバグる。 トイレ行ってたら、何故か落ちてる。 既存のログファイルを開こうとすると落ちる(回避方法あり) スキャンのデバッグログを出力したら文字化けして🧀 が出力 ヘッドレスブラウザの影響で、プロセスが大量に常駐する 気が付いたら70個以上も常駐してた

69.

ロードマップ • クローラはまだJavascriptを正しく処理できていない。 • 本物のブラウザと同じように処理するための改善 • クローラの並列化処理の改善 • クローラのコンテンツ発見機能の改善(robots.txt, html comment内のlinkなど) • クロールによって生成されるナビゲーショングラフを他の目的でも利 用する • WebSocketの改良ツールの実装

70.

まとめ スキャンやクロールの性能が向上 普段から使ってる人は便利かも DOM based の脆弱性検出が大幅に向上 診断視点で一番嬉しい実装。 内製化向けの機能追加 設定ライブラリや、REST APIなど

71.

ご清聴ありがとうございました。