Proxy War
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • 11/29のOWASP DAYで登壇した時の資料です!
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
259
On Slideshare
257
From Embeds
2
Number of Embeds
1

Actions

Shares
Downloads
5
Comments
1
Likes
4

Embeds 2

https://twitter.com 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Profile(プロフィール) Shun Suzaki(洲崎 俊) Twitter:@tigerszk ユーザ企業のセキュリティチームに所属している「とある診断員」 OWASPでの活動 •OWASP Japan プロモーションチームメンバー •セキュリティ要件定義書 WGなどにも参加
  • 2. Local Proxyって知ってますか?
  • 3. Local Proxyとは? HTTP Response HTTP Request HTTP Request Local Proxy Tool HTTP Response その名の通りLocal環境で動作するProxy クライアントからの通信をLocal Proxyを経由させることで以下のようなこと が可能です。 • 通信内容の詳細を確認 • 通信内容を編集して送信 ※Man In the Middle(中間者攻撃)的な方法でHTTPSの通信解析にも対応 しているものも沢山あります。
  • 4. 実はこのツール めっちゃ良く使います!
  • 5. 一般的なWebアプリケーション テストの手法
  • 6. 通常のWebサーバとの通信 <html> <body> 氏名:vultest<BR> メールアドレス:vultest@example.jp<BR> 性別:男<BR> <form action=“register” method=“POST”> (以下略) </html> POST /confirm.php HTTP/1.1 Host: example.jp (以下略) name=vultest&mail=vultest%40example.jp&gender=1 HTTP Response HTTP Request
  • 7. 値を変更した場合の応答結果を確認 POST /confirm.php HTTP/1.1 Host: example.jp (以下略) name=vultest&mail=vultest%40example.jp”>xss&gender=1 <html> <body> 氏名:vultest<BR> メールアドレス:vultest@example.jp”>xss<BR> 性別:男<BR> <form action=“register” method=“POST”> (以下略) </html> HTTP Response HTTP Request じゃあパラメータ値で こんなの送ったらどう なるの? おお!出力時に「”」,「>」が エスケープされてないね。 XSSありそう!
  • 8. ということをやるため、まさに 必須ツールな訳です!
  • 9. 結構いっぱいあります
  • 10. 覇権を争う三つのProxy Fiddler BurpSuite OWASP ZAP Fiddler http://www.telerik.com/fiddler/web- debugging Burp Suite http://portswigger.net/burp/ OWASP Zed Attack Proxy Project https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project ※ベンダのロゴは上記サイトから引用。
  • 11. それぞれどんなもの? Fiddler Burp Suite OWASP ZAP 開発元 Telerik ※Microsoftの中の人が開発して いた PortSwigger Web Security OWASP Zed Attack Proxy Project ※Mozillaが開発に関わっていた 費用 無料配布 一部有料 ※professionalは有料 無料配布 プラット フォーム Windows ※Fiddler Alpha for Mono で機 能制限されるけどMacやLinuxで も動く 環境を選ばず 環境を選ばず 概要 シンプルな作りの、Web開 発者向けのデバッグ用 ツール 脆弱性診断を実施するた めの様々な機能が搭載さ れている 脆弱性診断用のツールだ が、どちらかといえば自動 診断に特化
  • 12. 突然ですが 会場の皆さんに質問です!
  • 13. •Local Proxyを使ったことがある方 •Fiddlerを使っている方 •Burp Suiteを使っている方 •OWASP ZAPを使っている方 •その他のProxyを利用している方 挙手をお願いします!
  • 14. 本セッションの進め方 これから各Proxyの使い手の方々に、Proxyのアピール合 戦を行ってもらいます。 セッションの最後に、自分が一番使いたいと思ったProxy に投票をお願いします。 Which proxy is the winner? 一番多くの投票数を獲得したProxy がProxy Warの勝者となります!
  • 15. Proxy War 開戦
  • 16. Fiddler Battle Phase
  • 17. Profile(プロフィール) Takashi Honda (本田 崇) Twitter •Where is the vulnerability? 「脆弱性はどこにある?」 @hagurese Fiddler •2008年頃からほぼ毎日 使っています。
  • 18. Profile(プロフィール) Private(個人) •Fiddler Extension Developer •公開サイト「はぐれSEの工房」 http://www.hagurese.net/factory/ Work(お仕事) •Web Application Security Tester (Webアプリケーション脆弱性診断員) •技術ブログ 「Security Base」 http://secdiag.blogspot.jp/
  • 19. Usability (使い勝手の良さ) Round 1
  • 20. Usability (使い勝手の良さ) 初心者に優しい利便性
  • 21. Usability (使い勝手の良さ) Simple UI(シンプルなUI)
  • 22. Usability (使い勝手の良さ) Easy Installation and Configuration (インストール、設定が簡単)
  • 23. Usability (使い勝手の良さ) Japanese Tutorial Reference (日本語の資料) Fiddlerの開発者である Eric Lawrence氏による 解説書の日本語版
  • 24. Usability (使い勝手の良さ) Japanese Tutorial Reference (日本語の資料) http://www.hebikuzure.com/fiddler/
  • 25. Features(特徴) Round 2
  • 26. Features(特徴) 作業効率を上げる機能性
  • 27. Features(特徴) not Attack Proxy, but Web Debugging Proxy (Webデバッグ用のプロキシ) •Statistics, Timeline
  • 28. Features(特徴) Logging (ログ管理) •Password Protected SAZ
  • 29. Features(特徴) Logging (ログ管理) •File Logging Drag & Drop !!
  • 30. Features(特徴) Filters (各種フィルタ) •Process Filter (プロセスフィルタ) •All, Browsers, NonBrowser, Hide •Specific Process (特定プロセスのみ) •Host, Request Header, etc. Filter
  • 31. Features(特徴) AutoResponder •Response Cached Contents (キャッシュによる高速化) •Replace Contents (コンテンツを差し替え) •Abort Requests (特定のリクエストを遮断)
  • 32. Special(ここがすごい!) Round 3
  • 33. Special(ここがすごい!) 玄人好みの拡張性
  • 34. Special(ここがすごい!) Script Extension (スクリプト拡張) •JScript.NET (できれば他の言語で・・・)
  • 35. Special(ここがすごい!) Script Extension (スクリプト拡張) •現場で即興でスクリプトを書き上げる!!! •エキスパートのノウハウ、テクニックが・・・
  • 36. Special(ここがすごい!) DLL Extension (DLL拡張) •Watcher (Casaba Security) •Passive Scanner •x5s (Casaba Security) •XSS Security Testing Assistant •Burp-like Inspector (yamagata21) •Intruder21の後継
  • 37. Special(ここがすごい!) Extension Architecture (拡張アーキテクチャ) •All API can be hacked!! (すべてのAPIが利用可能) •Event Handler Interface •FiddlerObject, FiddlerApplication •Session Flags •ui-comments •ui-color / ui-backcolor
  • 38. Special(ここがすごい!) Extension Architecture(拡張アーキテクチャ) Fiddlerはここまで<魔>改造できる!!! Add Menu (メニュー追加) Add Tab (タブ追加) Hide Buttons (ボタン非表示)
  • 39. Special(ここがすごい!) Extension Architecture(拡張アーキテクチャ) Fiddlerはここまで<魔>改造できる!!! Add Tool Menu (ツールメニュー追加) Add Anywhere (どこにでも追加) Add SubForm (サブフォーム追加)
  • 40. Conclusion (まとめ) 1.初心者に優しい利便性 2.作業効率を上げる機能性 3.玄人好みの拡張性 是非、Fiddlerをお試しください!!!
  • 41. Burp Suite Battle Phase
  • 42. Profile(プロフィール) Twitter abend (小河哲之) セキュリティエンジニア (Webをメインにやってます) 得意科目:アルコール
  • 43. Usability (使い勝手の良さ) Round 1
  • 44. Round1 Usability (使い勝手の良さ) 君は新人だから知らないと思うけど、Burp Suiteは日本語をうまく扱えないんだ。 ( ̄□ ̄;)!!
  • 45. Round1 Usability (使い勝手の良さ) 「Macro」などの名前やログのコピペ時に文字化けしてしまう。 再度立ち上げると、文字化けす るので日本語で登録しないで。 「Copy to file」でファイル出力すると文字化け せずに出力可能だが。
  • 46. Round1 Usability (使い勝手の良さ) 日本語は弱いけど、すごい使いやすい機能も あるんです。
  • 47. Round1 Usability (使い勝手の良さ) ショートカットキーが細かく設定可能。 範囲選択し、Ctrl+bで BASE64エンコード、 Ctrl+Shift+bでBASE64デ コード可能。hでHTML、uで URLのエンコード・デコードが 可能。 Pro v1.6.08では、「Intruder」のショートカット キーも追加されたようです。
  • 48. Round1 Usability (使い勝手の良さ) リクエスト・レスポンスを正規表現で検索が可能 右下にmatchした数が表示されるので、XSSのように特定 の文字列が出力されているかどうかが簡単にわかる。
  • 49. Features(特徴) Round 2
  • 50. Round2 Features(特徴) 「Intruder」は、事前に登録した診断パターンを診断箇所に セットして、順次リクエストしてくれる。 診断箇所を自動判別してくれるが、 自分で設定も可能。 エラーメッセージなどの出力結果 (grep match)が一目瞭然。
  • 51. Round2 Features(特徴) 「Repeater」は、同様のリクエストを複数回発行させる場合 に有効。 リクエストを修正してGOを押すと、レスポンスが出力される。 範囲選択しCtrl+bなどで BASE64のエンコード・デコード も簡単に行え、チェック可能。
  • 52. Round2 Features(特徴) 「Intruder」や「Repeater」以外にも、効率よく診断する機能 が備わっています。④に対して診断するとき・・・ ①ログイン ②トップ画面 ③検索画面 ④検索結果 「Macro」に登録 「Session Handler Rules」で実 行時のルールなどを設定 診断したい ◎ ①から③を「Macro」に登録 ◎ 「Session Handling Rules」で実行のルールなどを設定 ①から③を自動的にリクエストしてくれる!!
  • 53. Round2 Features(特徴) 「Macro」では、蓄積したログの中から発行するリクエストを 選択する。ログイン処理などを自動実行してくれる。 対象となるリクエストを選択 Cookieの引き継ぎなどを設定して、「Test macro」を実行し、再現テスト可能。
  • 54. Round2 Features(特徴) 「Macro」で、リクエスト時のパラメータ値を固定値以外にも レスポンス中から取得することも可能。 トークンなどの可変な値を取得する場合や 元々のリクエストに存在しないパラメータ の追加も可能。
  • 55. Round2 Features(特徴) 登録した「Macro」を実行する条件などを「Session Handling Rules」で登録する。 「Run macro」を選択 実行条件などを指定
  • 56. Round2 Features(特徴) 「Session Handling Rules」の「Check Session is valid」は、 有効なセッションがない場合の動作を定義可能。 条件を指定し、その条件に合致した場合 に、定義した「Macro」の実行やブラウザを 用いた正常なセッションの取得を促される。 例: エラーが発生したら、ログインから再度や り直す。
  • 57. Round2 Features(特徴) 「Check Session is valid」で有効なセッションかチェックし ながら、「Intruder」を実行することで、最小限のリクエストで 診断が可能。 その際に、「Use cookies from the session handling cookie jar」も設定し ないと、「Intruder」でリクエストする Cookieが設定時のものになってしまい、 毎回ログイン処理が実行されてしまう。 「Cookie Jar」とは・・・ セッションの再利用を手助けする仕組み
  • 58. Special(ここがすごい!) Round 3
  • 59. Round3 Special(ここがすごい!) 拡張機能として「extender」があり、「BApp Store」で拡張モ ジュールをインストール可能。 インストールの方法は、「BApp Store」から「Install」ボタンを押 下するか、拡張子bappのファイ ルをマニュアルインストールする 方法がある。
  • 60. Round3 Special(ここがすごい!) 「Google Hacking」は、Googleを使って公開領域に不要な ファイルが存在していないか確認するための秀逸なextension 対象とするサイト名および検索したいファ イル拡張子などをセットし、「Google Hacking Perform」を押すだけなので、非 常に簡単。
  • 61. Round3 Special(ここがすごい!) 「Google Hacking」(1年半くらい前に公開)がなぜ秀逸かと いうとhttpでGoogle検索を行う点にある。 Googleの仕様変更に伴い、 httpで 検索すると当然httpsにリダイレクト される。 だが、「Google Hacking」はリダイレ クトを認識していない。
  • 62. Round3 Special(ここがすごい!) どんなサイトで試しても、絶対に0件しか検出されない。 なので、絶対にこのextensionは使ってはならない。 秀逸だから。
  • 63. Round3 Special(ここがすごい!) 本当に秀逸なextensionとして、「Python Scripter」がある。 これは、pythonを用いて、リクエスト・レスポンスのカスタマイ ズするためのextension。 すごくシンプルだが、リクエ ストやレスポンスを簡単に操 作でき、拡張性が高い。
  • 64. Round3 Special(ここがすごい!) 自分で拡張モジュールを開発して実装することも可能。 Java、Python、Rubyで開発す ることが可能。 APIの仕様 http://portswigger.net/Burp/extender/api/index.html
  • 65. Round3 Special(ここがすごい!) 宗教上の理由で、Javaがさわれない人でも安心して開発で きます。 Burp Suiteは、ピースフルなツールなんです。
  • 66. Conclusion (まとめ) Round 4
  • 67. Conclusion (まとめ) 小学4年生 「#どうして、日本語が苦手なBurp Suiteを使うんですか。」
  • 68. Conclusion (まとめ) 診断に特化した機能が豊富に実装されているから、大人は 使うんだよ。 ・「Intruder」 → 自動で診断可能 ・「Repeater」 → 同様のリクエストを何度も発行可能 ・「Macro」 → かんたんに遷移登録が可能 ・「Session Handling Rules」 → 本格的なセッション管理可能 ・「Google Hacking」 → 当初は動いてたかもしれないけど ・「Extender」 → にがてな言語以外でも開発可能
  • 69. Conclusion (まとめ) ・「Intruder」 → 自動で診断可能 ・「Repeater」 → 同様のリクエストを何度も発行可能 ・「Macro」 → かんたんに遷移登録が可能 ・「Session Handling Rules」 → 本格的なセッション管理可能 ・「Google Hacking」 → 当初は動いてたかもしれないけど ・「Extender」 → にがてな言語以外でも開発可能 児童か本当に
  • 70. Conclusion (まとめ) この世の中、なにが本当か分からないことが多いです。 Burp Suiteの使い勝手も、ぜひご自身で使ってみて評価し てください。 ※本資料は、特定の時刻になっても消えません。
  • 71. OWASP ZAP Battle Phase
  • 72. Profile(プロフィール) 亀田 勇歩 - @YuhoKameda [活動] ZAP Evangelist 『OWASP Zed Attack Proxy 運用マニュアル』執筆協力 ZAP Hands-on Training in AppSec APAC2014 [業務] Web/PF脆弱性診断 インシデントレスポンス全般
  • 73. Usability (使い勝手の良さ) Round 1
  • 74. Round1 Usability (使い勝手の良さ) 日本語対応 20カ国語 / 30の翻訳プロジェクト
  • 75. Round1 Usability (使い勝手の良さ) アイコン表示 チェックや複雑な操作必要なく ワンタッチで機能を実行
  • 76. Round1 Usability (使い勝手の良さ) ブレーク機能 リクエストをブレーク レスポンスをブレーク 特定条件(カスタム)の 場合にブレーク
  • 77. Round1 Usability (使い勝手の良さ) HTML表示機能 Browser View(拡張機能)
  • 78. Round1 Usability (使い勝手の良さ) 各種モードを使いこなす Safe mode : 検査不可(閲覧モード) Protected mode : スコープ内のみ検査可 Standard mode : どこでも検査可
  • 79. Features(特徴) Round 2
  • 80. Round2 Features(特徴) -ツリー表示 -タイムライン表示 サイト構成情報の表示
  • 81. Round2 Features(特徴) スパイダー検索 動的スキャン 開始URLを選択し、スパイダー検索 狙った対象を検索/動的スキャン
  • 82. Round2 Features(特徴) フィルタ機能 ブラウザを操作して自動フィルタ処理 レスポンス中の ”Set-cookie”攻撃を抽出
  • 83. Round2 Features(特徴) フィルタ機能 プロキシを通して自動的に処理 Basic認証後にcookie発行 Set-cookieを検出!
  • 84. Round2 Features(特徴) データはDB管理 HSQL (JavaのRDB) - Persist Session - Snapshot Session ZAP起動直後 (保存無し) Persist Session (継続保存) Snapshot Session (スナップショット) Snapshot Session (スナップショット) ZAP終了 (自動保存) ① ② ③ ①’
  • 85. Round2 Features(特徴) ソースから調査 修正パッチ オープンソースを活かす
  • 86. Special(ここがすごい!) Round 3
  • 87. Round3 Special(ここがすごい!) アドオンを追加し、様々な言語でスクリプト処理を施すこと が可能 ZAP Scripts 対応言語: Zest Javascript Python Ruby … Mozillaによって開発された Web向けのスクリプト言語。 JSONで定義されている Zestとは…
  • 88. Round3 Special(ここがすごい!) ログイン処理 (login.jsp) 商品購入 (basket.jsp) ログアウト処理 (logout.jsp) 連続処理のスクリプト化
  • 89. Round3 Special(ここがすごい!) 記録したリクエストがスクリプト化 実行して動作確認 正常に動作!
  • 90. Round3 Special(ここがすごい!) その他のスクリプト化例 CSRFトークンを検出し自動割り当て 問い合わせフォームをスクリプト化。 「anticsrf」を検出後、 「csrf1」に自動割り当て
  • 91. Round3 Special(ここがすごい!) その他のスクリプト化例 ZAPを通して通信した時に 全て自動的にPOSTをGETに変換 POSTメソッド判定 GETへ変換 POSTパラメータを GETパラメータへ
  • 92. Round3 Special(ここがすごい!) [Project] zaproxy zap-extensions zaproxy-test OWASP ZAP@Open HUB [Group] OWASP ZAP Developer OWASP ZAP User OWASP ZAP Script OWASP ZAP Japan … コミュニティの存在
  • 93. Round3 Special(ここがすごい!) 沖縄で開催された Hardening 10 Evolution にて初告知! OWASP ZAP Japan Group メンバー数:51人 http://bit.ly/zapjapan 日本語コミュニティ開設
  • 94. Round3 Special(ここがすごい!) 参加者が全員で作るプロジェクト! ZAP トップページからリンクが!!
  • 95. Conclusion (まとめ) Round 4
  • 96. Conclusion (まとめ) 日本語で直感的に使いやすい 診断機能が付いてオープンソース 複雑な作業もコミュニティの情報交換で解決 OWASP ZAP 始めませんか?
  • 97. 投票タイム
  • 98. 一番使ってみたいと思ったProxyに 挙手をお願いします!
  • 99. Proxy War Winner
  • 100. めでたしめでたし?
  • 101. これだけじゃ俺達のProxyの魅力を 全然語りつくせない!! ていうわけで、、、
  • 102. 緊急告知
  • 103. 乞うご期待!
  • 104. お願い! もしOWASP Nightで取り上げてほしい議題とか ありましたら、是非以下のハッシュタグでつぶや いていただけますでしょうか! ハッシュタグ:#proxywar
  • 105. TO BE CONTINUED...