Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

hasegawayosuke
March 06, 2018
230

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

hasegawayosuke

March 06, 2018
Tweet

Transcript

  1. OWASP Night at Mar 5 2018 #owaspjapan
    t
    あなたのWebアプリケーション
    OWASP TOP 10に
    対応できていますか?
    Yosuke HASEGAWA

    View Slide

  2. OWASP Night at Mar 5 2018 #owaspjapan
    t
    はせがわようすけ
    ▸OWASP Kansai チャプターリーダー
    ▸OWASP Japan アドバイザリボードメンバー

    View Slide

  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

    View Slide

  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 - 不十分なロギングとモニタリング

    View Slide

  5. OWASP Night at Mar 5 2018 #owaspjapan
    t
    OWASP TOP 10
    実際に体感はしにくい!?

    View Slide

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

    View Slide

  7. OWASP Night at Mar 5 2018 #owaspjapan
    t
    やられWebアプリ
    作ってみた

    View Slide

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

    View Slide

  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アプリが起動

    View Slide

  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 " ]
    }
    }

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  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" ]
    }
    }

    View Slide

  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" ]
    }
    }

    View Slide

  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" ]
    }
    }
    [email protected]

    View Slide

  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" ]
    }
    }
    [email protected]
    [email protected]
    (存在しないユーザー)

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  18. 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 " ]
    }
    }
    再発行されていない

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  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 " ]
    }
    }

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  22. 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" ]
    }
    }

    View Slide

  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" ]
    }
    }

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  25. 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" ]
    }
    }

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  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 " ]
    }
    }

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  29. OWASP Night at Mar 5 2018 #owaspjapan
    t
    / / conf i g. j son
    {
    " vul ner abi l i t i es" : {
    " xss" : [ " r ef r ect " , " dom
    " ]
    }
    }

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  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 不十分なロギングとモニタリング ログを記録していない

    View Slide

  33. OWASP Night at Mar 5 2018 #owaspjapan
    t
    ▸BadLibrary http://bit.ly/BadLibrary
    ▸起動するまでが簡単
    ▸Webアプリとしての機能が理解しやすい規模
    ▸わかりやすい脆弱性がそこそこの量
    ▸多人数でも安心して演習できる
    ▸含まれる脆弱性を設定で変更可能

    View Slide

  34. OWASP Night at Mar 5 2018 #owaspjapan
    t
    ▸脆弱だけど安全
    ▸環境を破壊するような脆弱性は含まれていない
    ▸多人数で1台に対しての演習も可能
    ▸不特定多数への公開では
    ▸お問い合わせログでディスクを消費する
    → 設定で無効にできる
    ▸XXEでサーバー上のファイルが漏洩する
    → 設定で無効にできる
    ▸長期運用でメモリーリーク
    セッションオブジェクトのメモリを解放していな
    い…

    View Slide

  35. OWASP Night at Mar 5 2018 #owaspjapan
    t
    ▸@hasegawayosuke
    ▸http://utf-8.jp/

    View Slide