conducting-linddun-threat-modeling について
プライバシー、セキュリティ、ソフトウェアの各チーム向けの LINDDUN 脅威モデリングスキルです。データフロー図を使って7種類のプライバシー脅威を分析し、リスクの優先順位付けと緩和策の計画を支援します。
主な機能
- 017種類の LINDDUN プライバシー脅威
- 02データフロー図による範囲設定
- 03脅威ツリー分析
- 04リスク評価と優先順位付け
- 05プライバシー緩和策の選定
- 06緩和策の検証
活用シーン
- 01データフロー図によるシステムの可視化
- 02個人データ処理のプライバシーリスク特定
- 03対処する脅威の優先順位付け
- 04プライバシー対策の有効性確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mukul975/ privacy-data-protection-skills --skill conducting-linddun-threat-modelingインストール後、Claude Code で/conducting-linddun-threat-modelingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/template.mdreferences/standards.mdworkflows.mdscripts/process.py詳細
LINDDUN による脅威モデリングの実施
概要
LINDDUN は、KU Leuven の DistriNet 研究グループが開発した、体系的なプライバシー脅威モデリング手法です。データフロー図(DFD)の分析と脅威ツリーのカタログを用いて、ソフトウェアシステムにおけるプライバシー脅威を特定するための構造化されたアプローチを提供します。LINDDUN は、次の 7 つのプライバシー脅威カテゴリを表しています。
- Linking — データ項目同士、またはデータ項目と個人を関連付けること
- Identifying — データ主体の身元を把握すること
- Non-repudiation — アクションや関連付けを否定できないこと
- Detecting — 個人がプロセスに関与していると推測すること
- Data Disclosure — 個人データを権限のない第三者に開示すること
- Unawareness — データ主体がデータ処理を認識していないこと
- Non-compliance — プライバシー関連の法令やポリシーを遵守できないこと
LINDDUN は、プライバシー脅威に特化して重点を置くことで、セキュリティ脅威モデリング(STRIDE)を補完します。STRIDE が機密性、完全性、可用性を扱うのに対し、LINDDUN はリンク不能性、匿名性、もっともらしい否認可能性、検知不能性、データ内容の機密性、内容に関する認識、ポリシー遵守を扱います。
LINDDUN の脅威カテゴリの詳細
L — Linking(リンク可能性)
定義: 攻撃者が、特定のコンテキスト内で、2 つの関心対象(IOI)が関連しているかどうかを十分に判別できます。
適用可能な DFD 要素: データフロー、データストア、プロセス。
例:
- Cookie やフィンガープリントを使って、複数の Web サイトをまたいでブラウジングセッションを関連付ける
- 準識別子を使って、複数のデータセットにまたがる仮名化レコードを関連付ける
- 時間の経過とともに、取引を同一人物に関連付ける
脅威ツリー(抜粋):
- L1:コンテキスト間で共有される識別子による関連付け
- L2:準識別子の組み合わせ(年齢+郵便番号+性別)による関連付け
- L3:時間的相関(同時に発生するイベント)による関連付け
- L4:行動パターン(一意の利用シグネチャ)による関連付け
緩和策: HIDE(分離、混合)、SEPARATE(隔離)、MINIMIZE(除去)、差分プライバシー、コンテキスト分離を伴う仮名化。
I — Identifying(識別可能性)
定義: 攻撃者が、データ主体の集合の中から特定のデータ主体を十分に識別できます。
適用可能な DFD 要素: データフロー、データストア、外部エンティティ。
例:
- リンケージ攻撃によって、匿名化されたデータセット内の個人を再識別する
- 集約された位置情報からユーザーを識別する
- 文体分析によって匿名文書の著者を識別する
脅威ツリー(抜粋):
- I1:直接識別子(氏名、メールアドレス、SSN)による識別
- I2:準識別子の組み合わせによる識別
- I3:一意の行動パターンによる識別
- I4:メタデータ(IP アドレス、デバイスフィンガープリント)による識別
緩和策: HIDE(暗号化、難読化)、MINIMIZE(除去)、ABSTRACT(グループ化、要約)、k-匿名性、差分プライバシー。
N — Non-repudiation(否認不能性)
定義: データ主体が、アクションを実行したこと、または特定のデータと関連付けられていることを否定できません。
適用可能な DFD 要素: データフロー、プロセス、データストア。
例:
- メッセージのデジタル署名によって、作成者であることを否定できなくなる
- 購入履歴を本人に関連付ける取引ログ
- 個人のアクションを取り消し不能な形で関連付ける監査証跡
脅威ツリー(抜粋):
- N1:デジタル署名または暗号学的証拠による否認不能性
- N2:証人の証言またはログエントリによる否認不能性
- N3:写真または生体認証の証拠による否認不能性
緩和策: HIDE(混合)、グループ署名、リング署名、否認可能暗号。
D — 検知
定義: 攻撃者が、関心の対象(IOI)が存在するかどうかを十分に判別できます。
DFD 要素への適用: データフロー、プロセス。
例:
- トラフィック分析によって、特定のウェブサイトを個人が訪問したことを検知する
- 患者が病院のデータベースに登録されていることを検知する(メンバーシップ推論)
- 当事者間で暗号化された通信が行われていることを検知する
脅威ツリー(抜粋):
- D1:トラフィック分析による検知(通信メタデータ)
- D2:タイミングサイドチャネルによる検知
- D3:データセットへの登録による検知(メンバーシップ推論)
- D4:アクセスパターン分析による検知
緩和策: HIDE(混合、難読化)、カバートラフィック、オニオンルーティング、ステガノグラフィー、ORAM。
D — データ漏えい
定義: 個人データが、権限のない当事者に開示またはアクセスされます。
DFD 要素への適用: データフロー、データストア、プロセス。
例:
- 暗号化されていない個人データが転送中に傍受される
- データベース侵害により顧客レコードが漏えいする
- 従業員が権限なくレコードにアクセスする
脅威ツリー(抜粋):
- DD1:暗号化されていない通信チャネルを介した漏えい
- DD2:権限のないデータベースアクセスによる漏えい
- DD3:暗号化データへのサイドチャネル攻撃による漏えい
- DD4:第三者との過剰なデータ共有による漏えい
- DD5:不適切なデータ削除による漏えい(残存データ)
緩和策: HIDE(暗号化)、アクセス制御、TLS 1.3、フィールドレベルの暗号化、安全な削除、DLP システム。
U — 認識不足
定義: データ主体が、自身の個人データの収集、処理、共有について認識していません。
DFD 要素への適用: 外部エンティティ(データ主体)、プロセス。
例:
- プライバシー通知を提示せずにデータを収集する
- データ主体に開示していない目的でデータを処理する
- データ主体に知らせずに第三者とデータを共有する
脅威ツリー(抜粋):
- U1:プライバシー通知の欠如または不十分さによる認識不足
- U2:目的変更の認識不足(通知のない目的の拡大)
- U3:第三者との共有に関する認識不足
- U4:自動意思決定またはプロファイリングに関する認識不足
緩和策: INFORM(提供、通知、説明)、階層化されたプライバシー通知、適時通知、同意管理。
N — コンプライアンス違反
定義: システムまたは組織が、適用されるプライバシー法令、ポリシー、または標準を遵守していません。
DFD 要素への適用: すべての DFD 要素。
例:
- 有効な適法根拠なしに処理する
- 30 日以内にデータ主体のアクセス要求に応じない
- リスクの高い処理に必要な DPIA を実施しない
- 定められた保存期間を超えてデータを保持する
脅威ツリー(抜粋):
- NC1:適法根拠の要件に関するコンプライアンス違反
- NC2:データ主体の権利に関するコンプライアンス違反(Art. 15-22)
- NC3:越境移転ルールに関するコンプライアンス違反(Chapter V)
- NC4:データ侵害の通知に関するコンプライアンス違反(Art. 33-34)
- NC5:説明責任の義務に関するコンプライアンス違反(Art. 5(2), Art. 24)
緩和策: ENFORCE(作成、維持、遵守)、DEMONSTRATE(記録、監査、報告)、GDPR コンプライアンスフレームワーク。
LINDDUN プロセス
ステップ 1:システムの範囲を定義する
以下を示すシステムのデータフロー図(DFD)を作成します。
- 外部エンティティ(データ主体、第三者、規制当局)
- プロセス(データを処理するシステムコンポーネント)
- データストア(データベース、ファイルシステム、ログ)
- データフロー(要素間のデータの移動)
- 信頼境界(異なる信頼ドメイン間の境界)
ステップ 2:脅威をDFDの要素に対応付ける
各DFD要素について、該当するLINDDUNの脅威カテゴリを特定します。
| DFD要素 | L | I | N | D | DD | U | NC |
|---|---|---|---|---|---|---|---|
| 外部エンティティ(データ主体) | X | X | |||||
| 外部エンティティ(サードパーティ) | X | X | |||||
| プロセス | X | X | X | X | X | X | |
| データストア | X | X | X | X | X | ||
| データフロー | X | X | X | X | X | X |
ステップ 3:脅威ツリーを使用して脅威を洗い出す
DFD要素ごとに該当する脅威カテゴリを確認し、脅威ツリーのカタログをたどって具体的な脅威を特定します。各脅威について、以下を記録します。
- 脅威 ID
- カテゴリ(LINDDUNの文字)
- DFD要素
- 説明
- 発生可能性(1~5)
- 影響度(1~5)
- リスクスコア(発生可能性 × 影響度)
ステップ 4:脅威に優先順位を付ける
リスクスコアに基づいて脅威を順位付けします。以下のリスク受容基準を適用します。
- リスク 1~6:記録を残して受容
- リスク 7~12:6か月以内に軽減
- リスク 13~19:3か月以内に軽減
- リスク 20~25:直ちに軽減
ステップ 5:軽減策を選択する
各脅威をプライバシー設計パターンと具体的な技術的制御に対応付けます。軽減策と担当チームを記録します。
ステップ 6:軽減策を検証する
選択した軽減策が各脅威に適切に対処していることを確認します。実装した制御を反映するようにDFDを更新します。残存リスクを再評価します。
主な規制関連の参考資料
- GDPR第25条 — データ保護の設計およびデフォルト設定
- GDPR第35条 — データ保護影響評価
- GDPR第32条 — 処理のセキュリティ
- EDPBガイドライン4/2019「第25条 データ保護の設計およびデフォルト設定」
- Deng, M., Wuyts, K., Scandariato, R., Preneel, B., & Joosen, W. (2011). "プライバシー脅威分析フレームワーク:プライバシー要件の洗い出しと充足を支援する。" Requirements Engineering, 16(1), 3-32.
- LINDDUN:linddun.org — 公式の方法論ドキュメントと脅威ツリーのカタログ