ゆめさくセキュリティ

レッスン 1-1

脅威モデリング

守る物を決めないうちは、守りは設計できません。

守る物、入口、攻め手、対策の順に考え、データの流れ図と信頼の境目を描いて、6 つの型で漏れなく脅威を数えます。最後に、どれから直すかを起きやすさと痛さで決めます。

  • 目安90 分
  • 出典を確かめた日2026年10月24日
  • 修了の条件自分のサービスで、境目をまたぐデータの流れを 3 つ以上、口で説明できる

問い

あなたは、小さなメモ帳のサービスを作りました。ログインして、メモを書いて、ほかの人に共有できます。公開する前に、先輩から「このサービスの脅威を挙げておいて」と言われました。

何から手を付けますか。思いつく攻撃を、順に並べていけばよいでしょうか。

思いつく順に並べると、知っている攻撃だけが並びます。SQL インジェクションを知っていればそれを書き、知らない攻撃は書けません。そして、どこまで挙げれば足りるのかも分かりません。

このレッスンでは、思いつきに頼らずに脅威を数える手順を学びます。先に「何を作っているか」を図にし、図の上の決まった場所に、決まった問いを当てていきます。

前提知識

  • Web のサービスが、ブラウザ、サーバー、データベースの 3 つでできていることを知っている
  • ログインのあとに、サーバーがセッションで相手を覚えていることを知っている
  • 認証と認可の違いを、ひと言で言える

3 つ目があやしいときは、認証は「だれか」を確かめること、認可は「何をしてよいか」を決めることだと押さえてから進んでください。

仕組み

脅威モデリングは、作っている物の上で「何がまずくなりうるか」を、順を追って洗い出す作業です。決まった 1 つのやり方はありませんが、多くのやり方は 4 つの問いに答える形をとります。

  1. 何を作っているのか
  2. 何がまずくなりうるか
  3. それに対して何をするか
  4. 十分にできたか

この 4 つの問いは、脅威モデリングの実践者が共同で書いた「脅威モデリング宣言」の中心にあります。このレッスンでは、1 つ目と 2 つ目を図で考え、3 つ目と 4 つ目をラボと修正で確かめます。

守る物、入口、攻め手、対策

守る物、入口、攻め手、対策の 4 段を、左から順に考える図。守る物はメモとパスワードと共有の設定、入口はログインと保存と共有のリンク、攻め手はだれがどこから何を狙うか、対策は減らす、なくす、移す、受け入れるの 4 つ

はじめに、守る物を決めます。メモ帳なら、メモの本文、ログインのパスワード、共有の設定です。守る物が決まると、そこへ届く入口が見えてきます。ログインの画面、メモを保存する API、共有のリンクです。

次に、入口ごとに攻め手を考えます。だれが、どの入口から、何をしようとするか。最後に、攻め手ごとに対策を選びます。

この順を逆にしないことが大切です。対策から考えると、手持ちの対策で守れる物だけを守った気になります。

流れ図と信頼の境目

「何を作っているか」は、データの流れ図で描きます。英語では Data Flow Diagram、略して DFD と呼ばれます。使う記号は 4 つだけです。

  • 外の人や外のサービス。利用者や、メールを送る外の会社など
  • 処理。サーバーの中のプログラム
  • 置き場。データベースやファイル
  • 流れ。データが動く向きを矢印で描く

この図に、信頼の境目を線で引きます。信頼の境目は、扱いの違う 2 つの領域の間の線です。ブラウザとサーバーの間、サーバーとデータベースの間、自分のサービスと外のサービスの間に引きます。

脅威は、境目をまたぐ流れに集まります。境目の外から来るデータは、だれが書いたか分からないからです。

6 つの型で数える

6 つの型の図。なりすましは認証、改ざんは完全性、否認は記録と追跡、情報漏えいは機密性、サービス妨害は可用性、権限昇格は認可が崩れる

境目をまたぐ流れが見えたら、1 本ずつ 6 つの問いを当てます。6 つの型の英語の頭文字をとって、STRIDE と呼びます。

  • なりすまし。他人のふりをして入る。崩れるのは認証
  • 改ざん。データを書き換える。崩れるのは完全性
  • 否認。やったことを、やっていないと言い張る。崩れるのは記録と追跡
  • 情報漏えい。見せてはいけない物が見える。崩れるのは機密性
  • サービス妨害。正しい利用者が使えなくなる。崩れるのは可用性
  • 権限昇格。許された以上のことができてしまう。崩れるのは認可

6 つの型は、思いつきの代わりに問いを配る道具です。答えが「このサービスでは起きない」なら、その理由を 1 行で残します。理由が書けない所に、見落としが隠れています。

どれから直すか

挙げた脅威を全部すぐには直せません。順番は、起きやすさと、起きたときの痛さの 2 つで決めます。

起きやすさは、攻め手の手間で見ます。ログインせずに試せる、道具が出回っている、という脅威は起きやすい側です。痛さは、守る物の側で見ます。全員のメモが漏れるのと、1 人の表示が乱れるのとでは、重さが違います。

失敗例

境目を引かずに、攻撃の名前から始める

知っている攻撃の名前を並べると、表は長くなりますが、守る物との対応が付きません。どの入口の、どの流れの話かが書かれていないので、直す人が何を直せばよいか分かりません。

社内の流れを数えない

「サーバーとデータベースの間は社内だから安全」として、境目を引かない失敗です。実際には、サーバーが乗っ取られれば、その先のデータベースへは素通りになります。中の流れにも境目を引き、中の流れにも問いを当てます。

1 回描いて終わる

脅威モデルは、作る物が変わるたびに古くなります。共有の機能を足したのに、図が足す前のままだと、新しい入口に問いが当たりません。機能を足したら、図を描き直す所までを作業に含めます。

ラボ

自分の PC の中だけで行います

このラボは、紙かお絵かきの道具だけで行います。外のサービスに何かを送ることはしません。図に本物の利用者の名前やパスワードを書かないでください。

目的

小さなメモ帳のサービスの流れ図を描き、境目をまたぐ流れに 6 つの問いを当てて、脅威を 6 つ以上挙げます。

前提

  • 紙とペン、または図を描ける道具
  • 次の作りのメモ帳のサービス。自分の PC の中だけで動く想定です
    • ブラウザから、ログインとメモの保存と共有ができる
    • サーバーは 1 つで、データベースにメモとパスワードを置く
    • 共有のときは、外のメールのサービスで相手にリンクを送る

手順

  1. 外の人と外のサービスを描く。利用者、共有される相手、メールのサービス
  2. 処理と置き場を描く。サーバーとデータベース
  3. 流れを矢印で描く。ログイン、メモの保存、メモの表示、共有のメール
  4. 信頼の境目を線で引く。少なくとも 3 本
  5. 境目をまたぐ流れに番号を振る
  6. 番号ごとに 6 つの型を当て、起きうる脅威を 1 行ずつ書く

期待される観測

境目をまたぐ流れは 5 本前後になります。共有のリンクの流れには、なりすましと情報漏えいの両方が当たるはずです。リンクを知っていればだれでも開ける作りだと、転送されたリンクから他人がメモを読めるからです。

何を証明したか

思いつきで並べたときより、挙がる脅威の数が増えたかを比べます。増えた分は、6 つの型が配った問いで見つけた物です。

後片付け

描いた図は、次の修正の節で使うので残します。人に見せるときは、本物の名前や住所が入っていないかを先に確かめます。

修正

挙げた脅威の 1 つずつに、どう応じるかを決めます。応じ方は 4 つに分けられます。

  • 減らす。起きにくくする手を打つ。共有のリンクに期限を付ける、など
  • なくす。原因の機能をやめる。だれでも開ける共有をやめ、相手のログインを求める、など
  • 移す。契約や保険で、責任を別の人に持ってもらう。ただし起きやすさは下がりません
  • 受け入れる。手を打たないと決める。決めた理由と、だれが決めたかを残す

ラボで挙げた脅威から 3 つを選び、それぞれの応じ方を決めてください。そのあと図に戻り、応じ方を当てたあとの流れで、同じ 6 つの問いをもう一度当てます。脅威が消えたか、別の形で残ったかを見るのが、4 つ目の問い「十分にできたか」の確かめです。

確認クイズ

1 問目

ログインの画面とサーバーの間に、信頼の境目を引くのはなぜですか。

  • ア 通信が暗号化されていないから
  • イ 境目の外から届くデータは、だれが書いたか分からないから
  • ウ サーバーの処理が遅いから
答えと理由を見る

答え イ

境目は、扱いの違う領域の間に引きます。ブラウザから届くデータは利用者の手元で書き換えられるので、サーバーは中身を信じずに確かめる必要があります。通信の暗号化は大事ですが、暗号化しても、届く中身を書いたのはブラウザの側です。

2 問目

共有のリンクを知っていればだれでもメモを読める作りです。6 つの型のうち、まず当てはまるのはどれですか。

  • ア 情報漏えい
  • イ サービス妨害
  • ウ 否認
答えと理由を見る

答え ア

リンクが転送されると、見せるつもりの無い人がメモを読めます。見せてはいけない物が見えるので、情報漏えいです。リンクを受け取った人が持ち主のふりをするわけではないので、なりすましより先に情報漏えいが当たります。

3 問目

挙げた脅威を、起きやすさと痛さで並べるのはなぜですか。

  • ア 6 つの型の順に直す決まりがあるから
  • イ 全部をすぐには直せず、限られた手間を重い物から使うため
  • ウ 痛さの小さい物は脅威ではないから
答えと理由を見る

答え イ

脅威の数に比べて、直す手間はいつも足りません。起きやすくて痛い物から手を付けると、同じ手間で減らせる被害が大きくなります。痛さの小さい物も脅威ではあるので、受け入れると決めたら理由を残します。

説明課題

次のことを、自分の言葉で 3 行にまとめてください。書けたら、このレッスンは修了です。

  • 脅威モデリングで、思いつきで攻撃を並べるより先に、流れ図と信頼の境目を描くのはなぜか
模範解答を見る

思いつきで並べると、知っている攻撃しか挙がらず、どこまで挙げれば足りるかも分からない。流れ図に境目を引くと、脅威の集まる場所が境目をまたぐ流れに絞られる。その流れ 1 本ずつに 6 つの型の問いを当てれば、知らない攻撃の入口も漏れにくくなる。

一次資料

どれも 2026年10月24日に開いて、題と中身を確かめました。

次へ

次のレッスンは「暗号とその失敗」です。このレッスンで挙げた情報漏えいと改ざんに、暗号がどこまで効き、どこから効かないかを確かめます。

次のレッスン 1-2 暗号とその失敗 準備中