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.

脆弱性診断研究会 第34回セミナー資料

978 views

Published on

2016年4月7日(木)に実施したセミナーの資料です。
何か突っ込みどころがございましたら、お手数ですがお知らせいただけると嬉しいですm(_ _)m

第34回セミナーのテーマは「診断対象の見積りについて」です。

Published in: Internet
  • Be the first to comment

脆弱性診断研究会 第34回セミナー資料

  1. 1. 第34回 脆弱性診断ええんやで(^^) 「脆弱性診断って何をどうすればいいの?」 脆弱性診断研究会 株式会社トレードワークス セキュリティ事業部
  2. 2. Agenda 前半 自己紹介 OWASPって何? 脆弱性診断士について 診断対象見積りの考え方 後半 質疑応答
  3. 3. 自己紹介  氏名  松本 隆則 (まつもと たかのり)  Facebook  https://www.facebook.com/nilfigo  Twitter  https://twitter.com/DYOH2017
  4. 4. 自己紹介  株式会社トレードワークス セキュリティ事業部  https://security.tworks.co.jp/  脆弱性診断研究会 管理人&セミナー講師  https://security-testing.doorkeeper.jp/  http://security-testing.connpass.com/  OWASP JAPAN プロモーションチーム(new!)  https://www.owasp.org/index.php/Japan  http://blog.owaspjapan.org/
  5. 5. 脆弱性診断研究会とは 株式会社トレードワークスのセキュリティ事業部にて運営 Webアプリケーションやネットワーク機器などに対する脆弱性診断の 最新手法や脆弱性診断ツールの研究をするためのコミュニティ コワーキングスペース茅場町 Co-Edo(コエド)様にて第1回セミナー を2014年8月に開催して以来、30回以上のセミナーを実施 クライアント向けプライベートセミナーは年に数回実施
  6. 6. OWASPって何? The Open Web Application Security Project Let's know OWASP! https://speakerdeck.com/owaspjapan/lets-know-owasp-number-bpstudy20160226 工程別活用可能な資料・ツールの紹介 https://speakerdeck.com/owaspjapan/owasp-contents-reference OWASPの歩き方 https://speakerdeck.com/owaspjapan/what-is-owasp-20160319innovationegg7th
  7. 7. 脆弱性診断士について 以下、https://www.owasp.org/index.php/Japan のNewsより引用 2016/3/7 「脆弱性診断士(Webアプリケーション)スキルマップ&シラバス」公開 JNSA ISOG-JセキュリティオペレーションガイドラインWGとOWASP Japan主催の共同ワーキンググループであ る「脆弱性診断士(Webアプリケーション)スキルマッププロジェクト2016」において、脆弱性診断を行う個人の技 術的な能力を具体的にすることを目的とした『脆弱性診断士(Webアプリケーション)スキルマップ&シラバス』を 作成しました。 • https://www.owasp.org/images/c/c3/About-Pentester-Web- Skillmap_and_Syllabus-201603.pdf • https://www.owasp.org/images/b/bc/Pentester-Web- Skillmap_and_Syllabus-201603.pdf
  8. 8. 診断対象見積りの考え方 高いのか安いのかわからんと 評判の脆弱性診断のサービス 価格の根拠ってなに?
  9. 9. 診断対象見積りの考え方 見積りする前に、ある程度脆 弱性診断の仕組みを把握し ておけばイロイロ捗る!
  10. 10. 診断対象見積りの考え方 サービス価格見積り根拠の一つ である診断対象数の数え方が 今回のテーマです。
  11. 11. 診断対象見積りの考え方 「診断リクエスト」 ↓ パラメーターを伴うリクエスト
  12. 12. パラメーター送信方法 1. クエリー文字列(Query string) 2. HTTPリクエストボディ(POST) 3. 非同期通信 4. HTTPリクエストヘッダー 5. URLの一部がパラメーター
  13. 13. パラメーター送信方法 1. クエリー文字列(Query string) 2. HTTPリクエストボディ(POST) 3. 非同期通信 4. HTTPリクエストヘッダー 5. URLの一部がパラメーター
  14. 14. 1. クエリー文字列 http://zsk.example/index.php?user=test&pswd=t est 診断対象パラメーター • user • pswd
  15. 15. 1. クエリー文字列 例1 a.http://zsk.example/index.php? page=info.php&user=test&pswd=test b.http://zsk.example/index.php? next=info.php&user=test&pswd=test aとbは[page]と[next]パラメーターが異なるため、一般的にはそれぞ れ独立した診断リクエストとして数えます。
  16. 16. 1. クエリー文字列 例2 c.http://zsk.example/index.php? page=info.php&user=test&pswd=test d.http://zsk.example/index.php? user=test&pswd=test&page=info.php cとdは一見異なるパラメーター群に見えますが、並び順が異なるだけで 含まれているパラメーターは同一なため、ひとつの診断リクエストとして数 えます。
  17. 17. パラメーター送信方法 1. クエリー文字列(Query string) 2. HTTPリクエストボディ(POST) 3. 非同期通信 4. HTTPリクエストヘッダー 5. URLの一部がパラメーター
  18. 18. 2. HTTPリクエストボディ 画面上のフォーム POST http://zsk.example/index.php?page=login.php HTTP/1.1 ... ... ... username=test&password=test&login-php-submit-button=Login
  19. 19. 3. 非同期通信 裏でこっそりサーバーに接続して、HTMLやXML、 JSONなどを取得して画面上に反映したりこっそりデータを保 存したり。 例) • 住所自動入力フォーム(郵便番号で検索) • プルダウンリスト群の項目を自動変更
  20. 20. パラメーター送信方法 1. クエリー文字列(Query string) 2. HTTPリクエストボディ(POST) 3. 非同期通信 4. HTTPリクエストヘッダー 5. URLの一部がパラメーター
  21. 21. 4. HTTPリクエストヘッダー 上記の[Host]や[User-Agent]、[Cookie]といったHTTPリクエスト ヘッダーも診断対象パラメーターです。 ただし、実際に診断するかどうかはヘッダーの種類やWebアプリケーショ ンの仕様により異なります。 GET http://zsk.example/index.php?page=login.php HTTP/1.1 Host: 192.168.10.112 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ja Accept-Encoding: gzip, deflateDNT: 1 Referer: http://hoge/index.php?page=home.php&popUpNotificationCode=HPH0 Cookie: showhints=0; PHPSESSID=ddor943kfutdlp0dqu73va6io3 Connection: keep-alive
  22. 22. 4. HTTPリクエストヘッダー 例1 Cookieヘッダー  ログイン処理が存在する Cookieにセッション情報を管理するための文字列(セッションID)が 含まれることが多いため診断いたします。  ログイン処理が存在しない(検索やお問い合わせなど) Cookieが発行されていてもWebアプリケーション内部で使用してい ない可能性があるため診断対象としないことがあります。
  23. 23. 4. HTTPリクエストヘッダー 例2 User-Agentヘッダー サーバーへのアクセスがどのようなブラウザからであるかを識別するために 当ヘッダーを使用することがあります。識別した結果、画面のレイアウト やメニュー構成などが変化する場合は診断対象となります。 識別対象の例 • パソコン • スマートフォン • フィーチャーフォン(ガラケー)
  24. 24. パラメーター送信方法 1. クエリー文字列(Query string) 2. HTTPリクエストボディ(POST) 3. 非同期通信 4. HTTPリクエストヘッダー 5. URLの一部がパラメーター
  25. 25. 5. URLの一部がパラメーター ユーザーの詳細情報を表示するためのURLの例です。 URLの一部に含まれている「123456」がユーザーIDを示しています。 そのため、この数字をパラメーターとみなして診断します。 敢えてクエリー文字列で表すと下記のような感じです。 http://zsk.example/user/detail/123456/ http://zsk.example/user/detail.php?id=123456
  26. 26. 5. URLの一部がパラメーター 例1 aとbは、URLとしては異なりますが、ユーザーIDが異なるだけでWebアプリケーショ ン内部では同一の処理と推測されるため、ひとつの診断リクエストとして数えます。 ただし、リクエストの結果、大幅にメニュー構成やレイアウトなどが異なる画面が表示 される場合は、別の診断リクエストと見なす場合があります。 a. http://zsk.example/user/123456/detail/ b. http://zsk.example/user/987654/detail/
  27. 27. 5. URLの一部がパラメーター 例2 cとdでは、[〜user/123456/]までは同一のURLですが、その後に続くURLが異 なるため、それぞれ別の診断リクエストとして数えます。 c. http://zsk.example/user/123456/detail/ d. http://zsk.example/user/123456/edit/
  28. 28. 診断リクエストとパラメーター数の関係 作業工数やサービス価格の見積りのために 下記のように定義します。 1 診断リクエスト ✕ 5基本パラメーター → 1.00 基本診断ユニット 【ご注意】 上記のパラメーター数は本セミナー用に定義した仮の数値です。 弊社および私自身が実際にこの数値に基いて見積もりしているわけではありません。 また、診断対象アプリケーションの性質により基本パラメーター数は変動します。
  29. 29. 診断リクエストとパラメーター数の関係 1診断リクエスト ✕ 5基本パラメーター → 1.00 基本診断ユニット 上記の定義での算出例 1診断リクエスト ✕ 3パラメーター → 0.60 診断ユニット 1診断リクエスト ✕ 2パラメーター → 0.40 診断ユニット 1診断リクエスト ✕ 15パラメーター → 3.00 診断ユニット 合計 4.00 診断ユニット
  30. 30. 次回予告 診断前の準備について • 診断用環境 • 実稼働環境 • 検証用環境 • 事前準備 • 事前の申請が必要か(AWS、Azureなど) • 診断用データ • ユーザーアカウント(権限別に複数必要) • サイト上で閲覧および更新するデータ
  31. 31. 質疑応答 ご自由にどうぞ〜
  32. 32. お問い合わせ先 株式会社トレードワークス セキュリティ事業部 https://security.tworks.co.jp/ メールアドレス • セキュリティ事業部 <sec-pit@tworks.co.jp> • 松本 隆則 <t.matsumoto@tworks.co.jp>

×