Mais conteúdo relacionado

Apresentações para você(20)

Similar a Mix Leap 0214 security(20)

Último(20)

Mix Leap 0214 security

  1. 脆弱性とセキュリティ ~脆弱性ってなんだろな~
  2. 【名前】 安達 智弘(Adachi Tomohiro) 【会社】 株式会社 神戸デジタル・ラボ セキュリティ事業部 【取り組み】 Webアプリケーションの 脆弱性診断業務に従事。 最近ではクラウドサービスの セキュリティについて理解を深めている。 自己紹介
  3. 【名前】 安達 智弘(Adachi Tomohiro) 【会社】 株式会社 神戸デジタル・ラボ セキュリティ事業部 【コミュニティ】 ・大和セキュリティ ・神戸脆弱性診断の会 自己紹介
  4. 本セッションのターゲット ■セキュリティに興味がある方 ■これからセキュリティ意識を高めたい方
  5. 本セッションの目的 ■「脆弱性」に対する理解 ■セキュアな開発
  6. 本セッションの目的 脆弱性ってヤバい
  7. 本日の流れ 1、脆弱性ってなんだろう 2、脆弱性が生まれる原因ってなにか? 3、Webアプリケーションを例にした脆弱性と攻撃
  8. 注意事項 ・インターネットに繋がっている場合、 絶対に外部に向けて攻撃を実行しないように注意 ・本セッションで習得した技術を悪用、または不正に使用しないこと ⁃ 不正アクセス行為の禁止等に関する法律 ⁃ http://law.e-gov.go.jp/htmldata/H11/H11HO128.html 本資料の内容を利用して発生したいかなる損害に対しても、弊社および著 作者は一切責任を負いません。
  9. セキュリティってどんなイメージ?
  10. セキュリティについて サーバー Webサイト
  11. 脆弱性
  12. バグ
  13. バグとは 不具合 (プログラムの誤り)
  14. 脆弱性とは・・? 悪用できるバグ (セキュリティホール)
  15. どうして脆弱性が生まれてしまうの か?
  16. 皆さんアプリ開発をするときに 一番優先していることは何ですか? Q.
  17. アプリが設計通り 思い描いている形で動くかどう か
  18. なぜ発生するのか 脆弱なコードを書いても 「エラーは吐かない」ため 気付かない
  19. アプリ開発におけるセキュリティは 後回しになりがち
  20. どう対策しよう?
  21. 脆弱性診断
  22. 脆弱性診断とは・・ 攻撃者の視点から既知の技術を用いて企業のシステムや ネットワーク、アプリケーションなどを疑似攻撃を試み ることで、セキュリティ上の問題や脆弱性がないかどう かのテストを行うこと。
  23. ん・・? 開発中に行うテストで 脆弱性って発見できないの?
  24. テスト工程の目的 【開発工程でのテスト】 • 設計通り動作しているか、機能不備を起こしていない か等を検証します。 • 主に製品としての品質を保つことを目的とします。
  25. 脆弱性診断の目的 【脆弱性診断】 • システムがサイバー攻撃に耐えられるかを検証します。 • 主にセキュリティ上の品質を保つことを目的とします。
  26. 脆弱性診断するってなると なかなか難しい
  27. でもセキュリティを考えず 脆弱性のあるサイトを運用し続ける と・・
  28. どんな問題があるのか ■ Webサイトの内容を改ざん ■個人情報等、公開していない情報の閲覧 ■本人が意図しない処理の実行 ■サーバへ侵入する糸口
  29. なぜダメなのか ■個人情報の漏洩 ■サービスが停止してしまうリスク ■“安全ではない”というイメージ付着 経済的損失・企業への信頼の低下
  30. なら、どうすればいいのか?
  31. 脆弱性を生まないよう 開発を行うことが、一つの対策にな る
  32. セキュアな開発を行うためには アプリの脆弱性を知らないといけない
  33. ここからはWEBアプリを例に 脆弱性と攻撃手法について紹介します
  34. HTMLを 簡単におさらいしましょう
  35. HTMLにおける文字の出力 HTMLタグ HTMLタグ
  36. HTMLにおける文字の出力 タグで囲む
  37. HTMLにおける文字の出力 <p> (特殊文字) </p> (特殊文字) こんにちは (ただの文字)
  38. JavaScriptについて
  39. Javascriptの使用方法 タグで囲む
  40. WEBアプリケーションに対して 一体どのような攻撃があるのか
  41. 代表的なWEBアプリの脆弱性について ・XSS (クロス・サイト・スクリプティング) →コンテンツの改ざん
  42. クロス・サイト・スクリプティングっ て・・? 攻撃手法その①
  43. XSS(クロス・サイト・スクリプティング) 利用者がサイトへアクセスした際に、 意図しないjavascriptを実行させる 攻撃手法
  44. XSSの原理 POST
  45. XSSの原理 フォームから 入力した文字が出力される
  46. じゃあ、「タグ」を入力するとどうな る?
  47. XSSの原理 【入力値】 </h2><h1>文字を変えてみる</h1> ※<h>タグは見出しとして出力される
  48. XSSの原理 【結果】 <h>タグが認識されている
  49. XSSの原理
  50. XSSの原理 【入力値】 <script>alert('XSS')</script> ※<script>タグはjavascriptの処理を行う
  51. XSSの原理 【結果】 Javascriptが実行される
  52. XSSの原理 <script>タグが認識され Javascriptが実行される
  53. XSS攻撃による影響 ・フィッシングサイトへの誘導 ・コンテンツの改ざん ・Cookieの抜き出し
  54. フィッシングサイトへの利用 XSS攻撃利用例
  55. XSS攻撃利用例
  56. XSS攻撃利用例 Javascriptが埋め込みが可能な場合
  57. Javascriptを使用して 任意のサイトへ リダイレクトさせることが可能
  58. XSS攻撃利用例 攻撃対象サイト そっくりのログイン画面を用意する
  59. XSS攻撃利用例 【入力値】 <script> location.href=‘{URL}’; </script> このページへアクセスすると リダイレクトされる
  60. XSS攻撃利用例 あれ?もう一回ログイン? →攻撃者にクレデンシャル情報を 送信してしまう
  61. なぜ発生するのか 本来「文字列」として出力されるべき入力値が HTMLタグとして認識されている
  62. XSSの対策方法について 特殊文字を「ただの文字」として扱う エスケープ処理
  63. XSSの対策方法について エスケープ処理は HTMLエンティティへ変換 を行うことを指す ※XSS対策へ推奨されている文字
  64. XSSの対策方法について < (特殊文字) &lt; (ただの文字) 置き換え
  65. XSSの対策方法について 【参考 】PHPでの対策例 特殊文字をHTMLエンティティに変換する関数を使用する (例)PHPの関数 htmlspecialchars($text, ENT_QUOTES, “UTF-8”); 変換対象となる文字列 扱う文字列の文字コード (指定することを推奨) 変換オプション この場合はシングルクオートも 変換対象となる(推奨)
  66. XSSの対策方法について ブラウザでは変換され、 <script>alert(1);</script> と表示される
  67. XSSの対策方法について
  68. 実際に検証してみた
  69. 準備したページ
  70. 未対策ページとXSS対策ページ
  71. じゃあここに <script>alert(‘XSS’)</script> を入力すると、どうなる?
  72. 本来あるべき形はこのはず
  73. 実行してみるとこうなる
  74. ブラウザ上でソースを比較してみる 未対策だと「タグ」として 認識されている
  75. PHPのソース確認 エスケープ処理
  76. 見かけ上は差がない
  77. 実行してみるとこうなる
  78. XSS発見のポイント ■特殊文字がどう取り扱われているのか確認する ■html内にタグがそのまま出力されていないか ■ユーザー入力が反映される画面全てが対象
  79. コードに潜む脆弱性 脆弱なコードを書いても 「エラーは吐かない」ため 気付かない
  80. “情報”から脆弱性が 生まれるリスク
  81. 攻撃者に与える ”情報” について
  82. 攻撃者に与える ”情報” について
  83. 攻撃者に与える ”情報” について
  84. 攻撃者に与える ”情報” について
  85. 攻撃者に与える ”情報” について
  86. 攻撃者に与える ”情報” について
  87. 攻撃者に与える ”情報” について ■サーバのバージョン情報 ■アプリケーションやフレームワークのエラー文 ■処理失敗時のエラーメッセージ等 ■ソース上にAPIキーをハードコード 表示情報を元に次の攻撃へ繋ぐことが可能
  88. 攻撃者に与える ”情報” について ■サーバのバージョン情報 ■アプリケーションやフレームワークのエラー文 ■処理失敗時のエラーメッセージ等 ■ソース上にAPIキーをハードコード 表示情報を元に次の攻撃へ繋ぐことが可能
  89. 攻撃者に与える ”情報” について
  90. 本日のまとめ ■脆弱性は「悪用できるバグ」のこと ■セキュアな開発が脆弱性への対策になる ■セキュアな開発を行うために 「脆弱性」を知ること
  91. 神戸でやっている勉強会があります 「セキュリティ」を テーマとした勉強会を 不定期で行っています。
  92. お疲れ様でした。 最後までご清聴いただき ありがとうございました。