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

WebアプリをOWASP TOP 10に対応させよう / #shibuyaxss techtalk #10

WebアプリをOWASP TOP 10に対応させよう / #shibuyaxss techtalk #10

WebアプリをOWASP TOP 10に対応させよう / #shibuyaxss techtalk #10

hasegawayosuke

December 13, 2017
Tweet

More Decks by hasegawayosuke

Other Decks in Programming

Transcript

  1. Shibuya.XSS techtalk #10
    2017-12-13 Yosuke HASEGAWA
    Webアプリを
    OWASP TOP 10に
    対応させよう

    View full-size slide

  2. OWASP TOP 10 - 2017
    •2017版でました(RC1の段階で
    いろいろもめた)
    https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf

    View full-size slide

  3. OWASP TOP 10 - 2017
    • A1 インジェクション
    • A2 認証の不備
    • A3 機密データの露出
    • A4 XML外部実体参照(XXE)
    • A5 アクセス制御の不備
    • A6 セキュリティ設定のミス
    • A7 クロスサイトスクリプティング
    • A8 安全でないデシリアライゼーション
    • A9 既知の脆弱性を持つコンポーネントの使用
    • A10 不十分なロギングおよび監視

    View full-size slide

  4. Q. 御社のWebサイト/製品/サービスは
    OWASP TOP 10 対応してますか?

    View full-size slide

  5. OWASP TOP 10対応
    • 対応例 →

    View full-size slide

  6. OWASP TOP 10対応
    • 対応例 ↓

    View full-size slide

  7. 自分のWebアプリも
    OWASP TOP 10対応してみよう

    View full-size slide

  8. 「自分のWebアプリ」 is 何?
    • やられWebアプリその1
    • やられWebアプリその2
    • やられWebアプリその3
    • やられWebアプリその4
    やられWeb アプリしか作ってない!

    View full-size slide

  9. やられWebアプリの
    OWASP TOP 10対応をしよう

    View full-size slide

  10. BadLibrary - 脆弱性の演習用やられWebアプリ
    http://bit.ly/BadLibrary

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  13. mail='[email protected]'
    [email protected]' (存在しない)
    ブラインドSQLi !

    View full-size slide

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

    View full-size slide

  15. セッションIDが「1」
    セッションIDの再発行を
    していない

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  24. BadLibrary - 脆弱性の演習用やられWebアプリ
    • 代表的な多種の脆弱性をそれなりに含む
    • OWASP TOP 10を(ほぼ)網羅
    • 脆弱性の有無を簡単に切り替え可能
    • 動かし続けてもそれなりに安全
    http://bit.ly/BadLibrary

    View full-size slide

  25. 脆弱だけど安全
    • お問い合わせログでディスクを消費する
    • 設定で無効にできる
    • XXEでサーバー上のファイルが漏洩する
    • 設定で無効にできる
    • 長期運用でメモリーリーク
    • セッションオブジェクトのメモリを解放していない…

    View full-size slide

  26. Question ?
    @hasegawayosuke
    http://utf-8.jp/
    securitytesting Slack team
    http://slackin.csrf.jp/

    View full-size slide