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.

今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)

1,832 views

Published on

2018年9月15日(土) 名古屋で開催したOWASP Day 758にて発表した「今夜わかるWebアプリケーション脆弱性診断」の資料です。
脆弱性診断士スキルマッププロジェクトの話やペネトレーションテスト(Penetration testing / Red Team)、SQLインジェクション、脆弱性診断の実施手順などを紹介しています。

Published in: Software
  • Be the first to comment

今夜わかるWebアプリケーション脆弱性診断 (OWASP Day 758 / 2018)

  1. 1. 今今夜夜わわかかるるWWeebbアアププリリケケーーシショョンン脆脆弱弱性性診診断断 OWASP Japan Chapter Leader, TRICORDER Co. Ltd. Sen UENO
  2. 2. PPrrooffiillee:: 上上野野 宣宣 ((SSeenn UUEENNOO)) 株株式式会会社社トトラライイココーーダダ 代代表表取取締締役役 奈良先端科学技術大学院大学で情報セキュリティを専攻、2006年にサイバーセキュリティ教育や演習、 脆弱性診断などを提供する株式会社トライコーダを設立 OWASP Japan 代表、情報セキュリティ専門誌『ScanNetSecurity』編集長、 Hardening Project 実行委員、JNSA ISOG-J WG1リーダー、SECCON 実行委員、 情報処理安全確保支援士 集合講習講師、セキュリティキャンプGMなどを務める (ISC)² 2017年アジア・パシフィック情報セキュリティ・リーダーシップ・アチーブメント(ISLA)を受賞 主主なな著著書書 Webセキュリティ担当者のための脆弱性診断スタート ガイド - 上野宣が教える情報漏えいを防ぐ技術、 HTTPの教科書、めんどうくさいWebセキュリティ、他多数 (C) 2018 Tricorder Co. Ltd. 2
  3. 3. 脆脆弱弱性性診診断断ととはは (C) 2018 Tricorder Co. Ltd. 3
  4. 4. 脆脆弱弱性性診診断断でで発発見見すするるもものの • 脆弱性 – プログラムのバグ – バグの中で悪用可能なものが脆弱性 • セキュリティ機能の不足 – 実装すればセキュリティレベルが向上する対策を実施していない – 安全でないプロトコルや弱いパスワードの利用なども • 脆弱性とセキュリティ機能の不足を見つけるのが脆弱性診断 (C) 2018 Tricorder Co. Ltd. 4
  5. 5. WWeebbアアププリリのの脆脆弱弱性性診診断断ははゼゼロロデデイイ探探しし プラットフォームで対策すべき事項 • 既知の脆弱性 – バージョンが古く脆弱性が存在する – すでにプロダクトのサポートが終了しているため脆弱性が修正されない • 設定の不備 – 最新バージョンであってもセキュリティに関わる設定の不備による脆弱 性が存在する • Webアプリケーション(プロダクトやパッケージを除く)はゼ ロデイを探すことになる – 攻撃者以外は誰も脆弱性を発見してくれない (C) 2018 Tricorder Co. Ltd. 5
  6. 6. 脆脆弱弱性性診診断断ととペペネネトトレレーーシショョンンテテスストト • 脆弱性診断 – システムの構成要素単体の脆弱性を探す – 脆弱性やセキュリティの問題を見つけることが目的 – 網羅的により多くの脆弱性を探す(単一の脆弱性を探す) – テスト方法を学べば実施可能なテストケースに則ったテスト • ペネトレーションテスト – 組織や組織のシステム全体の脆弱性を探す – 管理者権限の奪取や情報の入手が可能かどうかを検証することが目的 – 複数の脆弱性などを攻撃に利用する(網羅的には探さない) – 多分野に亘るハッキング能力が必要(特に内部ネットワーク) – Red Team/Teaming, 脅威ベースペネトレーションテスト(TLPT) (C) 2018 Tricorder Co. Ltd. 6
  7. 7. 脆脆弱弱性性診診断断士士ススキキルルママッッププププロロジジェェククトト • 脆弱性診断を行う個人の技術的な能力を具体的にすることを目的 としたプロジェクト – ISOG-JとOWASP Japan共同WG – Webアプリケーション脆弱性診断ガイドラインなどを公開 https://www.owasp.org/index.php/Pentester_Skillmap_Project_JP (C) 2018 Tricorder Co. Ltd. 7
  8. 8. 「「脆脆弱弱性性診診断断士士」」ラランンクク 22つつののラランンククをを定定義義 • Silver ランク – 脆弱性診断業務に従事する者が全員知って おくべき技能 • Gold ランク – 単独で診断業務を行うために必要な技能 8
  9. 9. 各各ラランンククのの詳詳細細 9 SSiillvveerr GGoolldd 対象者像 l 自社の Web アプリケーションの脆 弱性診断(受入れ検査)を行う方 l 脆弱性診断業務の従事を目指す方 (学生など) l Web アプリケーションの脆弱性診断 (受入れ検査)を行う方 l 脆弱性診断をサービスとして提供する業 務に従事する方 業務と役割 l Gold ランクの者の指示の下、脆弱性 診断を行う l 自社 IT システムの脆弱性診断を行 う l 脆弱性診断業務を管理し、診断方針の決 定、作業指示の実施、診断結果の精査お よび評価を行うことができる l 脆弱性診断の報告書を作成し、技術的 な説明ができる 期待する 技術水準 l IT システムを診断する上で(最低 限)必要な技術や知識を保有 l 脆弱性診断サービスを提供するのに必要 十分な技術や知識を保有
  10. 10. WWeebbアアププリリケケーーシショョンン脆脆弱弱性性診診断断ガガイイドドラライインン • Webアプリケーションの脆弱性診断に最低限必要な診断項目や手順を定義 – 一定レベルの手動診断が行えるようになる – 自動診断ツールの検査結果の検証が行える ダダウウンンロローードドででききまますす • WWeebbアアププリリケケーーシショョンン脆脆弱弱性性診診断断ガガイイドドラライインン – ガイドライン本体 • ガガイイドドラライインン利利用用ののたためめののドドキキュュメメンントト – 使い方 https://www.owasp.org/index.php/Pentester_Skillmap_Project_JP
  11. 11. WWeebbアアププリリケケーーシショョンンのの診診断断項項目目((11)) • 出力値のエスケープの不備 – SQLインジェクション – コマンドインジェクション – CRLFインジェクション – クロスサイトスクリプティング • セッション管理の不備 – セッションフィクセイション – CookieのHttpOnly属性未設定 – 推測可能なセッションID 11(C) 2018 Tricorder Co. Ltd.
  12. 12. WWeebbアアププリリケケーーシショョンンのの診診断断項項目目((22)) • 情報漏えい(情報露出) – クエリストリング情報の漏洩 – キャッシュからの情報漏洩 – パスワードフィールドのマスク不備 – 画面表示上のマスク不備 – HTTPS利用時のCookieのSecure属性未設定 – HTTPSの不備 – 不要な情報の存在 • 動作環境への診断項目 – サーバーソフトウェアの設定の不備 – 公開不要な機能・ファイル・ディレクトリの存在 12(C) 2018 Tricorder Co. Ltd.
  13. 13. WWeebbアアププリリケケーーシショョンンのの診診断断項項目目((33)) • その他の攻撃 – パストラバーサル – XML外部エンティティ参照(XXE) – オープンリダイレクト – シリアライズされたオブジェクト – リモートファイルインクルージョン – クリックジャッキング – 認証に係る脆弱性 – 認可制御の不備・欠落 – クロスサイト・リクエストフォージェリー(CSRF) 13(C) 2018 Tricorder Co. Ltd.
  14. 14. ククロロススササイイトトススククリリププテティィンンググのの診診断断例例 診診断断をを実実施施すすべべきき箇箇所所 ペペイイロローードド すべて <script>alert(1)</script> 操操作作をを行行うう対対象象 診診断断方方法法 パラメーター パラメーターの値に検出パターンを挿入し、リクエ ストを送信 脆脆弱弱性性ががああるる場場合合のの結結果果 脆脆弱弱性性ががなないい場場合合のの結結果果 検出パターンが適切にエエススケケーーププさされれずずにに挿入され る 検出パターンが適切にエエススケケーーププさされれてて挿入される ※ Webアプリケーション脆弱性診断ガイドラインより抜粋元元のの文文字字 エエススケケーーププ例例 & &amp; < &lt; > &gt; " &quot; ' '
  15. 15. SSQQLLイインンジジェェククシショョンン (C) 2018 Tricorder Co. Ltd. 15
  16. 16. SSQQLLイインンジジェェククシショョンン • 不正な入力により任意のSQL文を実行させる攻撃 – Webコンテンツやユーザー入力値を格納するデータベースに対する攻撃 – 顧客情報の改ざん・流出、コンテンツの改ざん、意図しない挙動 – 認証の回避や認証情報の書き換え、テーブル破壊などの攻撃が可能 16(C) 2018 Tricorder Co. Ltd.
  17. 17. SSQQLL 17 SELECT title,text FROM userTbl WHERE id=123 ステートメント 列名 テーブル名 条件 列名 値 値: hoge 列名 1234 数値 'hoge' 文字列 count(*), min(x) 関数 max(x), char(x) 条件(WHERE): a=b , a<>b 同等 a>b 比較 a like '%test%' 文字列検索 a in ('a','b') 抽出 a not in (1,2,3) (C) 2018 Tricorder Co. Ltd.
  18. 18. http://........ BBrroowwsseerr SSQQLLイインンジジェェククシショョンンのの攻攻撃撃例例 18 BOOKSTORE 著者 "上野宣" の検索結果 発発売売日日 著著者者 書書名名 12/06/19 上野宣 めんどうくさいWebセ… 05/06/17 上野宣 今夜わかるメールプロ… 04/12/09 上野宣 今夜わかるHTTP 04/12/09 上野宣 今夜わかるTCP/IP 検索キーワードに指定 した著者の書籍一覧が 表示される機能 ※絶版の書籍は 表示されない (C) 2018 Tricorder Co. Ltd.
  19. 19. http://........ BBrroowwsseerr 正正常常処処理理のの動動作作例例 19 BOOKSTORE 著者 "上野宣" の検索結果 発発売売日日 著著者者 書書名名 12/06/19 上野宣 めんどうくさいWebセ… 05/06/17 上野宣 今夜わかるメールプロ… 04/12/09 上野宣 今夜わかるHTTP 04/12/09 上野宣 今夜わかるTCP/IP 【SQL文】 SELECT * FROM bookTbl WHERE author = '上野宣' and flag = 1; bookTblテーブルから、author=上野宣 かつ flag=1(販売可能)の行のデータを 表示しなさい http://example.com/search?q=上野宣 (C) 2018 Tricorder Co. Ltd.
  20. 20. デデーータタベベーーススのの処処理理 20 bbiidd ddaattee aauutthhoorr iitteemm ffllaagg 1000203503 17/06/23 上杉謙信 塩対応 1 1000203501 12/06/19 上野宣 めんどうくさいWebセキュリティ 1 1000103409 10/06/02 明智光秀 本能寺の変 0 1000093050 05/06/17 上野宣 今夜わかるメールプロトコル 1 1000085771 04/12/09 上野宣 今夜わかるHTTP 1 1000072889 04/12/09 上野宣 今夜わかるTCP/IP 1 1000042384 03/04/21 上野宣 ネットワーク初心者のためのTCP/IP入門 0 bookTbl bookTblテーブルから、author= 上野宣 かつ flag=1 の行のデータを表示しな さい ※ flag=0 は絶版書籍 (C) 2018 Tricorder Co. Ltd.
  21. 21. http://........ BBrroowwsseerr SSQQLLイインンジジェェククシショョンンのの動動作作例例 21 BOOKSTORE 著者 "上野宣" の検索結果 発発売売日日 著著者者 書書名名 12/06/19 上野宣 めんどうくさいWebセ… 05/06/17 上野宣 今夜わかるメールプロ… 04/12/09 上野宣 今夜わかるHTTP 04/12/09 上野宣 今夜わかるTCP/IP 【SQL文】 SELECT * FROM bookTbl WHERE author ='上野宣' -- ' and flag = 1; bookTblテーブルから、 author=上野宣 の行のデータを表示しなさい (「--」以降はコメントアウトされるので flag=1 の条件は無視される) http://example.com/search?q=上野宣' -- 書き換える (C) 2018 Tricorder Co. Ltd.
  22. 22. デデーータタベベーーススのの処処理理 22 bookTblテーブルから、 author=上野宣 の行のデータを表示しなさい (flagの条件はSQLインジェクションによって無視されている) bbiidd ddaattee aauutthhoorr iitteemm ffllaagg 1000203503 17/06/23 上杉謙信 塩対応 1 1000203501 12/06/19 上野宣 めんどうくさいWebセキュリティ 1 1000103409 10/06/02 明智光秀 本能寺の変 0 1000093050 05/06/17 上野宣 今夜わかるメールプロトコル 1 1000085771 04/12/09 上野宣 今夜わかるHTTP 1 1000072889 04/12/09 上野宣 今夜わかるTCP/IP 1 1000042384 03/04/21 上野宣 ネットワーク初心者のためのTCP/IP入門 0 bookTbl 本来は表示されない行 (C) 2018 Tricorder Co. Ltd.
  23. 23. http://........ BBrroowwsseerr SSQQLLイインンジジェェククシショョンン結結果果 23 BOOKSTORE 著者 "上野宣' --" の検索結果 発発売売日日 著著者者 書書名名 12/06/19 上野宣 めんどうくさいWeb… 05/06/17 上野宣 今夜わかるメールプロ… 04/12/09 上野宣 今夜わかるHTTP 04/12/09 上野宣 今夜わかるTCP/IP 03/04/21 上野宣 ネットワーク初心者の… 本来は表示されない 絶版も含めたデータが 表示されてしまう (C) 2018 Tricorder Co. Ltd.
  24. 24. SELECT * FROM bookTbl WHERE author = '$q' and flag = 1; SELECT * FROM bookTbl WHERE author = '上野宣' -- ' and flag = 1; SSQQLLイインンジジェェククシショョンンのの原原因因 • SQL文の構文を破壊する攻撃 – パラメーターに与えられた値がリテラルの外にはみ出した状態になり、 リテラルの後ろに続くSQL文として解釈される – 構文を破壊する文字は何か? – 構文を破壊した後に続く有効な攻撃は何か? 24 authorのリテラル をはみ出している (C) 2018 Tricorder Co. Ltd.
  25. 25. 値値のの出出力力先先でで機機能能をを持持っっててそそれれがが動動作作すするる • 出力先によって機能を持つ特殊文字は異なる – SQL文、OSコマンド、ヘッダー、HTML、JavaScript、ディレクトリな ど 25 http://........ BBrroowwsseerr ショッピングサイト 入 力 処 理 出 力 クライアント Webアプリケーション HTTP リクエスト http://........ BBrroowwsseerr DB ファイル システム HTTPレスポンス DBアクセス ファイルアクセス 値の出力先 (C) 2018 Tricorder Co. Ltd.
  26. 26. イインンジジェェククシショョンン関関連連のの脆脆弱弱性性診診断断でで確確認認すするる現現象象 • 構文を破壊して、リテラルの外にはみ出したことの確認 – 例:「"」で構文が破壊され、後続の文字がはみ出したことを確認 • 特殊文字が機能したことの確認 – 例: 「1+1」が演算して実行されたことを確認 • コマンドが実行されたことの確認 – 例: 「/bin/sleep 20」でコマンド実行され、20秒間止まることを確認 (C) 2018 Tricorder Co. Ltd. 26
  27. 27. 脆脆弱弱性性診診断断にに使使用用すするるツツーールル (C) 2018 Tricorder Co. Ltd. 27
  28. 28. 自自動動とと手手動動のの診診断断手手法法 2つの診断手法 • 自動的に脆弱性を発見する診断 – 自動診断ツールによる診断 • 手作業で脆弱性を発見する診断 – 手動診断補助ツールを使う手作業による診断 • 自動診断ツールでは発見が難しい脆弱性や、自動的に探すことが 困難な機能や箇所があるため、確実に脆弱性診断を行うためには 手作業による診断を合わせて行うことが必要 – 自動診断ツールにしか発見できない脆弱性はない (C) 2018 Tricorder Co. Ltd. 28
  29. 29. 自自動動診診断断ツツーールルのの特特長長とと得得意意分分野野 • 最も大きな特長はスピード • パラメーターに値を挿入して発見するタイプの脆弱性 – SQLインジェクションやクロスサイトスクリプティングなど • HTMLやCookieなどのセキュリティ機能の不足 – レスポンス内容を見れば判断ができるセキュリティ機能の不足の発見 – CookieのHttpOnly属性、X-Frame-Optionsなど • ディレクトリやファイルの発見 – リンクされているURL、robots.txtなどからファイルを探索 – crossdomain.xmlなどの特定のアプリケーションのためのファイルの探索 – 辞書機能で、どこからもリンクされていないファイルやディレクトリを探すこ ともある (C) 2018 Tricorder Co. Ltd. 29
  30. 30. 自自動動診診断断ツツーールルでではは発発見見がが難難ししいい脆脆弱弱性性やや機機能能 発見が難しい脆弱性 • 認可制御の不備・欠落 • ビジネスロジック上の問題 • メールヘッダーインジェクション • クロスサイトリクエストフォージェリ(CSRF) 発見が難しい機能 • 人間の判断や操作が必要になるもの • メール受信、CAPTCHA、二要素認証、複数要素認証 • ゲームのような操作を伴うもの • 脆弱性の発動に複数のパラメーターを利用するもの • 一度しか実行できない機能 • 入力値の影響が次画面ではなく他の画面にでるもの (C) 2018 Tricorder Co. Ltd. 30 ツールによって異なる
  31. 31. 脆脆弱弱性性診診断断にに使使用用すするるツツーールル • Proxyツール – WebブラウザとWebサーバーの間にProxyとして入り、リクエスト・レ スポンスに介在する – 取得や保存、書き換え、再生などを行う (C) 2018 Tricorder Co. Ltd. 31 http://........ BBrroowwsseerr ショッピングサイト WebサーバーProxyツールWebブラウザ
  32. 32. OOWWAASSPP ZZAAPP (C) 2018 Tricorder Co. Ltd. 32
  33. 33. OOWWAASSPP ZZAAPP 動動的的ススキキャャンンがが 検検出出すするる脆脆弱弱性性 • インジェクション – CRLFインジェクション • HTTPヘッダーインジェクション/HTTPレスポンス分割攻撃 • メールヘッダーインジェクションは検出しない – Format String Error • CWE-134: Use of Externally-Controlled Format String • フォーマットストリングバグ – Server Side Code Injection • CWE-94:Improper Control of Generation of Code (‘Code Injection’) • コードインジェクション – Server Side Include • CWE-97: Improper Neutralization of Server-Side Includes (SSI) Within a Web Page • SSIインジェクション – SQLインジェクション – クロスサイトスクリプティング(反射型) – クロスサイトスクリプティング(持続型) • バッファオーバーフロー – CWE-788: Access of Memory Location After End of Buffer • パラメータ改ざん – CWE-472:External Control of Assumed-Immutable Web Parameter • リモートOSコマンドインジェクション – コマンドインジェクション • クライアント・ブラウザ – セキュアページのブラウザキャッシュ • サーバ・セキュリティ – パストラバーサル – リモートファイルインクルージョン • 一般 – Script Active Scan Rules • 動的スキャン用に作成されたスクリプトの実行 – 外部リダイレクト • オープンリダイレクト • 情報収集 – ディレクトリブラウジング • CWE-548: Information Exposure Through Directory Listing – ディレクトリリスティング (C) 2018 Tricorder Co. Ltd. 33
  34. 34. BBuurrpp SSuuiittee (C) 2018 Tricorder Co. Ltd. 34
  35. 35. BBuurrpp SSuuiittee PPrrooffeessssiioonnaall AAccttiivvee SSccaannnneerr (C) 2018 Tricorder Co. Ltd. 35
  36. 36. 脆脆弱弱性性診診断断のの実実施施 (C) 2018 Tricorder Co. Ltd. 36
  37. 37. 脆脆弱弱性性診診断断のの実実施施手手順順 (C) 2018 Tricorder Co. Ltd. 37 テストケース作成 脆弱性診断の実施 診断結果の検証 レポート作成 • 診断対象の記録 • シナリオ作成 • 自動診断ツール を使った診断 • 手動診断補助 ツールを使った 診断 • 診断ツールによる レポート出力 • 手作業による レポート作成 • 手作業による 診断結果の検証
  38. 38. 脆脆弱弱性性診診断断のの実実施施手手順順 (C) 2018 Tricorder Co. Ltd. 38 テストケース作成 脆弱性診断の実施 診断結果の検証 レポート作成 • 診断対象の記録 • シナリオ作成 • 自動診断ツール を使った診断 • 手動診断補助 ツールを使った 診断 • 診断ツールによる レポート出力 • 手作業による レポート作成 • 手作業による 診断結果の検証
  39. 39. テテスストトケケーースス((診診断断リリスストト))のの作作成成 • どこを診断するのか? – URL – Webページ内の特定の機能 – クエリーやPOSTデータ、ヘッダーフィールドなどのパラメーター • どの順序で診断するのか? – どのページから先に行うかの優先順位 – 特定の機能を利用するための画面遷移の順序 (C) 2018 Tricorder Co. Ltd. 39
  40. 40. 診診断断リリスストトのの作作成成 1. 診断リストひな形の作成 – 項番、名称、URL、TYPE、パラメーター、診断項目 2. Webサイトのクロール – Burp Suiteを使い、全動的ページ、全機能を巡回 – パラメーターやCookieの状態によって、異なる機能やパラメーターになるこ ともあるので注意 3. リクエスト・レスポンスを確認しパラメーターの記載 – URL、TYPE、パラメーターを記載 – TYPE:GET、POST、Cookie、Redirect • GET、POSTメソッド • Cookie:Set-Cookieヘッダ • Redirect:Locationヘッダ、METAタグのRefresh、JavaScript によるリダイレクト (location.href, location.assign, location.replace) (C) 2018 Tricorder Co. Ltd. 40
  41. 41. 診診断断リリスストト NNoo.. 名名称称 UURRLL TTYYPPEE パパララメメーータターー SSQQLLii ココママンン ドドii CCRRLLFFii XXSSSS パパスストト ララババーー ササルル オオーーププ ンンリリダダ イイレレクク トト RRFFII ククリリッッ クク ジジャャッッ キキンンググ 認認証証 認認可可制制 御御のの不不 備備・・欠欠 落落 セセッッ シショョンン フフィィクク セセイイ シショョンン CCSSRRFF HHttttppOOnnll yy属属性性未未 設設定定 推推測測可可 能能なな セセッッ シショョンン IIDD 情情報報漏漏 ええいい 1 トップページ http://www.badstore.net/ 1 Cookie SSOid Cookie CartID 2 Home http://www.badstore.net/cgi- bin/badstore.cgi Cookie SSOid - - - - - Cookie CartID - - - - - URL action - - - - - 3 Sign our Guestbook http://www.badstore.net/cgi- bin/badstore.cgi?action=guestbook URL action - - - - - Cookie SSOid - - - - - Cookie CartID - - - - - 4 Sign our Guestbook > Add Entry http://www.badstore.net/cgi- bin/badstore.cgi?action=doguestbook 1 2 URL action - - - Cookie SSOid - - - Cookie CartID - - - Body name - - 4 Body email - - 5 Body comments - - 6 (C) 2018 Tricorder Co. Ltd. 41
  42. 42. 診診断断リリスストト (C) 2018 Tricorder Co. Ltd. 42 診断をしない項目は 塗りつぶす
  43. 43. 診診断断リリスストト (C) 2018 Tricorder Co. Ltd. 43
  44. 44. 診診断断リリスストト (C) 2018 Tricorder Co. Ltd. 44 パラメーターに 起因しない脆弱性 パラメーターに 起因しない脆弱性 パラメーターに 起因する脆弱性
  45. 45. 診診断断リリスストト (C) 2018 Tricorder Co. Ltd. 45 診断の結果 脆弱性がなければ「-」 診断の結果 脆弱性があれば「番号」を付ける 番号は詳細レポートと紐付く 診断完了後は すべての項目が埋まる
  46. 46. 脆脆弱弱性性診診断断のの実実施施手手順順 (C) 2018 Tricorder Co. Ltd. 46 テストケース作成 脆弱性診断の実施 診断結果の検証 レポート作成 • 診断対象の記録 • シナリオ作成 • 自動診断ツール を使った診断 • 手動診断補助 ツールを使った 診断 • 診断ツールによる レポート出力 • 手作業による レポート作成 • 手作業による 診断結果の検証
  47. 47. 脆脆弱弱性性診診断断のの実実施施手手順順 (C) 2018 Tricorder Co. Ltd. 47 テストケース作成 脆弱性診断の実施 診断結果の検証 レポート作成 • 診断対象の記録 • シナリオ作成 • 自動診断ツール を使った診断 • 手動診断補助 ツールを使った 診断 • 診断ツールによる レポート出力 • 手作業による レポート作成 • 手作業による 診断結果の検証
  48. 48. 診診断断結結果果のの検検証証 • 発見した脆弱性は本当に問題になるのか?脅威になるのか?を検 証 • 自動診断ツールによる診断の場合は、手作業による診断結果の検 証が必要な場合もある • 手動診断補助ツールを使った診断の場合は脆弱性診断の実施時に 合わせて行うこともある (C) 2018 Tricorder Co. Ltd. 48
  49. 49. 誤誤検検知知とと見見逃逃しし 誤検知(false positive) • 正常なものを誤って脆弱性だと判断してしまうこと 見逃し(false negative) • 脆弱性を発見できずに見逃してしまうこと • 誤検知が起きるときはWebアプリケーションに何らかの問題が あることも多いので、一概に誤検知が悪いこととはいえないこと もある (C) 2018 Tricorder Co. Ltd. 49
  50. 50. 自自動動診診断断ツツーールルのの誤誤検検知知とと見見逃逃ししをを減減ららすす • 異なる自動診断ツールを使った診断 • 自動診断レポートの確認 – 必要な場合には手作業で確かめる (C) 2018 Tricorder Co. Ltd. 50 効率的かつ確実な診断には 自動診断ツールと手作業による診断を 組み合わせて行うことが必要
  51. 51. 脆脆弱弱性性診診断断のの実実施施手手順順 (C) 2018 Tricorder Co. Ltd. 51 テストケース作成 脆弱性診断の実施 診断結果の検証 レポート作成 • 診断対象の記録 • シナリオ作成 • 自動診断ツール を使った診断 • 手動診断補助 ツールを使った 診断 • 診断ツールによる レポート出力 • 手作業による レポート作成 • 手作業による 診断結果の検証
  52. 52. 診診断断報報告告書書のの記記載載事事項項 • 表紙 – タイトル、日付、報告者(会社名、部署名、担当者名など) • 目次 • イントロダクション – 診断報告書について(報告書の概要や目的について) – 脆弱性診断サービスの診断対象について – 業務運営上のリスク(診断対象の事業やサービスなどのリスクについて) – 診断を行う際に同意した契約上の規則(免責事項、守秘義務など) – 診断を行う際の制限事項(主に脆弱性を発見にあたっての阻害要因) • 診断実施概要 – 診断の実施日程 – 診断対象(URL、ドメイン、IPアドレス、機器名、サービス名など) – ネットワーク環境(診断対象と診断実施側のネットワーク的な関係) – 診断実施者(診断を担当した脆弱性診断士) – 診断環境(診断に使用したOS環境や診断ツール、バージョンなど) • 診断結果 – 診断結果の総合評価 – 個別の脆弱性の報告 (C) 2018 Tricorder Co. Ltd. 52
  53. 53. 個個別別のの脆脆弱弱性性のの報報告告 • 通し番号(報告書内での通し番号) • 脆弱性名称 • 脆弱性を一意に特定する識別子 – CWE、CVEなど • リスク評価 – CVSS、独自指標など • 脆弱性を発見した場所 – URL、タイトルや画面遷移での位置、画面キャプチャなど • 脆弱性を発見したときのリクエストとレスポンスのHTTPメッセージ • 脆弱性があると判断した理由 – 脆弱性の発動に一番因果関係が深いと考えられる事項 • 脆弱性の解説や対策 • システムやビジネスへの影響や脅威 (C) 2018 Tricorder Co. Ltd. 53
  54. 54. ((例例))SSQQLLイインンジジェェククシショョンンのの報報告告 • 脆弱性名称:SQLインジェクション • リスク評価:高 • 場所 – http://example.com/cgi-bin/badstore.cgi – 画面左上「Quick Item Search」の検索フォーム • リクエストしたHTTPメッセージの内容 – パラメーター「searchquery」に「'(シングルクォート)」を入力したときに、DBMSのエラーメッセージ「Query failed」 が表示されたため、SQLインジェクションがあると判断 (C) 2018 Tricorder Co. Ltd. 54 GET /cgi-bin/badstore.cgi?searchquery=%27&action=search&x=0&y=0 HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ja,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate DNT: 1 Referer: http://example.com/cgi-bin/badstore.cgi?action=whatsnew Connection: keep-alive
  55. 55. ささいいごごにに (C) 2018 Tricorder Co. Ltd. 55
  56. 56. 脆脆弱弱性性診診断断士士にに求求めめらられれるる倫倫理理観観 • 「脆弱性診断士は、高い倫理を持ち、適切な手法でITシステムの脆弱 性診断を行える者であり、脆弱性診断士スキルマップ&シラバスで求 める技術や知識を保有している者に対して与えられる呼称である。」 (脆弱性診断士スキルマップの解説) • 脆弱性診断の技術を悪用することで他者に不利益を与えたり、犯罪を 起こしてしまうこともある • 自分に権利があるもの以外を勝手に脆弱性診断をしないこと – 余計な正義感は不要 – バグバウンティ・プログラムなどもある • HackerOne https://www.hackerone.com/ (C) 2018 Tricorder Co. Ltd. 56

×