脅威モデリング図の設計と検証

2611.00011 · 公開 2026-11-07 · 更新 2026-11-07

要旨

脅威モデリングの図には、誰の要求が、誰の権限で、どのデータへ作用するかを表します。製品の接続関係が同じでも、認証の位置、利用者情報の受渡し、キャッシュ、管理者の操作によって、検討すべき脅威は変わります。本稿では、各受渡しの意味を共通モデルに記録し、信頼境界を判定して、概観・詳細・横断ビューへ展開する作図方法を提案します。

対象読者は、システムの設計・開発・運用担当者と、その説明を確認するセキュリティ担当者です。HTTP、認証・認可、データベースの基本を前提とします。前半でモデルの原理と分割方法を説明し、後半で実装差、検証、AIへの作図依頼へ進みます。到達目標は、図の矢印と境界を実装根拠で説明し、不足する情報を確認事項として残せることです。

DFD(データフロー図)は既存の脅威モデリング実務を基礎にします。相互作用契約、ID、意味拡張、確認義務台帳、受入基準は本稿の設計提案です。例示する構成と試験は仮想例であり、実システムやAIの能力を検証した結果ではありません。製品仕様の参照確認日は2026年11月7日です。

1. 構成図から分析対象を定める

1.1 図で説明する問い

構成図からは、配備したサービスと接続先を把握できます。脅威分析では、さらに「要求を受け入れる条件」「実行に使う権限」「返却されるデータ」を明らかにします。例えば、利用者、API、業務処理、DBという構成だけでは、APIが検証した利用者を業務処理がどう認識するか、DBが個人を識別するかを判断できません。

OWASPは、DFDをシステムのモデル化に広く使われる表現として説明し、複雑なシステムでは概観と詳細図を併用することを示しています。図は、その後の脅威の特定、対策の検討、レビューの土台です。[1]

分析開始時に、対象システム、環境、版、保護資産、操作、運用局面を定めます。顧客情報を守るなら、Webからの閲覧だけでなく、社員の直接SQL、バックアップの復元、管理APIによる複製も確認対象にします。対象外のシステムでも、対象資産へ影響する接点は外部依存として残します。

1.2 図と脅威分析の役割

STRIDEは、なりすまし、改ざん、否認、情報漏えい、サービス拒否、権限昇格の分類です。図の記法とは役割が異なり、モデル化した対象へ脅威を問いかける観点として使います。[2]

図が表す経路、脅威の成立条件、対策の実効性は別々に確認します。図の上で認可処理を通っていても、対象資源を照合するコードが誤っていれば保護は成立しません。図の完成を、そのままセキュリティ評価の完了にしない工程を組みます。

成果物 記録する内容 答えられる問い
共通モデル 要素、主体、資産、フロー、境界、制御、根拠 システムをどう理解しているか
図とビュー定義 表示範囲、詳細度、省略先、共通ID この図はモデルのどこを説明するか
確認義務台帳 独立した棚卸しとモデルの対応 入力にある対象を取り込んだか
未確認事項 不足情報、影響、必要証拠、担当 どの結論をまだ確定できないか
脅威・要件・試験表 成立条件、必要な制御、検証結果 何を防ぎ、どう確かめるか
Page 1 / 14

2. データの受渡しと権限をモデルに記録する

2.1 基本要素と安定したID

DFDの基本要素には、外部要素、処理、データストア、データフロー、信頼境界を使います。Microsoftの教材もこの要素群を扱います。[3] 本稿では、それぞれにE、P、D、F、TBで始まるIDを付けます。図の配置を変えても、同じ実体には同じIDを用います。

要素 表すもの 粒度の決め方
外部要素 E 選択した分析範囲の外にいる相互作用相手 社内・社外ではなく、分析範囲との関係で判断
処理 P 入力を解釈し、操作・変換・判断を行う責務 サーバの台数より、権限と受入条件の違いを重視
データストア D 後続の利用まで保持される状態 DB、キャッシュ、キュー、ファイルなど
フロー F 情報の一方向の受渡し 要求、結果、通知、資格情報を区別
信頼境界 TB 保護目標に関係する信頼前提の差 第3章の判定理由を記録

主体Sは権限を行使する識別主体、資産Aは保護する情報や業務上の価値です。資産と保存場所を分ければ、顧客情報がDB、CSV、ログへ複製される状態を追えます。制御Cは検証や強制の仕組み、根拠Kは設定・コード・試験などの参照です。これらをすべて図形にする必要はありません。

要求と結果には別のフローIDを付けます。DBへの検索要求だけを描くと、どの情報が返却されるかが隠れます。説明図で復路を省略する場合も、省略した内容と詳細の参照先を記します。データストア間のコピーには、その操作を実行する処理を明示します。

2.2 相互作用契約に三つの主体を記す

各フローに付ける意味の記述を、本稿では「相互作用契約」と呼びます。これは法的契約ではなく、要求、権限、操作対象、受入条件を対応付けるための形式です。

利用者がAPIを呼び、アプリケーションが共通DBユーザーでSQLを実行する場合、起点主体は利用者、処理の実行主体はアプリケーションの権限主体、DBが認識する主体は共通DBユーザーです。この三者の関係を追えるようにします。

契約属性 記述する内容
送信元・受信先 情報が移動する要素のID
起点主体 元の要求や業務操作を始めた主体
実行主体 受信処理・後続処理を実行する権限主体
受信側の認識主体 受信側が誰の要求として認証・認可するか
操作・資産 読取、更新、実行、公開、設定変更と対象
到達・認証・認可 接続可能な条件、本人性の根拠、操作の許可条件
データ・意味変換 渡す値と、受信側での解釈・加工・複製
契約属性 記述する内容
時間・失敗 期限、順序、再試行、失効、失敗時の副作用
観測・根拠 記録可能な事象と、各属性を支える資料

同じIPやVPCから来たことは、利用者IDの真正性とは別の情報です。主体の対応には、トークン検証、委譲、セッション結合などの根拠を持たせます。認可は主体・操作・資源・文脈の関係で記述し、要求ごとに必要な権限を検査します。[4]

2.3 根拠の状態を属性ごとに保持する

接続の存在は確認済みでも、利用者IDの検証方法は未確認という場合があります。ノード全体へ一括して「確認済み」と付けず、重要属性ごとに状態を持たせます。

Page 2 / 14
状態 意味 必要な記録
evidenced 実装・挙動の証拠がある 根拠参照、対象環境・版、確認した範囲
specified 設計仕様として定義されている 仕様の参照・版。実装確認とは区別
assumed 分析のための仮定 理由と、結論に及ぼす影響
unknown 判断材料が不足している 値をnullとし、質問IDを付与
conflict 同じ対象条件の証拠が食い違う 両方の根拠と解消すべき問い
not_applicable この属性を適用しない 非該当の理由

「認証なし」は認証が存在しないという主張です。「認証方式が未記載」は未確認です。空欄やfalseで両者を混ぜると、AIも人も誤った前提で分析を進めます。ログで観測されなかった経路についても、設定上の到達可能性とは分けて扱います。

3. 信頼境界と制御点を分ける

3.1 境界を判定する手順

本稿では、受渡しの前後で管理責任、実行権限、資源のポリシー、入力への信頼前提が変わり、その差が保護目標へ影響するとき、信頼境界の候補を記録します。次の順に判定します。

  1. 送受信側が何を管理・変更できるかを比較します。
  2. 起点・実行・認識主体と、操作できる資源の差を調べます。
  3. 受信側が依存する主張を特定します。例として、利用者IDが検証済みであることが挙げられます。
  4. 差が保護目標へ影響する理由を境界台帳に記録します。
  5. 必要な検証と、その実装・実効性を別の項目に記録します。

境界の存在理由、そこで必要な制御、実装された制御の有効性を分けます。検証が欠けている場合でも、保護すべき信頼前提の差は残ります。境界を描いたことだけで、強制機構があるとは判断しません。

NIST SP 800-207は、ネットワーク位置だけを理由に暗黙の信頼を与えない考え方を示しています。[5] VPC、サブネット、AWSアカウント、テナント、DBロールは別の属性として記録し、一つの囲みにまとめて同じ信頼領域とみなさないようにします。

3.2 検証済みの状態と隔離された領域

信頼境界と、同じ実行権限内の入力検証・処理を区別する図

図1 信頼境界、制御点、データ状態を分けた模式図です。C1とP2は同じ実行権限を共有する例です。

Page 3 / 14

同じ関数内で入力検証を行っても、独立したサンドボックスが生まれるわけではありません。検証前後はデータの状態と制御点で表し、侵害を封じ込める実行領域と区別します。「形式を確認した」「issuerとaudienceを確認した」のように、成立する条件を限定して記述します。入力検証の効果は、その検証内容に依存します。[6]

JWTの検証に成功しても、他者のレコードを操作する権限は生じません。また、共有DBユーザーを個人別ユーザーへ変えても、境界の位置が同じ場合があります。その場合は主体・権限・監査の属性を更新し、図形の囲みを増やす必要はありません。

4. 共通モデルを複数の図へ展開する

4.1 基本形と意味拡張を組み合わせる

作図では、一方向の受渡しと、保持された状態を後から利用する関係を基本形とします。保持も受渡しの合成で表せますが、保存先の権限、期限、失効を確認するため、独立した観点として扱います。さらに次の四つの意味拡張を組み合わせます。

拡張 適用する条件 追加する記述
X1 主体の対応付け 受渡しの前後で主体・権限が変わる 代理、置換、委譲の関係と根拠
X2 意味の変換 解釈、検証、加工、複製がある 入力、成立する述語、出力、由来
X3 時間の分離 受付と利用の時点が異なる 期限、再評価、再試行、失効
X4 方針の変更 コード、権限、設定、送信先を変える 変更主体、対象、影響する制御

これは、相互排他的な製品分類ではありません。非同期ジョブは保持とX3を使い、利用者の権限を委譲するならX1も使います。キャッシュは保持、X2、X3を組み合わせます。同じ「処理→保存→処理」という形でも、キューとバックアップでは操作・利用条件が違うため、契約を比較します。

4.2 詳細化・集約・横断ビュー

詳細化は一つの処理を内部責務へ分解する操作、集約は複数要素を上位要素として表示する操作です。横断ビューは、同じモデルから特定の資産や主体に関係する情報を選ぶ表示です。

共通モデルから概観、機能別詳細、横断ビューを作る関係

図2 共通モデルと複数ビューの関係です。矢印は表示への投影関係であり、システム内の通信を表しません。

内部に異なる実行主体、受入条件、重要な意味変換、保存、時間条件が隠れている場合に詳細化します。重要な相互作用について、主体、操作、資産、受入条件、拒否時の影響、証拠、試験責任を説明できれば、そこで分解を止められます。要素数の上限だけで分割を決めると、分析に必要な関係を切り離すおそれがあります。

Page 4 / 14

Web機能、社員の直接操作、管理API、データ複製は別ビューで説明できます。同じDBを複数の図に表示するときは、共通IDを参照します。テナント、ネットワーク、管理責任が重なる場合も、無理な入れ子を作らず、目的に応じて表示を切り替えます。

4.3 親子図の入出力を対応付ける

親フローには、それを具体化する子フローの集合を対応付けます。例えば親図の「注文操作」を子図で「注文要求」「DB検索」「更新」「結果返却」へ分解した場合、親処理の外へ出入りする情報が対応するかを確認します。内部フローを増やしてよいことと、外部との関係を変えてよいことは別です。

子図に外部SaaSへの送信が見つかったら、親図へ集約した送信を追加するか、別ビューで扱う理由と参照先を記します。図の切断面には接続相手を参照ノードとして残し、境界をまたぐフローの両側にレビュー担当を置きます。

整合確認 確認する条件
ID 同一実体に同じIDを使用している
入出力 親の外部入出力と子の外部入出力に意味上の対応がある
属性 主体、資格情報、データ分類、受入条件が矛盾していない
省略 復路、認証依存、管理操作などの省略先を追える
境界 集約で隠れた境界と制御を詳細図で確認できる

5. 実装差を属性と経路の変化で説明する

5.1 比較する構成と条件

以下は説明用の仮想構成です。Web経路をCloudFrontとWAF、API Gateway HTTP API、Lambda、EC2上の業務処理、RDS for PostgreSQLとします。社員は管理用クライアントから同じDBを操作します。これはサービスの組合せの推奨ではなく、同一構成でも意味が変わることを検討する例です。

HTTP APIとREST APIでは対応機能が異なります。HTTP APIに、REST APIのPrivate APIやWAFの直接関連付けをそのまま仮定しません。[7] また、LambdaのVPC接続は、サービス管理下の実行環境から顧客VPCの資源へ接続する仕組みです。実行環境自体を顧客サブネットへ置く図とは区別します。[8]

比較では変更する条件を先に列挙し、それ以外の前提を固定します。A/Bは実装条件の違いを表し、Bを一律に最善とする評価ではありません。各例で示す試験は実施案です。

5.2 公開入口と認証をどこで強制するか

CloudFrontのWAFを通る経路だけを描くと、APIの直接入口を見落とします。オリジン向けカスタムヘッダーを使う設計では、CloudFrontが値を付与・上書きする仕様に加え、受信側で対象ルートすべてが値を検証することを確認します。[9] その値は共有秘密として管理し、漏えい・再利用・更新を分析します。

Lambdaのコードで検査するなら、拒否までにLambdaは起動します。到達、起動、業務処理の実行を分け、拒否応答だけからネットワーク隔離を主張しません。HTTP APIの既定エンドポイントを無効化しても、カスタムドメイン経由の入口は残ります。[10]

JWT authorizerをAPI Gatewayで使う方式と、Lambda内で検証する方式も比較できます。前者ではルートへの適用、issuer、audience、期限、必要scopeを確認します。検証済みclaimsは統合側へ渡されますが、それとクライアントが送ったヘッダーを区別します。[11] 後者では検証前の更新・外部送信、検査を通らない分岐、例外処理を調べます。

試験では、通常入口と直接入口、トークンなし、期限切れ、別audience、別issuerを組み合わせ、どこで拒否され、どの副作用が発生しなかったかを確かめます。入口の変更は到達条件、JWT検証位置の変更は制御点と受入条件の差として記録します。

Page 5 / 14

5.3 サービスの本人性と資源の認可

業務処理が受信したX-User-Idをそのまま採用する方式と、検証したトークンや委譲されたコンテキストを使う方式を比較します。mTLSを採用する場合も、サービスの本人性と利用者の本人性を分けます。サービス認証に成功しただけでは、そのサービスが提示した任意の利用者IDを信用する根拠になりません。

委譲を使う設計では、委譲元、改ざん防止、受信先、期限、対象操作、再利用条件を契約へ追加します。利用者トークンを受信側で検証する設計では、その受信側に適したaudienceと権限の範囲を決めます。これらは比較のための設計条件であり、LambdaとEC2の接続で自動的に設定されるものではありません。

業務認可では、クライアントのtenant_idを権限の根拠にせず、検証した主体と管理された所属情報を対象レコードへ照合します。[4:1] PostgreSQLのRLSを補助に使う場合は、実行ロールとポリシーを確認します。superuser、BYPASSRLS、通常のテーブル所有者など、RLSを迂回する条件があります。[12]

試験では、利用者IDの偽装、別用途トークン、他テナントのレコードID、許可されていない操作を与えます。アプリケーションが書き換えられるセッション変数をRLSの条件にする場合は、その変数を変更できる主体も分析します。

5.4 社員の個人認証とDBの認識主体

共有DB主体と個人に対応するDB主体を、同じ構成で比較する図

図3 社員E1、管理クライアントP1、DB D1と、要求・結果・返却の経路を共通にした比較です。A/BでDBが認識する主体と対応根拠が変わります。

VPNで個人認証しても、その後に共通DBユーザーを使えば、DBが認識する主体は共有のままです。個人への帰属を説明するには、個人ID、管理セッション、DB接続、SQL操作の対応が必要です。個人別DBユーザーへ変更した場合も、監査が自動的に有効になるとは扱いません。

業務アプリと社員が同じ強いDB権限を共有する場合は、接続元が違っても同じ操作範囲を持つ可能性があります。用途別に権限を分ける設計では、ロールの継承、所有権、権限付与、DDLとDMLの許可を具体的に確認します。ロール名が違うだけでは分離を説明できません。

SSMのポート転送を使う構成では、トンネル確立のIAM権限と、DB認証・認可を分けます。Session ManagerはSSHやポート転送セッションの通信内容をセッションログへ記録しないため、SQLや返却データの監査には別の設計が必要です。[13] 並行セッション、共有資格情報の再利用、権限剥奪後の接続を試験し、どこまで個人へ対応付けられるかを記録します。

Page 6 / 14

5.5 キャッシュと署名付きURLの返却経路

個人別応答を共有キャッシュへ保存すると、後の要求はオリジンの認可処理を通らず返却される場合があります。モデルにはキャッシュを保持状態として追加し、キー、利用者の分離、保存期間、権限変更後の無効化を記します。Authorizationヘッダーをオリジンへ転送する設定と、キャッシュキーに含める設定は役割が違います。[14]

CloudFrontにはCachingDisabledポリシーがあります。一方、最小TTLが正のポリシーでは、オリジンのno-storeやprivateがあっても、その最小TTLの間キャッシュする条件があります。[15] 異なる利用者で同じURIへアクセスし、本文、キャッシュヒット、ログアウト・権限変更後の返却を照合します。

署名付きURLを使う方式では、アプリケーションがデータを中継する経路に加え、ブラウザーからS3へ直接操作する経路が生まれます。S3の署名付きURLは有効な資格情報を使って生成され、署名した主体の権限に基づき利用されます。有効期間内の複数回利用が可能で、資格情報の失効などにより指定期限より早く使えなくなる場合もあります。[16]

URLそのものを保護対象とし、発行時の対象認可、操作、オブジェクトキー、期限、履歴やログへの露出を記録します。アップロードなら上書きと処理前の検査も分析します。直接経路に適用する検査・監査を定義し、期限切れ、別対象への利用、再利用を試験します。

5.6 非同期処理の権限をいつ評価するか

キューを介した受付時点と実行時点の認可、および再実行の関係

図4 キューを介する処理の部分モデルです。t0は受付、t1は実行の時点です。F-AUTHは権限照会の要求を示し、その結果の復路やジョブ完了通知は省略しています。

受付と実行の間に利用者の権限が変わる場合、実行時に現在の権限を再評価する方式と、受付時の条件を固定した期限付き委譲を使う方式を検討します。選択は、取り消し要件と処理保証に基づいて行います。常に再認可することだけを正解とせず、業務上どの状態を有効とするかを定めます。

キューへ送信できる主体と、メッセージ本文のsubjectは別の情報です。モデルには、送信許可、本文の真正性、実行主体、対象資産、期限、再試行、失敗メッセージの保存先を含めます。SQS標準キューは重複配送があり得るため、再実行時の副作用も検討します。[17]

試験には、権限剥奪後の実行、期限切れの委譲、改ざんした本文、重複配送、部分的な処理成功後の再試行を含めます。順序や競合が中心になる場合は、DFDに加えてシーケンス図や状態遷移図を作り、同じ主体・フローIDへ対応付けます。

Page 7 / 14

5.7 秘密情報と派生データを追う

秘密情報を保管サービスへ移すときは、保存先に加えて、取得主体、復号して受け取る経路、一時保存先、認証へ使用する先を描きます。Secrets Managerの暗号化・取得制御・ローテーションの機能は、それぞれ異なる条件を支えます。[18] 取得を許可された処理が侵害された場合の平文利用も、独立した脅威として検討します。

同じ秘密を複数処理へ配布する場合は、権限の共有範囲、キャッシュ、既存接続、更新後の動作を確認します。環境変数、ダンプ、例外、診断ログに複製される値も資産の派生先として追います。モデルには秘密値自体を保存せず、管理先と必要な属性を記します。

本番DBから抽出ファイル、バックアップ、ログへ派生するデータの経路

図5 正規の読取りから生まれる複製・持出しの経路です。コピーや外部提出を処理として表しています。取得要求と完了応答は省略し、データの派生先に注目しています。

CSV抽出、バックアップ、ログ、分析基盤への送信では、元のDBと同じ権限や保存条件が引き継がれるかを確認します。各派生資産に、管理主体、読取権限、保存先、期間、削除・復旧条件を付けます。ログは証跡であると同時に保護対象でもあり、認証情報などの機微な値の除外と、閲覧・改ざんの管理が必要です。[19]

試験では、抽出ファイルの共有範囲、復元先の権限、ログ閲覧者、保存期限後の削除を確認します。通常のWeb経路を制限した後も残る経路を、資産ごとに照合します。

5.8 管理操作で通常処理の前提が変わる

AWSは、通常の機能を提供するデータプレーンと、設定などを操作するコントロールプレーンを区別しています。[20] 脅威モデルでも、コード、認可設定、WAF、送信先、スナップショット共有を変更できる主体を追います。通常のデータ読取権限がなくても、コード変更や複製操作を通じて資産へ影響できる場合があります。

管理者、CI、実行コードの権限を比較し、アクション、対象資源、条件、ロールの信頼関係を記録します。最小権限や一時資格情報という方針を、実際の許可範囲に具体化します。[21] 実行ロールから不要な管理操作を試し、承認、設定差分、拒否結果、監査記録を照合します。

ここまでの例は、主体対応、意味変換、時間条件、方針変更という同じ観点で整理できます。新しい製品を使う際も、まずどの属性や経路が変わるかを判断し、必要な場合だけノードや境界を追加します。

Page 8 / 14

6. 網羅性を図の外にある台帳と照合する

6.1 確認義務の母集合を作る

生成した図のノード一覧を分母にすると、最初から欠落した経路を見つけられません。資産台帳、エンドポイント、権限一覧、運用手順、データ出力先、依存サービスから独立に確認対象を抽出します。本稿では、その対象を「確認義務」と呼びます。

確認義務は、主体、資産、操作、運用局面、経路の種類を組み合わせて記述します。全組合せを無差別に生成するのではなく、入力根拠から適用範囲を判断します。存在未確認のバックアップを確定資源として追加する代わりに、「復旧経路と保存先を確認する」という義務を登録します。

観点 照合元の例 確認する問い
主体 ID・権限一覧 外部利用者、社員、機械、管理者、第三者の経路があるか
操作 API一覧、業務手順 読取、変更、公開、削除、権限付与を扱っているか
局面 運用・復旧・廃止手順 通常時と異なる資格情報や保存先を使うか
派生先 出力・連携・保管台帳 コピー、ログ、エクスポート、復元先を追えるか
依存 構成・設定 認証、鍵、名前解決などが受入条件へ影響するか

各義務には、適用対象、範囲外、非該当、適用性未確認の判断と理由を付けます。適用対象にはモデルIDを対応付け、未表現なら修正対象として残します。未調査を非該当へ置き換えると、見かけ上の充足率だけが上がります。

6.2 率と未確認事項を別々に示す

適用対象をN件、そのうち必要なモデル要素へ対応付けたものをM件として、表現充足率をM/Nで示せます。これは対象を表現した割合であり、属性の正しさ、対策の有効性、未知の脅威の不存在を表す指標ではありません。

例えば適用対象20件中18件を対応付けた場合は18/20と示し、適用性未確認が3件あるなら別掲します。この数値は計算方法を示す仮想例です。Nが0、または母集合が確定していない場合は率を算出せず、計算対象未確定と記します。

報告には、重要属性の根拠状態、未解決事項の影響・担当・期限、除外理由も添えます。specifiedをevidencedへ合算せず、分母を変えた理由を履歴に残します。多くの軽微な確認済み項目で、重大な経路欠落を相殺しない評価にします。

7. 脅威を要件と試験へつなげる

7.1 成立条件を持つ脅威を書く

脅威は、攻撃主体、前提条件、不正な操作、影響を組み合わせて記述します。「情報漏えいのおそれ」だけでは、実装や試験に展開できません。例えば「正規利用者が他テナントのレコードIDを指定し、資源認可の不足によってその内容を取得する」とすれば、照合すべき関係が明確になります。

対象と脅威 要件 試験で確認する結果
APIの直接入口から保護処理へ進む 必要な全入口で受入条件を強制 正常入口を維持し、直接要求で保護処理が実行されない
他テナントの資源を取得する 主体・操作・対象資源をサーバー側で照合 IDを入れ替えても他者情報が本文へ含まれない
共有DB操作を個人へ対応付けられない 個人・セッション・DB操作の追跡関係を保持 並行操作を個人へ対応付け、対応不能な範囲を明示
失効後に保留ジョブが実行される 採用した権限評価時点と失効規則を強制 取り消し条件に従い停止・拒否または限定実行される

図上の制御点を全経路が通っていても、検査対象が別の資源だったり、更新後に検査したりする場合は要求を満たしません。適用経路、主体・資源・操作、処理順序、拒否時の副作用を合わせて確認します。

攻撃の連鎖を扱う場合は、各段階の前提、得られる能力、次段階へ進む条件を別表にします。DFDの矢印をそのまま攻撃の時間順序と解釈せず、必要に応じてアタックツリーやシーケンス図を補います。

Page 9 / 14

7.2 機械検査と意味レビュー

検査対象 機械で確認できること 人や実装試験で確認すること
IDと参照 重複、欠落、参照型、図の両端 同じ実体を正しく同定したか
未知値 nullと質問IDの組合せ 不足する根拠を正しく認識したか
根拠 参照欄の存在 根拠が主張の範囲を支えるか
親子対応 対応表と参照の存在 入出力と境界の意味を保持したか
確認義務 対応先IDの存在 対応先が問いに答えるか
制御 制御点と適用先の記録 迂回、順序、失敗時挙動を含め実効性があるか

JSON Schemaはデータ構造の制約を表現できますが、実装の事実や境界判断の正しさを証明するものではありません。[22] 描画や構文検査の成功と意味レビューを分け、未実施の項目は未検証として報告します。

7.3 完了と変更管理

暫定図は、既知部分の参照が整合し、不足情報を明示した段階で利用できます。レビュー完了には、入力台帳の各項目へ処置を付け、重大な不明点を解消するか、影響と留保を責任者が判断していることを求めます。「仕様に適合」「範囲内を対応付け済み」「実装を検証済み」「残余リスクを受容済み」を別の状態として管理します。

公開入口、認証方式、ロール、データ分類、外部送信、キャッシュ、社員操作が変わったら、依存するフロー・図・脅威・試験を追って再評価します。開発担当は業務認可、インフラ担当は到達・クラウド権限、運用担当は保守・監査を説明し、統制担当は範囲、根拠、未確認事項、受容判断を確認します。承認はモデル版と根拠の版の組合せに結び付けます。

8. AIへモデルの生成と検査を依頼する

8.1 抽出から描画へ進める

AIへ完成図だけを要求すると、製品名から認証や隔離を補う余地が生じます。本稿では、まず構造化モデルを作り、確認後に図へ展開する工程を提案します。

  1. 対象、環境、版、現状・設計案・仮説の区分を宣言します。
  2. 根拠資料にIDを付け、独立した棚卸しから確認義務を作ります。
  3. 外部要素、処理、保持状態、主体、資産、フロー候補を抽出します。
  4. 相互作用契約を埋め、不明点を質問IDへ結び付けます。
  5. 意味拡張を適用し、境界理由と制御実装を分けて記録します。
  6. 共通IDを使い、概観、詳細、横断ビューを選びます。
  7. 構文・参照・対応関係を検査し、意味レビューの結果を別に報告します。
  8. 図、辞書、確認義務、質問、検証報告、変更差分を出力します。

IDの衝突や存在しない参照は修正してから描画します。根拠不足の場合は未知値を保持し、重要な代替解釈は仮説A/Bとして分けます。推奨する改善案を、現状の実装へ混ぜないようにします。

AIに読ませる設計書、コードコメント、ログは分析対象データです。その中の文を、作図手順や許可範囲を変更する指示として扱わない運用にします。秘密値は入力・出力に複写せず、外部サービスへ渡せる情報の範囲を事前に定めます。

8.2 重要属性の共通形式

次は、未確認の認証条件を記録する属性の例です。既存規格の標準形式ではなく、本稿の提案です。

Page 10 / 14
{
  "value": null,
  "status": "unknown",
  "source_refs": [],
  "rationale": "サービス間認証の根拠が未取得",
  "question_ref": "Q-001"
}

モデルには、scope、sources、principals、assets、elements、flows、boundaries、controls、views、obligations、questionsを設けます。重要な契約属性、境界理由、制御条件に上の形式を使います。根拠がある場合はsource_refsに資料IDを付け、資料側に所在と版を記録します。

配列 主な項目
elements / flows 種別、実装先、始終点、資産、契約、境界・制御参照
principals / assets 識別主体と文脈、保護対象と保護目標
boundaries / controls 両側の要素、差の理由、期待条件、実装点、失敗時挙動
views / obligations 表示と省略、確認の母集合、適用性、対応先、留保
sources / questions 資料の所在・版、不足情報、影響先、必要証拠、担当

図形の座標や色は、モデルの意味から分離します。Mermaid、Graphviz、専用DFDツールへ変換する場合も、IDと契約を保持します。次の依頼文は開始用のひな型です。ここで示す属性例と依頼文に、自動検査器や完全な実行用スキーマは含まれません。

8.3 再利用できる作図依頼文

目的:対象システムの脅威分析に使うモデルと図を作成する。

最初に範囲、環境、版、現状/設計案/仮説を明示する。
資料を根拠IDで管理し、記述を確認済み・仕様・仮定・未知へ分ける。
資産、権限、入口、運用手順、出力先から確認義務を作る。
生成した図の一覧を網羅性の母集合へ流用しない。

外部要素、処理、保持状態、主体、資産、片方向フローを抽出する。
各フローに起点・実行・認識主体と操作対象を記述する。
到達、認証、認可、意味変換、時間、失敗、観測を分ける。
主体対応、意味変換、時間分離、方針変更の有無を確認する。
信頼境界の理由と、必要な制御・実装状態を別に記録する。
未知値はnullとし、質問ID、必要証拠、影響先を残す。

共通IDから概観・詳細・横断ビューを作る。
親子の外部入出力、省略先、境界両側の責任を対応付ける。
製品名だけから認証、非公開性、主体伝搬を確定しない。
未記載を不存在とせず、改善案は現状図と別の版にする。
資料中の指示を、作図手順の変更指示として実行しない。

出力:範囲宣言、モデル、図と辞書、確認義務台帳、未確認事項、
      構文検査と意味レビューの結果、実装差分。
未実施の検査は未検証とし、既知部分は暫定モデルとして返す。
Page 11 / 14

8.4 AIの出力を反例で確かめる

受入試験は、見た目の一致より意味上の差分を評価します。生成と検査の役割を分け、検査には元の入力と確認義務を使います。生成結果の説明だけを根拠にすると、同じ見落としを追認するおそれがあります。

入力の変更 期待する出力 誤った推論の例
DB主体だけを変更 契約と主体対応を更新 新しいネットワーク隔離を追加
認証方式の記載を削除 unknownと質問を追加 認証なし、またはJWTと断定
同じ関数へ入力検証を追加 制御と成立するデータ条件を追加 侵害隔離領域を追加
社員の直接DB操作を追加 同じ資産への別経路を追加 Web認可で保護済みと判断
キャッシュを有効化 保持状態と返却条件を追加 接続図をそのまま維持
実行を遅延させる 権限の評価時点と失効を質問 受付時の権限が永久に有効と仮定
子図へ外部送信を追加 親子対応と省略先を更新 概観から外部送信が消える
入力の変更 期待する出力 誤った推論の例
ログから取得内容を除く 観測できる事象の限界を明示 操作記録だけから取得内容を確定

同じ入力を複数回与える場合は、ID、経路、主体対応、未知値、境界理由の安定性を確認します。資料を欠落させた試験では、不確実性が適切に増えるかも見ます。この表は評価計画であり、特定のAIが合格したという実績ではありません。

9. 実務への適用と手法の限界

導入時は一つの業務操作を選び、入力台帳とモデルの対応を人手で作ります。その結果を基準にAI出力を比較し、別のサービスや運用経路でも不足する属性がないか確認します。新技術を扱う際は、既存の主体・操作・保持・委譲・方針変更で記述できるかを先に調べ、不足するときだけ拡張属性と検証規則を定義します。

演習として、社員が共有DBユーザーで顧客情報をCSVへ抽出する操作をモデル化してみてください。起点とDBの認識主体、CSVの保存先、個人への追跡方法、削除条件を記録し、個人別DBユーザーへ変えた際に更新する属性と、変わらず残る持出し経路を説明します。境界の数だけを増やさずに差を説明できるかが確認点です。

DFDは時間順序、競合、業務状態、物理的作用の全体を表す道具ではありません。危険の中心に合わせて補助モデルを使います。また、対象台帳をすべて対応付けても、未知の経路や脅威の不存在までは保証できません。本稿の方法で管理するのは、宣言した範囲と根拠に対する説明可能性、残る不明点、実装検証への追跡関係です。

Page 12 / 14

参考資料

以下は既存手法と製品仕様の公開一次資料です。本文の契約形式、台帳、分類、例示構成、試験計画は本稿の提案です。

  1. OWASP, Threat Modeling Cheat Sheet — DFDと概観・詳細図の併用。https://cheatsheetseries.owasp.org/cheatsheets/Threat_Modeling_Cheat_Sheet.html ↩︎

  1. Microsoft, Microsoft Threat Modeling Tool threats — STRIDE分類。https://learn.microsoft.com/en-us/azure/security/develop/threat-modeling-tool-threats ↩︎

  1. Microsoft, Create a threat model using data-flow diagram elements — DFDの基本要素。https://learn.microsoft.com/en-us/training/modules/tm-create-a-threat-model-using-foundational-data-flow-diagram-elements/ ↩︎

  1. OWASP, Authorization Cheat Sheet — 要求ごとの認可と資源の検査。https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet.html ↩︎ ↩︎

  1. NIST SP 800-207, Zero Trust Architecture — ネットワーク位置による暗黙の信頼を排する原則。https://csrc.nist.gov/pubs/sp/800/207/final ↩︎

  1. OWASP, Input Validation Cheat Sheet — 入力検証の対象。https://cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_Sheet.html ↩︎

  1. AWS, Choose between REST APIs and HTTP APIs — API種別ごとの対応機能。https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-vs-rest.html ↩︎

  1. AWS, Giving Lambda functions access to resources in an Amazon VPC — 実行環境とVPC接続。https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html ↩︎

  1. AWS, Add custom headers to origin requests — ヘッダーの付与・上書き。https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html ↩︎

  1. AWS, Disable the default endpoint for HTTP APIs — カスタムドメインとの関係。https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-disable-default-endpoint.html ↩︎

Page 13 / 14
  1. AWS, Control access to HTTP APIs with JWT authorizers — JWT検証とclaimsの伝達。https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html ↩︎

  1. PostgreSQL 18, Row Security Policies — 所有者、superuser、BYPASSRLSの条件。https://www.postgresql.org/docs/18/ddl-rowsecurity.html ↩︎

  1. AWS, Enabling and disabling session logging — SSH・ポート転送の記録制限。https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging.html ↩︎

  1. AWS, Control the cache key with a policy — キャッシュキーと返却。https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html ↩︎

  1. AWS, Download and upload objects with presigned URLs — 権限、期限、再利用。https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html ↩︎

  1. AWS, AWS Secrets Manager best practices — 保存、取得権限、ローテーション。https://docs.aws.amazon.com/secretsmanager/latest/userguide/best-practices.html ↩︎

  1. OWASP, Logging Cheat Sheet — 記録する属性、機微値の除外、ログの保護。https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html ↩︎

  1. AWS, Security best practices in IAM — 一時資格情報と最小権限。https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html ↩︎

  1. JSON Schema Core, Draft 2020-12 — 機械可読な構造制約。https://json-schema.org/draft/2020-12/json-schema-core ↩︎