OWASP Top 10 and Your Web Apps

OWASP Top 10 and Your Web Apps

presented by Yosuke Hasegawa

D2c0774c30304e4970b502118aa791fe?s=128

OWASP Japan

March 05, 2018
Tweet

Transcript

  1. 1.

    OWASP Night at Mar 5 2018 #owaspjapan t あなたの あなたのWeb

    Webアプリケーション あなたの あなたのWeb Web Webアプリケーション アプリケーション OWASP TOP 10 アプリケーション アプリケーション OWASP TOP 10 OWASP TOP 10に OWASP TOP 10 OWASP TOP 10に 対応できていますか に に 対応できていますか 対応できていますか 対応できていますか? Yosuke HASEGAWA
  2. 2.

    OWASP Night at Mar 5 2018 #owaspjapan t はせがわようすけ ▸OWASP

    Kansai チャプターリーダー ▸OWASP Japan アドバイザリボードメンバー
  3. 3.

    OWASP Night at Mar 5 2018 #owaspjapan t ▸ 日本語版

    昨年末にリリースされました ▸ 日本語版翻訳コントリビューター https://www.owasp.org/images/2/23/OWASP_Top_10-2017%28ja%29.pdf Akitsugu ITO Albert Hsieh Chie TAZAWA Hideko IGARASHI Hiroshi TOKUMARU Naoto KATSUMI Riotaro OKADA Robert DRACEA Satoru TAKAHASHI Sen UENO Shoichi NAKATA Takanori ANDO Takanori NAKANOWATARI Tomohiro SANAE
  4. 4.

    OWASP Night at Mar 5 2018 #owaspjapan t ▸ A1:2017

    - インジェクション ▸ A2:2017 - 認証の不備 ▸ A3:2017 - 機微な情報の露出 ▸ A4:2017 - XML外部エンティティ参照(XXE) ▸ A5:2017 - アクセス制御の不備 ▸ A6:2017 - 不適切なセキュリティ設定 ▸ A7:2017 - クロスサイトスクリプティング ▸ A8:2017 - 安全でないデシリアライゼーション ▸ A9:2017 - 既知の脆弱性を持つコンポーネントの使用 ▸ A10:2017 - 不十分なロギングとモニタリング
  5. 5.

    OWASP Night at Mar 5 2018 #owaspjapan t OWASP TOP

    10 実際に体感はしにくい!?
  6. 6.

    OWASP Night at Mar 5 2018 #owaspjapan t ▸やられWebアプリはそれなりに色々世の中 になる

    ▸OWASP BWA ▸OWASP Juice Shop ▸既存やられWebアプリの問題 ▸含まれる脆弱性とOWASP TOP 10との関係性が 整理されていない ▸メンテされていないものも多い ▸動かす環境をつくるのが面倒 ▸多人数での演習に向かない ※上記BWAやJuice Shopがそうだというわけではありません
  7. 9.

    OWASP Night at Mar 5 2018 #owaspjapan t ▸BadLibrary http://bit.ly/BadLibrary

    ▸起動するまでが簡単 ▸Webアプリとしての機能が理解しやすい規模 ▸わかりやすい脆弱性がそこそこの量 ▸多人数でも安心して演習できる ▸含まれる脆弱性を設定で変更可能 % gi t cl one ht t ps: / / gi t hub. com / Secur eSkyTechnol ogy/ BadLi br ar y. gi t % cd sr c % npm i nst al l # ( SQLi t e3 ) % npm st ar t # 8080 W eb
  8. 10.

    OWASP Night at Mar 5 2018 #owaspjapan t ▸含まれる脆弱性の設定 /

    / conf i g. j son { " gl obal " : { " basi c" : " user : pass" / / BAI SC } , " vul ner abi l i t i es" : { / / " sql i " : [ " aut h" , " sear ch" , " bl i nd" ] , " xss" : [ " r ef l ect " , " st or ed" , " dom " ] , " sessi on" : [ " no- r ef r esh" , " no- ht t ponl y" , " ser i al " ] , " xxe" : t r ue, " csr f " : t r ue, " expose" : [ " di r i ndex" , " adm i n" , " cont act " ] } }
  9. 11.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  10. 12.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  11. 13.

    OWASP Night at Mar 5 2018 #owaspjapan t aaa /

    / conf i g. j son { " vul ner abi l i t i es" : { " sql i " : [ " aut h" ] } }
  12. 14.

    OWASP Night at Mar 5 2018 #owaspjapan t / /

    conf i g. j son { " vul ner abi l i t i es" : { " sql i " : [ " sear ch" ] } }
  13. 15.

    OWASP Night at Mar 5 2018 #owaspjapan t / /

    conf i g. j son { " vul ner abi l i t i es" : { " sql i " : [ " bl i nd" ] } } mail=chiba@example.jp
  14. 16.

    OWASP Night at Mar 5 2018 #owaspjapan t / /

    conf i g. j son { " vul ner abi l i t i es" : { " sql i " : [ " bl i nd" ] } } mail=chiba@example.jp mail=nouser@example.jp (存在しないユーザー)
  15. 17.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  16. 18.

    OWASP Night at Mar 5 2018 #owaspjapan t OWASP Night

    at Mar 5 2018 #owaspjapan t セッションIDが「1」 / / conf i g. j son { " vul ner abi l i t i es" : { " sessi on" : [ " no- r ef r esh" , " no- ht t ponl y" , " ser i al " ] } } 再発行されていない
  17. 19.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  18. 20.

    OWASP Night at Mar 5 2018 #owaspjapan t / /

    conf i g. j son { " vul ner abi l i t i es" : { " expose" : [ " di r i ndex" , cont act " ] } }
  19. 21.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  20. 22.

    OWASP Night at Mar 5 2018 #owaspjapan t OWASP Night

    at Mar 5 2018 #owaspjapan t / / conf i g. j son { " vul ner abi l i t i es" : { " xxe" : t r ue, " expose" : [ " adm i n" ] } }
  21. 23.

    OWASP Night at Mar 5 2018 #owaspjapan t / /

    conf i g. j son { " vul ner abi l i t i es" : { " xxe" : t r ue, " expose" : [ " adm i n" ] } }
  22. 24.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  23. 25.

    OWASP Night at Mar 5 2018 #owaspjapan t OWASP Night

    at Mar 5 2018 #owaspjapan t / / conf i g. j son { " vul ner abi l i t i es" : { " expose" : [ " adm i n" ] } }
  24. 26.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  25. 27.

    OWASP Night at Mar 5 2018 #owaspjapan t / /

    conf i g. j son { " vul ner abi l i t i es" : { " expose" : [ " di r i ndex" , " cont act " ] } }
  26. 28.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  27. 29.

    OWASP Night at Mar 5 2018 #owaspjapan t #owaspjapan t

    / / conf i g. j son { " vul ner abi l i t i es" : { " xss" : [ " r ef r ect " , " dom " ] } }
  28. 30.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  29. 31.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  30. 32.

    OWASP Night at Mar 5 2018 #owaspjapan t A1 インジェクション

    SQLインジェクション A2 認証の不備 セッションIDが連番、ログイン後の再発 行なし、httponlyなし A3 機微な情報の露出 問い合わせログが閲覧可能 A4 XML外部エンティティ参照(XXE) XXE A5 アクセス制御の不備 管理画面が誰でもアクセス可能 A6 不適切なセキュリティ設定 ディレクトリリスティング A7 クロスサイトスクリプティング 反射型XSS、DOM-based XSS A8 安全でないデシリアライゼーション ― A9 既知の脆弱性を持つコンポーネントの使用 ― A10 不十分なロギングとモニタリング ログを記録していない
  31. 33.

    OWASP Night at Mar 5 2018 #owaspjapan t ▸BadLibrary http://bit.ly/BadLibrary

    ▸起動するまでが簡単 ▸Webアプリとしての機能が理解しやすい規模 ▸わかりやすい脆弱性がそこそこの量 ▸多人数でも安心して演習できる ▸含まれる脆弱性を設定で変更可能
  32. 34.

    OWASP Night at Mar 5 2018 #owaspjapan t ▸脆弱だけど安全 ▸環境を破壊するような脆弱性は含まれていない

    ▸多人数で1台に対しての演習も可能 ▸不特定多数への公開では ▸お問い合わせログでディスクを消費する → 設定で無効にできる ▸XXEでサーバー上のファイルが漏洩する → 設定で無効にできる ▸長期運用でメモリーリーク セッションオブジェクトのメモリを解放していな い…