Slide 1

Slide 1 text

ソフトウェア研究における脅威モデリング

Slide 2

Slide 2 text

本資料の目的 / 自己紹介 ソーシャルアカウント X    https://x.com/laysakura GitHub https://github.com/laysakura 何してる 本業 JTCでソフトウェアの    リサーチャー兼エンジニア 個人事業 セキュリティ関連支援        ↓詳細URL その他  執筆・講演活動 ● ソフトウェアの研究における脅威モデリング は何をどこまでやるのが良さそうか、 筆者の見解を共有 ○ 界隈の定説ではない(寡聞にして見たことなし) ○ ソフトウェア開発・運用における脅威モデリングと 大部分被った話題 ● Speaker DeckのTweetボタンから フィードバックお願いします🙏 ● ※所属等と無関係に個人活動として本資料を公開

Slide 3

Slide 3 text

前置き ● 脅威モデリングの What's / Why / How いずれのページかを 左上に明示 ○ What's 脅威モデリングとは ○ Why  脅威モデリングの動機(特に "研究における" ) ○ How  脅威モデリングの手法(触りのみ) ● 参考サイト・文献、または私見は各ページ左下で明示 ○ 一番体系的でおすすめ: 『セキュアなソフトウェアの設計と開発』 ここが左下 ここが左上

Slide 4

Slide 4 text

脅威モデリングとは ● 脅威モデルを構築するプロセス ● 脅威モデルとは: 情報資産に対するセキュリティ上の脅威へ対策するための 複合的な要素(下図一例)を含むモデル What’s 脅威モデル 資産 (セキュリティ上の)脅威 その他脅威 脅威アクター 影響評価 リスク管理 軽減策 天災 システム 構成図 脆弱性 人的ミス [私見]

Slide 5

Slide 5 text

研究での脅威モデル(成果物)想定 ● 脅威アクター(攻撃者) ○ 属性 例: データ分析者 ○ 意図 例: Passive, Malicious (※当スライド末尾 コラム1 参照) ○ 能力 例: 任意の事前知識, 無限の計算資源 ● 脅威アクターによらない脅威 ○ 例: 災害時の復旧でプライバシー漏洩 ● 資産(脅威から守るべきもの) ● システム構成図・脅威マッピング ○ 図1上半分 : 論理アーキレベル ○ 図2上半分 : 物理アーキレベル ● 対策(マッピングされた脅威への) ○ 図1下半分: リスク管理 ○ 図2下半分: 回避・軽減策 [私見] [参考 (図1)] 脅威モデリングとは|実施手順と成功のためのポイントを解説 [参考 (図2)] 脅威モデリングの概要としくみ | Black Duck 図2: 物理アーキレベルの脅威モデル (資産・脅威アクター・対策) 図1: 論理アーキレベルの脅威モデル (脅威概要・リスク管理) 論文に書くべき 研究段階ではやらないかな 論文に書くべき 論文には書かないだろうが モノ作るときにあると良い 研究段階では対策洗い出しまで 提案手法以外で防ぐ箇所は論文でも言及 What’s

Slide 6

Slide 6 text

一般的な脅威モデリングの目的 ● 早期発見 セキュリティリスク早期発見によ る対応可能性向上・コスト低減 (図1) ● 継続把握 開発運用工程に合わせたシステム モデル更新 + 世の脅威の更新 ● 管理   セキュリティ対策フレームワーク への準拠 (図2) [参考] 脅威モデリングとは|実施手順と成功のためのポイントを解説 図1: セキュリティ対策コスト推移 図2: フレームワークでの脅威モデリングの位置づけ Why

Slide 7

Slide 7 text

「◯◯を守る」ソフトウェア研究における 脅威モデリングの目的 ● 攻撃想定  ◯◯ = 重要資産 → 性善説ではいられない ○ 攻撃があり得ることを想定しソフトウェアを設計・開発する必要あり ● 認識共有  共同研究者同士の認識合わせ(どこまで気にしてシステム作るか) ● 反証可能性 論文・発表におけるスコープの明示 ○ 「この攻撃意図・能力まで想定」の仮定(脅威アクターのスコーピング) ■ これを前提に「だから提案手法により◯◯が守れる」と論ずる ● → ツッコミどころが明確に(反証可能性up) [私見] Why

Slide 8

Slide 8 text

[参考 (図1)] Zhang, Yunyi, et al. "Rethinking the Security Threats of Stale {DNS} Glue Records." 33rd USENIX Security Symposium (USENIX Security 24). 2024. [参考 (図2)] Coppola, Daniele, et al. "PURE: Payments with UWB RElay-protection." 33rd USENIX Security Symposium (USENIX Security 2024). 2024. 研究論文において現れる脅威モデル Why 調査目的 論文での脅威モデル記述の重要性を確認 調査方法 Threat/Security/Attacker Model の記載有無を調査 調査対象 USENIX Security 2024秋 採択論文から61件無作為抽出 攻撃手法の提案を除く34件を対象とした (Google Sheets) 調査結果 脅威モデル記載あり 18件 / 脅威モデル記載なし 16件 セキュリティ系トップカンファレンス採択論文の 半数程度が脅威モデルを明記 図1: 脅威モデル記載例1 図2: 脅威モデル記載例2

Slide 9

Slide 9 text

脅威モデリングの手順 1. ユースケース(誰が・何のために・どのように使うか) を規定 2. 脅威アクターを規定 3. システム構成図(論理レベル→物理レベル)を描く 4. システム構成図から資産を特定 5. システム構成図に脅威をマッピング 6. 脅威へのリスク管理(含む提案手法)を検討 7. 1~6の継続的改善 [私見] HowTo ユースケース 脅威アクター システム構成図 資産 システム構成図へ 脅威マッピング リスク管理検討 継続的改善 誰?最悪の意図・能力は? 悪用は? 何を本質的に守りたい? これは無視できる、これはこう対応 提案手法はこれの軽減策になってる

Slide 10

Slide 10 text

脅威モデリングの心構え [参考] 『セキュアなソフトウェアの設計と開発』 [参考 (図1)] 脅威モデリングで組織を動かす!クラウドセキュリティ強化を実現するための 実践⽅法 HowTo 図1: フレームワークでの脅威モデリングの位置づけ ユースケース システム構成図 資産 脅威アクター 脅威マッピング リスク管理 継続的改善

Slide 11

Slide 11 text

脅威アクターの攻撃目標を大まかに知る HowTo [参考] NIST SP 800-12 Rev.1 ● 右図:「情報セキュリティの3要素(CIA)」や    「CIAトライアド」など呼ばれる有名なもの ● 脅威アクター(攻撃者)はこのいずれかを破るもの と考えるのが慣例 ○ 例: CVSSスコア ● 逆に言えば: これらを守るのがセキュリティ Confidentiality (機密性) Integrity (完全性) Availability (可用性) 破られたら 情報漏洩 破られたら 改ざん 破られたら システム停止 脅威アクター 脅威マッピング

Slide 12

Slide 12 text

脅威アクターの意図・能力の洗い出し手法(一例) HowTo [参考] 『セキュアなソフトウェアの設計と開発』 [参考 (図1,2)] 脅威モデリングで組織を動かす!クラウドセキュリティ強化を実現するための 実践⽅法 図1: STRIDE フレームワーク (脅威発見) 図2: MITRE ATT&CK フレームワーク (脅威発見・軽減策検討) 脅威アクター 脅威マッピング

Slide 13

Slide 13 text

脅威マッピングの成果物(一例; p.5図再掲 ) HowTo 脅威マッピング [私見] [参考 (図1)] 脅威モデリングとは|実施手順と成功のためのポイントを解説 [参考 (図2)] 脅威モデリングの概要としくみ | Black Duck 図2: 物理アーキレベルの脅威マッピング 図1: 論理アーキレベルの脅威マッピング 物理アーキレベルでは システム構成図の他 データフロー図もよく使う

Slide 14

Slide 14 text

リスク管理の取り組み方 HowTo リスク管理 [1] 石川. 2024. “脅威インテリジェンスの機能的・歴史的視座 民間セクターにおける共有エコシステム分析と公共セクターの関与について.” NIDSコメンタリー第 316号,    May. https://www.nids.mod.go.jp/publication/commentary/pdf/commentary316.pdf. [参考 (図1)] 脅威モデリングとは|実施手順と成功のためのポイントを解説 [参考 (図2)] 脅威モデリングで組織を動かす!クラウドセキュリティ強化を実現するための 実践⽅法 図1: 典型的なリスク管理の表 ● 脅威モデリング固有の概念ではない ○ 「リスク管理」「リスクマネージメント」で 調べれば色々出てくる ● リスク = 脅威 x 脆弱性 x 資産価値 ※米国のセキュリティ研究教育機関 SANSInstitute の定義による ○ コントローラブルな脆弱性・資産を管理する伝統手法他、 脅威を深く知る「脅威インテリジェンス」も盛んに [1] ● リスクへの対応4種: 「回避」「軽減」「受容」「転嫁」 ○ 提案手法では技術での「回避」「軽減」を狙いつつ 研究の非本質的な部分は「受容」と考えれば良さそう ○ 典型的脅威の「軽減」策は MITRE ATT&CK フレームワークも参考にできる 図2: MITRE ATT&CK フレームワーク (脅威発見・軽減策検討)

Slide 15

Slide 15 text

繰り返し、繰り返し HowTo 継続的改善 ● 脅威モデリングは一回やって終わりではない ことのほうが多い ● 新しい学びの度に都度モデルを改善 ○ 提案システムの詳細が見えてきた ○ 新しい脅威アクターの能力(攻撃手法)を思い付いた ○ 弱い仮定の攻撃アクターでは査読が通らなかった ○ OSSにする際に研究レベルよりもちゃんとした脅威モデルが必要になった ○ etc… ● 「自分たちの役に立つ」「他所に出しても恥ずかしくない」脅威モデルを研究参加者で磨こう [私見]

Slide 16

Slide 16 text

おわり

Slide 17

Slide 17 text

脅威アクターの意図の分類 コラム1 セキュリティ系論文でよく見る semi-honest, malicious などの 敵対者の積極性(本資料では「脅威アクターの意図」と呼称)の分類と出典 [1] Goldreich, O., S. Micali, and A. Wigderson. 1987. “How to Play ANY Mental Game.” In Proceedings of the Nineteenth Annual ACM Conference on Theory of Computing - STOC ’87. New York, New York, USA: ACM Press. https://doi.org/10.1145/28395.28420. [2] Goldreich, Oded. 2009. Foundations of Cryptography: Basic Applications Volume 2. Cambridge, England: Cambridge University Press. adversary 敵対者の積極性 Malicious adversary [1] Passive adversary [1] 別名 Active adversary [2] Honest [1] 意味 プロトコル通りの通信のみ行う (敵対者ではない) 別名 Semi-honest, Honest-but-curious [2] この種の分類の初出(たぶん) 仮想的な「ゲーム」における敵対者を考察 意味 プロトコルに則さない通信を する 意味 プロトコルに則した通信をするが、 盗聴や裏での結託をする 別軸の分類 [2] プロトコル途中で得た情報を利用するか: Adaptive adversary, Non-adaptive adversary プロトコルの途中で抜け出す: Mobile adversary 暗号プロトコルの大家 別名に関してもよくまとまってる & [1] と同著者。別名初出は別途あると思われる マルチパーティ計算 (MPC) における敵対者を考察 この他にも Honest-but-fallible / Covert / Rational adversary 等々たまに見受けるが、基礎的なのはまとめたつもり