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

20190107_AbuseCaseCheatSheet

OWASP Japan
January 07, 2019

 20190107_AbuseCaseCheatSheet

OWASP Japan

January 07, 2019
Tweet

More Decks by OWASP Japan

Other Decks in Technology

Transcript

  1. AbuseCase Cheatsheetの紹介
    PR Team 仲⽥ 翔⼀
    2019/1/7

    View Slide

  2. 1
    https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series

    View Slide

  3. 各役割において有⽤な60以上のチートシートが存在しています。
    2
    Developer
    /Builder
    Assessment
    /Breaker
    Draft/Beta
    OpSec/
    Defender
    Mobile
    ■Android Testing
    ■iOS Developer
    ■Mobile Jailbreaking
    ■Attack Surface Analysis
    ■XSS Filter Evasion
    ■Web Security Testing
    ■・・・
    ■SQLi Prevention
    ■Forgot Password
    ■Logging
    ■・・・
    ■Virtual Patching
    ■Vulnerability Disclosure
    ■Secure Coding
    ■Thread Modeling
    ■Content Security Policy
    ■・・・

    View Slide

  4. ⽇本語訳されているチートシートもあります。
    3
    https://jpcertcc.github.io/OWASPdocuments/ https://goo.gl/fNPGwB

    View Slide

  5. 実は頻繁に更新されていて、なにか追加されています。
    4
    https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series

    View Slide

  6. 5
    https://www.owasp.org/index.php/Abuse_Case_Cheat_Sheet

    View Slide

  7. OWASP SAMMではAbuse Caseを考慮すべきとされています。
    6

    View Slide

  8. Abuse Case Cheat Sheetの⽬次と説明 (1/3)
    7
    項番 タイトル 説明
    1 イントロ • たいていのWebアプリのセキュリティ要件には、「安全であ
    ること」や「OWASP Top10の脆弱性に対応していること」
    等、開発者にとっては⼀般的すぎて、かつ、無⽤な要件しか
    記載されていない。
    • 実⽤的な観点でセキュアなWebアプリを開発するために、ビ
    ジネス状況や技術的動向に基づき、Webアプリが防御しなけ
    ればならない攻撃を識別する必要がある。
    2 ⽬的 • このチートシートでは、Abuse Case⼀覧を作成する⽅法を
    説明する。
    3 このチートシートの使い⽅ • プロジェクト/スプリントにおいて、ビジネスリスクを考慮
    した上でのセキュリティ要件の導出や必要な追加予算の確保
    を⾏うためにAbuse Caseのリストを作成する。
    • Abuse Caseとは、「開発者が想定していない機能の利⽤の
    され⽅を攻撃者にされることにより⽣じる悪影響」である。
    • 複数の役割の⽅(後述)を集めたワークショップを実施する。
    ワークショップはアジャイルの場合はユーザストーリーとス
    プリントを関連付けた直後、ウォーターフォールの場合は機
    能要件を検討した直後に実施する。
    3.1 攻撃を特定すべき理由
    3.2 Abuse Caseの概念
    3.3 Abuse Caseの定義の仕⽅
    3.4 いつAbuse Caseを定義するの

    View Slide

  9. 8
    項番 タイトル 説明
    4 Abuse Caseの作り⽅例 ー
    4.1 Step 1: ワークショップの事
    前準備
    • 機能⼀覧(サンプル後述)を準備する。
    • 必要に応じて、対策⽅法⼀覧(サンプル後述)を準備する。
    • Abuse Case⼀覧の様式(対象となる機能、攻撃⽅法、CVSS
    スコア(または別の基準)、Abuse Caseの種別(技術/ビジネ
    ス※)、対策⽅法、対策/受容フラグ)を準備する。
    4.2 Step 2: ワークショップ中 • Abuse Case⼀覧の様式に基づき、複数の役割の⽅でAbuse
    Case⼀覧(サンプルを後述)を作成する。
    4.3 Step 3: ワークショップ後 • 作成したAbuse Case⼀覧における対策フラグ付きの対策に
    関し、必要に応じてセキュリティ要件を更新し、すべての対
    策に要するコストと⼯数の評価を⾏う。
    4.4 Step 4: 特定したAbuse Case
    のトラッキング
    • 設計/インフラ/ネットワークレベルおよびコードレベルで
    Abuse Caseに対して関連付けを⾏い、対応できていること
    を確認する。
    4.5 Step 5:特定したAbuse Case
    の検証
    • SAST/DASTまたはコードレビューを実施する。
    ※Abuse Caseの種別
    ●技術的なAbuseCase:⼊⼒フィールドからXSSを実施するためのリクエストを⾏う。
    ●ビジネス的なAbuseCase:オンラインショップで商品の価格を改ざんし、より低い⾦額で購⼊する。
    Abuse Case Cheat Sheetの⽬次と説明 (2/3)

    View Slide

  10. 各役割をこなし、対策/受容のコンセンサスをみんなで得ます。
    9
    ビジネス
    アナリスト
    リスク
    アナリスト
    品質担当
    (機能テスター)
    ペンテスター
    (セキュリ
    ティ担当)
    技術責任者
    ■各機能の説明
    ■セキュリティ要件の更新
    ■各機能に対する攻撃⽅法の提
    案/説明
    ■攻撃⽅法に対する対策及び講
    じる場所の提案/説明
    ■CVSSスコアの算出
    ■対策に対するフィージビリティ
    のフィードバック
    ■全ての対策に要するコストと⼯
    数の評価
    ■ビジネス状況に応じた
    CVSSスコアの修正/確定

    View Slide

  11. 各シートのサンプルがこれだ!
    10
    Abuse
    case ID
    影響を受け
    る機能ID
    Abuse caseの概要 攻撃ID (必
    要に応じて)
    CVSSス
    コア
    CVSSstring 種別 対策ID 対策/
    受容
    ABUSE_
    CASE_0
    01
    FEATURE_
    001
    マルウェアのダウンロ
    ードを⾏うための、悪
    意のあるマクロを含む
    Officeファイルをアッ
    プロードする。
    CAPEC-17 HIGH
    (7.7)
    CVSS:3.0/
    AV:N/AC:H/
    PR:L/UI:R/
    S:C/C:N/I:H/
    A:H
    技術 DEFENSE
    _001
    対策
    機能ID 機能名 機能概要
    FEATUR
    E_001
    ドキュメン
    トアップロ
    ード機能
    ユーザがファイルをアップロー
    ドする。
    対策ID 対策概要 対策に関する補⾜
    DEFENS
    E_001
    アップロードしたフ
    ァイルを検証する。
    ファイルアップロード
    に関するOWASPチー
    トシートを参照する。
    ■Abuse Case⼀覧
    ■機能⼀覧 ■対策⼀覧

    View Slide

  12. 11
    項番 タイトル 説明
    5 Abuse Case導出例 • OWASP Top10の脆弱性を例にAbuse Case導出例を⽰す。
    5.1 A1:インジェクション • OWASP Top10の各脆弱性に対応するAbuse Caseの導出例
    を⽰している。
    • ここでは、「A1:インジェクション」、「A2:認証の不備」
    の例を⽰す。
    • A1:インジェクション
    - ⼊⼒フィールドまたはAPIに対してインジェクション攻撃
    (SQL/LDAP/XPath/NoSQLクエリ、OSコマンド、XMLパ
    ーサー、SMTPヘッダー等)を実施する。
    • A2:認証の不備
    - IDとPWの組み合わせでリスト型攻撃を実施する。
    - デフォルト管理者アカウントを含む辞書攻撃を実施する。
    - 有効期限切れまたは偽装したセッションを⽤いてアクセス
    する。
    5.2 A2:認証の不備
    5.3 A3:機微な情報の露出
    5.4 A4:XML外部エンティティ参照
    5.5 A5:アクセス制御の不備
    5.6 A6:不適切なセキュリティ設定
    5.7 A7:XSS
    5.8 A8:安全でないデシリアライゼ
    ーション
    5.9 A9:既知の脆弱性のあるコンポ
    ネントの使⽤
    5.10 A10:不⼗分なロギングとモニ
    タリング
    6 スキーマのソース

    7 著者及び主要な編集者
    8 他のチートシート
    Abuse Case Cheat Sheetの⽬次と説明 (3/3)

    View Slide

  13. 12

    View Slide

  14. 13
    Hardening参加者の皆様、
    競技前にビジネスにおけ
    るAbuseCaseを想定した
    上で本番に臨んでみてわ?

    View Slide

  15. そもそもHardeningは、ECサイトの堅牢化⼒を競います。
    14
    https://wasforum.jp/

    View Slide

  16. 想定される各機能のAbuse Caseを事前に検討
    15

    ECサイトの機能
    ⼤ 中 ⼩
    フロント 商品紹介 商品⼀覧
    在庫終了ステータス
    商品注⽂ ショッピングカート
    配送時間指定
    注⽂処理
    ポイント購⼊
    お客様ページ 会員登録
    ログイン
    注⽂履歴表⽰
    退会
    その他 パスワード変更
    オススメ表⽰
    問い合わせ
    ECサイトの機能
    ⼤ 中 ⼩
    管理 売上状況
    ঎඼؅ཧ 商品登録/編集
    在庫情報登録
    ച্؅ཧ 売上状況CSV出⼒
    配送状況CSV出⼒
    納品書PDF出⼒
    各種メール送信
    ձһ؅ཧ お客様情報登録
    お客様情報CSV出⼒
    ίϯςϯπ؅ཧ オススメ管理
    SEO管理
    ϝϧϚΨ഑৴
    Ϋʔϙϯ؅ཧ
    【参考】https://www.ec-cube.net/product/functions.php

    View Slide

  17. OWASP Connectという勉強会をやっています。LT枠空いていますよ。
    16
    https://owaspprteam.connpass.com/event/113927/

    View Slide

  18. OWASP Japanはコミュニティスポンサーです。是⾮ご来場ください。
    17

    View Slide