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. 各役割において有⽤な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 ▪・・・
  2. 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を定義するの か
  3. 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)
  4. 各役割をこなし、対策/受容のコンセンサスをみんなで得ます。 9 ビジネス アナリスト リスク アナリスト 品質担当 (機能テスター) ペンテスター (セキュリ

    ティ担当) 技術責任者 ▪各機能の説明 ▪セキュリティ要件の更新 ▪各機能に対する攻撃⽅法の提 案/説明 ▪攻撃⽅法に対する対策及び講 じる場所の提案/説明 ▪CVSSスコアの算出 ▪対策に対するフィージビリティ のフィードバック ▪全ての対策に要するコストと⼯ 数の評価 ▪ビジネス状況に応じた CVSSスコアの修正/確定
  5. 各シートのサンプルがこれだ! 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⼀覧 ▪機能⼀覧 ▪対策⼀覧
  6. 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)
  7. 想定される各機能のAbuse Caseを事前に検討 15 ✕ ECサイトの機能 ⼤ 中 ⼩ フロント 商品紹介

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