Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Burp Suite 2.0触ってみた

749 views

Published on

Burp Suite Japan LT Carnivalで発表した資料です。
2.0で追加された一部の機能について説明しています。

Published in: Technology
  • Be the first to comment

Burp Suite 2.0触ってみた

  1. 1. 目次 • はじめに • BURP SUITE 2.0 • 利用時の注意点 • 2.0 新機能 • 検証不足&気になる点 • 2.0のイケてない点 • まとめ • ロードマップ
  2. 2. 自己紹介
  3. 3. はじめに • 触ってみた というより 機能紹介になってしまいました。 • もっと検証したかったけど時間なかった(言い訳) • 他の発表者の内容が尖りまくってると思うので、マイルドに( ˘ω˘ )
  4. 4. BURP SUITE 2.0 • 2018/8/23 2.0 beta リリース • Pro版 利用者のみ使用可能 • しばらくの間はbeta版で留まるみたい
  5. 5. BURP SUITE 2.0 利用時の注意点 • バグは当然あります! • 1.x系で発見できていた脆弱性を見逃す可能性があります! • 仕事を失う可能性があります!(データが消える的ニュアンス?) • パフォーマンスが低下する可能性があります! • 迷惑になる頻度でアップデートをリリースします!
  6. 6. (参考)3/11時点のリリース頻度 • 2018/8/23 2.0beta release • 2018/8/24 2.0.01 bugfix • 2018/8/29 2.0.02 bugfix • 2018/8/30 2.0.03 bugfix • 2018/9/4 2.0.04 bugfix • 2018/9/10 2.0.05 bugfix • 2018/9/18 2.0.06 bugfix and security fix • 2018/9/26 2.0.07 bugfix • 2018/10/9 2.0.08 bugfix • 2018/10/16 2.0.09 bugfix • 2018/10/31 2.0.10 bugfix and dark theme release • 2018/10/31 2.0.11 bugfix • 2018/11/15 2.0.12 bugfix • 2018/11/28 2.0.13 bugfix • 2019/1/23 2.0.14 bugfix • 2019/1/29 2.0.15 bugfix • 2019/2/15 2.0.16 bugfix • 2019/2/20 2.0.17 bugfix • 2019/3/5 2.0.18 bugfix and crawler algorithm update 2018年は週1ペースで更新 2019年は隔週ペースで更新
  7. 7. 2.0 新機能 公式ブログで紹介されていた新機能+性能向上 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  8. 8. 2.0 新機能 今日話す内容 • クローラ機能(一部) • スキャンエンジン(一部) • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング 緑部分は、当日発表できなかった 箇所です。
  9. 9. 2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  10. 10. クローラ機能 2.0から以下のクロールに関する機能がアップデートされました。 • クロール機能の改善 • 自動セッションハンドリング • アプリケーションの状態変更の検知 • 複数ログインでクローリング • 揮発性コンテンツのクローリング
  11. 11. クローラ機能 2.0から以下のクロールに関する機能がアップデートされました。 • クロール機能の改善 • 自動セッションハンドリング • アプリケーションの状態変更の検知 • 複数ログインでクローリング • 揮発性コンテンツのクローリング ← 紹介する機能 緑部分は、当日発表できなかった 箇所です。
  12. 12. クローラの説明の前に…名称がちょっと変わります これまでは、Spider(サイト巡回)とScan(脆弱性テスト)でしたが、 2.0からはCrawlとAuditと呼ぶようになりました。 また、Crawl と Audit を合わせてScanと呼ぶようになりました。 Spider Scan Crawl Audit Scan
  13. 13. クローラ機能の改善 改善① サイト構造の識別方法が変わりました サイトの構造をURLではなくコンテンツに基づいて識別するようにな りました。
  14. 14. クローラ機能の改善 これにより、同じURLで異なるコンテンツを返す場合や、 リンクのURLが毎回変わる場合でも、 クローラは正確にマッピングするようになりました。 商品画面 支払画面 確認画面 完了画面 POST /buy/next POST /buy/next POST /buy/next
  15. 15. クローラ機能の改善 改善② 待機中のリクエストの追跡方法が変わりました 1.x系のクローラは、キューに入っているリクエストから 追跡していました。 2.0のクローラは、クロールで観測された未訪問のリンクから追跡する ようになりました。
  16. 16. クローラ機能の改善 保留中のリンクに直接アクセスするのではなく、リンク経由で遷移す るか、開始位置に戻ってから遷移します。 About us company contact shop 開始地点 リンクが無い場合、 開始地点からクロールを 始める ? ?
  17. 17. クローラ機能の改善 確認のため、以下の構成のサイトを用意しました。 Burpでクロールし、アクセスログを確認します。
  18. 18. クローラ機能の改善 リンク経由もしくは、開始地点からのアクセスを している事がわかりました。リファラもついてる。
  19. 19. 自動セッションハンドリング 1.x系のクローラでは、CSRFトークンを追従する必要がある場合や 特定の順序でアクセスしなければならない状況ではチューニングが 必要でした。 入力画面 開始地点 確認画面 完了画面 CSRF token発行 CSRF tokenが有効 エラー画面 CSRF tokenが無効 追従してくれない!
  20. 20. 自動セッションハンドリング 2.0では、直前のリクエストに基づいて次のリクエストを生成するため、 CSRFトークンを自動で追従することができるようになりました。 入力画面 確認画面 完了画面 CSRF token発行 CSRF tokenが有効 エラー画面 CSRF tokenが無効 追従してくれる 開始地点
  21. 21. 自動セッションハンドリング 確認のため、遷移時にCSRF tokenが必要なページを作成しました。 csrf.php csrf2.php csrf3.php CSRF token発行 CSRF token確認 CSRF token確認 CSRF token発行
  22. 22. 自動セッションハンドリング Csrf_tokenを追従していることが確認できました。
  23. 23. アプリケーションのステート変化の検知 アプリケーションのステートを検出する事ができるようになりました。 ユーザが実行したアクションに応じて、同じ機能でも異なるコンテン ツを返すような状況でもステートの変化を検出します。
  24. 24. アプリケーションのステート変化の検知 例えば、カートの中身に応じてコ ンテンツを変えるような場合に有 効です。 商品一覧 画面 商品詳細 画面 空のカート 画面 商品入 カート 画面 ② 商品表示 ③ カートに 追加 ④ カート表示 商品削除 STATE 1 STATE 2 ① サイト表示
  25. 25. アプリケーションのステート変化の検知 Wordpress の ECサイト系プラグインで検証。 以下の流れで注文ができるか確認 1. 商品一覧画面に遷移 2. 商品をカートに追加 3. カート画面に遷移 4. 支払い画面に遷移 5. 注文情報を送信 右の情報+CSRF token
  26. 26. アプリケーションのステート変化の検知 クロール後、注文情報を見ると以下の注文情報が送信されていること を確認できました。
  27. 27. 複数ログインでクローリング 1.x系のクローラでは、一つのログインアカウントしか設定できません でした。
  28. 28. 複数ログインでクローリング 2.0 のクローラでは、複数のユーザロールに対応できるように 複数のログインアカウントを設定することができるようになりました。
  29. 29. 複数ログインでクローリング アプリケーションがユーザ登録機能を持っている場合、 デフォルトでユーザ登録を試みるようになりました。 登録に成功した場合、登録時のクレデンシャルを利用して ログイン以降のページもクロールします。
  30. 30. 2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  31. 31. スキャンエンジン 2.0から新しいスキャンエンジンになりました。 • 並行スキャン • スキャンフェーズ • スキャン中の自動セッション管理 • 格納された入力値の検出向上 • サイト全体のパッシブ系issueの統一 • 頻繁に発生する挿入ポイントの効率化 • アプリケーションエラーの処理改善
  32. 32. スキャンエンジン 2.0から新しいスキャンエンジンになりました。 • 並行スキャン • スキャンフェーズ • スキャン中の自動セッション管理 • 格納された入力値の検出向上 • サイト全体のパッシブ系issueの統一 • 頻繁に発生する挿入ポイントの効率化 • アプリケーションエラーの処理改善 ← 紹介する機能
  33. 33. 並行スキャン 1.x系では、同時に複数のスキャンができませんでした。 2.0 から複数の並行スキャンをサポートするようになりました。 それぞれのスキャンはタスクとして個別に管理されます。 ← http://notsecure.com:8888 のスキャンタスク ← http://notsecure.com:8528 のスキャンタスク
  34. 34. スキャンフェーズ 1.x系のスキャナは、スキャンタイプ毎の進捗が分かりませんでした。
  35. 35. スキャンフェーズ 2.0のスキャナでは、各フェーズの進捗が段階毎に分かるようになりま した。
  36. 36. 2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  37. 37. Javascriptの動的解析 2.0 では、劇的にDOMベースの脆弱性検出が劇的に向上しました!
  38. 38. Javascriptの動的解析 劇的に向上した理由 2.0から、組み込みのヘッドレスブラウザを使用しているようです。 通常のブラウザでJavaScriptを実行するように、解析を行うようにな りました。
  39. 39. Javascriptの動的解析 劇的に向上した理由 2.0から、組み込みのヘッドレスブラウザを使用しているようです。 通常のブラウザでJavaScriptを実行するように、解析を行うようにな りました。 Diagnosticsをみるとjxbrowserを使用している。
  40. 40. Javascriptの動的解析 jjencodeで難読化した JavaScriptでDOM based XSS が検出するか試してみた。
  41. 41. Javascriptの動的解析 jjencodeで難読化した JavaScriptでDOM based XSS が検出するか試してみた。 ちゃんと検出した!
  42. 42. Javascriptの動的解析 検出時のソースとシンクも教え てくれる。 ……ただし、pretty表示されて いるわけじゃないので若干使い にくい。
  43. 43. Javascriptの動的解析 検出時のソースとシンクも教え てくれる。 ……ただし、pretty表示されて いるわけじゃないので若干使い にくい。 ちなみに、PoCを用意してくれる場合がある みたいです!
  44. 44. 2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  45. 45. ダッシュボード
  46. 46. ダッシュボード Burp上で設定されているタスク一覧 並列してスキャンやクロールをしている場 合、それぞれの進捗が確認できます。 デフォルトでライブパッシブスキャンが動 作しています。
  47. 47. ダッシュボード イベントログ 1.x系のAlertタブの内容
  48. 48. ダッシュボード Issue activity 全てのタスクで確認されたissueが一 覧で確認できます。
  49. 49. 2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  50. 50. スキャンランチャー スキャンまたはライブスキャンの設定をランチャーから設定できるよ うになりました。 1.x系に比べると分かりやすい。
  51. 51. 2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  52. 52. ライブスキャン 1.x系では、Proxy経由の通信のみライブスキャンが出来ました。 2.0では、Proxy,Repeater,Intruderでライブスキャンが出来るように なりました。(デフォルトではProxyのみ)
  53. 53. ライブスキャン 補足 ライブスキャンのクロールは、 勝手にリンク先にアクセスするわ けではありません。 アクセスしたページのリンクを サイトマップに追加するだけ。 アクセスすると白く なる。
  54. 54. 2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  55. 55. リソース管理の改善 並行スキャンが可能になったため、タスク毎に同時リクエスト数と リクエスト間隔を設定できるようになりました。 タスク全体のリソース管理をしているエンジンがあり、各タスクに割 り当てるリソースをいい感じに動的に調整してくれるようです。 (ユーザによる設定は出来なさそうです)
  56. 56. リソース管理の改善 ダッシュボードからBurpが使用す るメモリ・ディスク容量を確認で きようになりました。 また、メモリがカツカツになった ら、実行中のタスクは一時停止し ます。
  57. 57. 2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  58. 58. 設定ライブラリ デフォルト・カスタム問わず、以下の設定情報をjson形式でインポー ト/エクスポートできるようになりました。 • クローリング設定 • スキャン設定 • スコープ設定 • ログイン設定 • ライブパッシブクロール設定
  59. 59. 2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  60. 60. REST API 現在はスキャンの開始と結果の取得のみ。 今後のアップデートで機能を追加していく予定とのこと。
  61. 61. REST API User options → Misc から設定することができます。
  62. 62. REST API Service URLにアクセスするとAPIのドキュメントが確認できます。
  63. 63. 2.0 新機能 • クローラ機能 • スキャンエンジン • JavaScriptの動的解析 • ダッシュボード • スキャンランチャー • ライブ スキャン • リソース管理の向上 • 設定ライブラリ • REST API • 新しいレンダリング
  64. 64. 新しいレンダリング しっかり表示してくれる 意外と便利
  65. 65. 新しいレンダリング Awwwardsに乗っているような、イケてるサイトも崩れる事なく レンダリングできました。 ただし、スクロール操作やキーボード操作はできませんでした。 また、大量のJSを読み込んでいるせいかPCに強い負荷がかかってい ました…。 https://www.awwwards.com
  66. 66. 検証不足&気になる点 バリデーションのかかっているフォームへの対処が気になる スキャン時間の長期化 複雑なサイトorいじわるなサイトにどこまで対応できるか気になる
  67. 67. 2.0のイケてない点 仕方ないけど、ちょいちょいバグる。 トイレ行ってたら、何故か落ちてる。 既存のログファイルを開こうとすると落ちる(回避方法あり) スキャンのデバッグログを出力したら文字化けして🧀 が出力 ヘッドレスブラウザの影響で、プロセスが大量に常駐する 気が付いたら70個以上も常駐してた
  68. 68. ロードマップ • クローラはまだJavascriptを正しく処理できていない。 • 本物のブラウザと同じように処理するための改善 • クローラの並列化処理の改善 • クローラのコンテンツ発見機能の改善(robots.txt, html comment内のlinkなど) • クロールによって生成されるナビゲーショングラフを他の目的でも利 用する • WebSocketの改良ツールの実装
  69. 69. まとめ スキャンやクロールの性能が向上 普段から使ってる人は便利かも DOM based の脆弱性検出が大幅に向上 診断視点で一番嬉しい実装。 内製化向けの機能追加 設定ライブラリや、REST APIなど
  70. 70. ご清聴ありがとうございました。

×