AbuseCase Cheatsheetの紹介PR Team 仲⽥ 翔⼀2019/1/7
View Slide
1https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series
各役割において有⽤な60以上のチートシートが存在しています。2Developer/BuilderAssessment/BreakerDraft/BetaOpSec/DefenderMobile■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■・・・
⽇本語訳されているチートシートもあります。3https://jpcertcc.github.io/OWASPdocuments/ https://goo.gl/fNPGwB
実は頻繁に更新されていて、なにか追加されています。4https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series
5https://www.owasp.org/index.php/Abuse_Case_Cheat_Sheet
OWASP SAMMではAbuse Caseを考慮すべきとされています。6
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を定義するのか
8項番 タイトル 説明4 Abuse Caseの作り⽅例 ー4.1 Step 1: ワークショップの事前準備• 機能⼀覧(サンプル後述)を準備する。• 必要に応じて、対策⽅法⼀覧(サンプル後述)を準備する。• Abuse Case⼀覧の様式(対象となる機能、攻撃⽅法、CVSSスコア(または別の基準)、Abuse Caseの種別(技術/ビジネス※)、対策⽅法、対策/受容フラグ)を準備する。4.2 Step 2: ワークショップ中 • Abuse Case⼀覧の様式に基づき、複数の役割の⽅でAbuseCase⼀覧(サンプルを後述)を作成する。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)
各役割をこなし、対策/受容のコンセンサスをみんなで得ます。9ビジネスアナリストリスクアナリスト品質担当(機能テスター)ペンテスター(セキュリティ担当)技術責任者■各機能の説明■セキュリティ要件の更新■各機能に対する攻撃⽅法の提案/説明■攻撃⽅法に対する対策及び講じる場所の提案/説明■CVSSスコアの算出■対策に対するフィージビリティのフィードバック■全ての対策に要するコストと⼯数の評価■ビジネス状況に応じたCVSSスコアの修正/確定
各シートのサンプルがこれだ!10Abusecase ID影響を受ける機能IDAbuse caseの概要 攻撃ID (必要に応じて)CVSSスコアCVSSstring 種別 対策ID 対策/受容ABUSE_CASE_001FEATURE_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 機能名 機能概要FEATURE_001ドキュメントアップロード機能ユーザがファイルをアップロードする。対策ID 対策概要 対策に関する補⾜DEFENSE_001アップロードしたファイルを検証する。ファイルアップロードに関するOWASPチートシートを参照する。■Abuse Case⼀覧■機能⼀覧 ■対策⼀覧
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:XSS5.8 A8:安全でないデシリアライゼーション5.9 A9:既知の脆弱性のあるコンポネントの使⽤5.10 A10:不⼗分なロギングとモニタリング6 スキーマのソースー7 著者及び主要な編集者8 他のチートシートAbuse Case Cheat Sheetの⽬次と説明 (3/3)
12✕
13Hardening参加者の皆様、競技前にビジネスにおけるAbuseCaseを想定した上で本番に臨んでみてわ?
そもそもHardeningは、ECサイトの堅牢化⼒を競います。14https://wasforum.jp/✕
想定される各機能のAbuse Caseを事前に検討15✕ECサイトの機能⼤ 中 ⼩フロント 商品紹介 商品⼀覧在庫終了ステータス商品注⽂ ショッピングカート配送時間指定注⽂処理ポイント購⼊お客様ページ 会員登録ログイン注⽂履歴表⽰退会その他 パスワード変更オススメ表⽰問い合わせECサイトの機能⼤ 中 ⼩管理 売上状況ཧ 商品登録/編集在庫情報登録ച্ཧ 売上状況CSV出⼒配送状況CSV出⼒納品書PDF出⼒各種メール送信ձһཧ お客様情報登録お客様情報CSV出⼒ίϯςϯπཧ オススメ管理SEO管理ϝϧϚΨ৴Ϋʔϙϯཧ【参考】https://www.ec-cube.net/product/functions.php
OWASP Connectという勉強会をやっています。LT枠空いていますよ。16https://owaspprteam.connpass.com/event/113927/
OWASP Japanはコミュニティスポンサーです。是⾮ご来場ください。17