IoT Security 02 · 脅威モデリングと攻撃者の分類

Chapter 02

脅威モデリングと攻撃者の分類

この章がなぜ必要なのか——「全部守る」は不可能であり、無駄でもある.

セキュリティ機能はコストである。RAM を食い、CPU を食い、電池を食い、 開発工数を食い、そして BOM コストを上げる。

だから「誰から、何を、いくらまで守るか」を先に決めなければならない。 それを体系的にやる作業が脅威モデリングである。

これをやらずに機能を並べると、必ず「守るべきものが守られていない」状態になる。

この章で使う既出の用語(定義は各リンク先). デフォルトパスワード(01 章 5 節)、可用性(01 章 4 節)

1. 脅威モデリングの 4 つの質問

Adam Shostack の定式化が最も使いやすい。この 4 つに順に答える。

#質問成果物
1何を作っているのかシステム構成図、データフロー図、信頼境界
2何がうまくいかないか脅威の一覧(STRIDE などで洗い出す)
3それにどう対処するか対策の一覧(緩和・移転・受容・回避)
4ちゃんとやれたか検証(テスト・レビュー・第三者評価)

重要なのは、1 を飛ばさないこと。 「何を作っているか」を図にせずに脅威を挙げると、必ず漏れる。

2. 信頼境界を引く

脅威は信頼境界(trust boundary)をまたぐところで発生する。

信頼境界 — どこで信頼が切り替わるか機器の筐体(物理境界)クラウドスマホMCU外付けフラッシュSoC 内部:Secure / Non-secureデバッグポートSWD / JTAGTLSBLESPI境界 A境界 B境界 C境界 D境界 E境界を跨ぐところがすべて検討対象になる
信頼境界を引く作業が脅威モデリングの本体。境界を跨ぐデータには必ず検証が要る
境界またぐもの主な脅威章
A: クラウド ⇄ 機器ネットワーク中間者攻撃、なりすまし、リプレイ16
B: スマホ ⇄ 機器BLE / Wi-Fiペアリング攻撃、盗聴、コマンド注入16
C: MCU ⇄ 外付けフラッシュ基板上の配線バス盗聴、フラッシュ差し替え、内容の読み出し06, 11
D: Secure ⇄ Non-secureSoC 内部権限昇格、メモリ越境07
E: デバッグポート物理接点ファームウェア抽出、実行制御11
F: 筐体(物理)分解チップ剥がし、プロービング、故障注入09, 10

境界を数えると、対策の抜けが見える.

「TLS を入れたから安全」と言う人は、境界 A しか見ていない。 境界 C(外付けフラッシュ)が無防備なら、TLS の秘密鍵は SPI バスを覗くだけで取れる。

実際、多くの IoT 機器で最も脆弱なのは境界 C と E である。

3. STRIDE — 脅威の分類

STRIDE — 脅威の 6 分類S — なりすまし他の機器やサーバのふりをする。対策:相互認証・機器固有鍵T — 改ざんファームウェアやデータを書き換える。対策:署名検証・完全性R — 否認やったことを否定する。対策:ログ・監査証跡I — 情報漏洩鍵や個人情報が読まれる。対策:暗号化・不可視化D — サービス妨害動作を止める。対策:ウォッチドッグ・帯域制御E — 権限昇格できないはずのことをする。対策:分離・最小権限境界を跨ぐデータフローごとに、この 6 つを順に当てて漏れを潰す
STRIDE は「思いつき」を防ぐためのチェックリスト。分類そのものより、全境界に機械的に当てることに意味がある

Microsoft が広めた分類。信頼境界ごとに、この 6 つを機械的に当てはめる。

STRIDE で脅威を洗い出す

境界とコンポーネントを選ぶと、当てはまる脅威と対策が表示される。

頭字脅威破られる性質IoT での例
S — Spoofingなりすまし認証 (Authentication)偽のデバイスがクラウドに接続する/偽のサーバに機器が接続する
T — Tampering改ざん完全性 (Integrity)ファームウェアの書き換え、設定値の改変、センサ値の偽装
R — Repudiation否認否認防止 (Non-repudiation)「その操作はしていない」と主張される。ログの改ざん
I — Information Disclosure情報漏洩機密性 (Confidentiality)秘密鍵の抽出、ユーザデータの読み出し、通信の盗聴
D — Denial of Serviceサービス妨害可用性 (Availability)電池切れ攻撃、フラッシュ書き潰し、通信妨害
E — Elevation of Privilege権限昇格認可 (Authorization)Non-secure から Secure への越境、一般ユーザから管理者へ

IoT で特に重要な 3 つ

上の 6 つは等価ではない。IoT では S・T・I が支配的である。

脅威なぜ重要か主な対策
Spoofing機器の ID がなりすまされると、クラウド側の全データが汚染される機器固有の秘密鍵と証明書(12 章)
Tamperingファームウェアを書き換えられたら、他の全対策が無意味セキュアブート(05 章)
Information Disclosure秘密鍵が漏れたら、S も T も一気に成立する鍵の保管(06 章)

この 3 つが繋がっていることに注目してほしい.

秘密鍵が漏れる(I)→ なりすませる(S)→ 偽のファームウェアを送り込める(T)

逆に言えば、「鍵をハードウェアから出さない」という 1 つの対策が、 3 つの脅威に同時に効く。だから 06 章が全体の要になる。

D(DoS)の特殊性

IoT では DoS が独特の形をとる。

形内容
電池枯渇攻撃無意味な通信を送り続けて、電池駆動機器の寿命を数年から数日に縮める
フラッシュ書き潰し書き換え回数の上限(10 万回程度)を狙って書き込みを誘発する
ブートループ誘発起動できない状態にして物理的に回収させる
証明書期限切れ攻撃ではないが、時刻同期が壊れると全機器が同時に通信不能になる

最後の 1 つは事故として実際に起きている。 攻撃だけでなく、 設計ミスによる可用性の喪失も脅威モデルに含めるべきである。

4. 攻撃者を分類する

攻撃者のクラス — どこまで守るかを決めるための物差しクラス 1いたずら・スクリプトキディ公開ツールを試すだけ。既知の穴を突く〜1 万円クラス 2熟練した個人・愛好家分解して UART / SPI を読む。ロジアナ程度〜10 万円クラス 3犯罪者(金銭目的)サイドチャネル・グリッチ。投資回収を計算している〜数百万円クラス 4専門ラボ・競合企業FIB・レーザー・チップ解析。設備を持っている〜数千万円クラス 5国家レベル実質的に制限がない制限なし「クラス 3 まで守り、4 以上は受容する」——この線引きを文書に書くことが設計の出発点になる
守る相手を決めないと、対策の過不足が判断できない。クラスを明記して、受容するリスクも明記する

「攻撃者」を一括りにすると設計できない。能力と動機で分ける。

攻撃者のクラスと予算

攻撃者クラスを選ぶと、その相手にどこまで対策が要るかが表示される。

クラス動機能力予算典型的な攻撃
1. 好奇心遊び、学習ネット上の情報とツール~1 万円デフォルトパスワード、既知 CVE、UART
2. 愛好家/改造者機能解放、自作電子工作、逆アセンブル~10 万円SWD 吸い出し、フラッシュ読み出し、簡単なグリッチ
3. 犯罪者(金銭目的)金手法を買う・雇う。規模を求める~100 万円大量デバイスの乗っ取り、認証情報の窃取、ランサム
4. 競合他社模倣、IP 窃取専門ラボに委託できる~1000 万円ファームウェア解析、鍵抽出、リバースエンジニアリング
5. 国家・大規模組織諜報、破壊工作ほぼ無制限。ゼロデイを持つ無制限サプライチェーン攻撃、FIB、専用の解析設備

クラス 3 の性質を理解することが最も重要である.

犯罪者は規模を求める。1 台を苦労して破っても金にならない。 「1 台破ると全台破れる」構造があるときに、初めて経済的に成立する。

だから最も効果的な対策は——

「機器ごとに違う鍵を使う」(12 章)

これだけで、クラス 3 の攻撃の経済性が崩壊する。 高価なハードウェアより先に、この設計をすること。

どこまで守るか — 現実的な線引き

製品カテゴリ想定すべき最大クラス根拠
一般消費者向け IoT(照明、家電)クラス 21 台破っても得るものが少ない
スマートロック、防犯カメラクラス 3侵入・プライバシーで金になる
決済端末、電力メータクラス 4直接的な金銭価値がある
自動車、医療機器クラス 4〜5人命に関わる。規制も厳しい
重要インフラ、防衛クラス 5国家レベルの攻撃を想定

5. DREAD と、リスクの優先順位づけ

脅威を洗い出したら、対処の順番を決める必要がある。 すべてに対処する予算はないからである。

素朴には、リスクを次のように定義する。

\[ \text{リスク} = \text{発生可能性} \times \text{影響の大きさ} \]

より細かく評価するなら DREAD がある。

項目意味
Damage成功したときの被害の大きさ
Reproducibility再現の容易さ
Exploitability攻撃の実行しやすさ
Affected users影響を受けるユーザ数
Discoverability脆弱性の発見しやすさ

DREAD の点数化は主観的で、数値を信じすぎてはいけない.

実務では、「高/中/低」の 3 段階で十分なことが多い。 大事なのは精密な点数ではなく、 「これは対処する」「これは受容する」を明示的に決めて記録することである。

記録が重要なのは、規制対応(03 章)で「リスク評価を実施した証拠」を求められるからである。 EU CRA は「サイバーセキュリティリスクアセスメント」の実施と文書化を要求している。

4 つの対処方法

対処内容例
緩和 (Mitigate)技術的対策で発生確率か影響を下げるセキュアブートを入れる
移転 (Transfer)他者に責任を移す保険、セキュアエレメントのベンダ保証
受容 (Accept)リスクを認識したうえで対処しない「クラス 5 の攻撃には対応しない」
回避 (Avoid)機能自体をなくす「リモートからのファームウェア書き込み機能を持たない」

「回避」が最も強力で、最も見落とされる.

使わない機能は攻撃面にならない。

機能を減らすことは、最も安価で最も確実なセキュリティ対策である。

6. 攻撃ツリー

STRIDE が「網羅的に洗い出す」ための道具なのに対し、 攻撃ツリーは「特定の目標に対する経路を掘り下げる」ための道具である。

攻撃ツリー — 目標「機器の秘密鍵を入手する」目標:機器の秘密鍵を入手する(a) ソフトウェア経由ファームウェアの脆弱性を突いてメモリを読む対策:メモリ安全・スタック保護・MPU(15 章)デバッグ/診断コマンドで読み出す対策:量産ビルドから除去(b) デバッグポート経由SWD / JTAG でメモリを読む対策:デバッグ無効化・ライフサイクル状態(11・14 章)保護をグリッチで解除する対策:耐フォールト設計(10 章)(c) 外部メモリ経由SPI フラッシュを外して読む対策:フラッシュ暗号化(06 章)SPI バスをプロービングする対策:オンザフライ復号(鍵はチップ内)(d) サイドチャネル暗号処理中の消費電力から鍵を推定する対策:DPA 対策済み暗号エンジン(09 章)(e) サプライチェーン工場から鍵が流出する対策:セキュアプロビジョニング(12 章)開発環境から署名鍵が流出する対策:HSM での鍵管理、署名の分離(12 章)枝を全部潰す必要はない。「最も安い枝」から順に、割に合わない高さまで塞ぐ
攻撃ツリーは、目標から手段へ分解していく。対策は葉に対応させ、どの枝が一番安いかで優先順位を決める

攻撃ツリーの価値は「最も弱い枝」が見えることである.

どんなに (d) のサイドチャネル対策を固めても、 (c) でフラッシュを外して読めるなら、そちらから取られる。

攻撃者は最も安い経路を選ぶ。 一番弱い枝の強度が、システム全体の強度である。 だから「全体をバランスよく」が原則になる。

7. 実務での進め方

段階やること成果物
企画時保護資産と攻撃者クラスを決めるセキュリティ目標(1 ページ)
アーキ設計時信頼境界を引き、STRIDE を回す脅威一覧と対策一覧
SoC 選定時必要な HW 機能を洗い出す必須機能リスト(23 章)
詳細設計時攻撃ツリーで弱い枝を潰す設計判断の記録
実装時チェックリストでレビューレビュー記録(23 章)
検証時ペネトレーションテスト、第三者評価試験報告書
運用時脆弱性情報の追跡と更新脆弱性対応記録(15 章)

全部を最初に完璧にやろうとしないこと.

現実的には、企画時に 1 ページのセキュリティ目標を書くだけでも大きな前進である。

セキュリティ目標の書き方(例:屋外カメラ)守るもの① ファームウェア完全性 ② クラウド接続用の秘密鍵 ③ ユーザの映像データ想定攻撃者クラス 3(犯罪者・金銭目的)まで前提屋外に設置され、攻撃者は現物を入手できる必須要件セキュアブート/機器固有鍵/セキュア OTA/デバッグ無効化/TLS 相互認証受容するリスク専用ラボによる物理攻撃(FIB・レーザー)での鍵抽出「受容するリスク」を書くことが最も重要。書かないと、際限なく対策が増えるか、逆に無防備になる
脅威モデリングの成果物はこの 5 行。これが後の設計判断すべての根拠になる

これが決まっていれば、以降の全判断に基準ができる。

8. この章のまとめ

ポイント内容
4 つの質問何を作る/何がうまくいかない/どう対処する/ちゃんとやれたか
信頼境界脅威は境界をまたぐところで発生する。境界を数えると抜けが見える
STRIDE6 分類。IoT では S・T・I が支配的で、しかも連鎖する
攻撃者クラス1(好奇心)〜5(国家)。製品カテゴリごとに線を引く
クラス 3 対策の核心機器ごとに違う鍵。これで大量攻撃の経済性が崩れる
リスク対処緩和・移転・受容・回避。「回避」が最も安価で確実
攻撃ツリー最も弱い枝の強度が、システム全体の強度
記録の意味規制対応でリスク評価の文書化が要求される

次章では、その規制——世界各地で施行されつつある IoT セキュリティ法規と、 認証制度の地図を描く。