STRIDE すとらいど
簡単に言うとこんな感じ!
システムへの攻撃パターンを6種類に整理した「脅威チェックリスト」だよ!設計段階で「どんな悪いことが起きそう?」を漏れなく洗い出すための枠組みで、各頭文字を並べると「STRIDE」になるんだ!
STRIDEとは
STRIDEとは、ソフトウェアやシステムに潜むセキュリティ上の脅威を6つのカテゴリに分類したフレームワークです。1999年にMicrosoft社のセキュリティ研究者であるLoren KohnfeldとShane Cのチームが考案し、脅威モデリング(Threat Modeling)の代表的な手法として広く普及しています。
脅威モデリングとは、システムを設計する段階で「どんな攻撃が来るか」を先読みして対策を盛り込む活動のことです。家を建てるときに「泥棒が入りやすい窓はどこか」を設計図の段階で確認するようなイメージで、後から鍵を取り付けるより安くて確実な対策が打てます。STRIDEはその際に「見落としがないか」をチェックするための6つの引き出しを提供してくれます。
ビジネスの現場では、新しいシステムを発注・設計する際にベンダーや開発チームが「STRIDEで脅威を洗い出しました」という形で報告書を提出することがあります。発注側の担当者として、6つのカテゴリの意味を知っておくと、報告書の妥当性を判断しやすくなります。
STRIDEの6つの脅威カテゴリ
STRIDEの名前は、6つの脅威の頭文字を組み合わせたものです。
| 頭文字 | 英語 | 日本語 | 攻撃例 |
|---|---|---|---|
| S | Spoofing | なりすまし | 他人のIDでログイン、送信元IPの偽装 |
| T | Tampering | 改ざん | データベースの書き換え、通信パケットの書き換え |
| R | Repudiation | 否認 | 「そんな操作はしていない」と言い逃れる行為 |
| I | Information Disclosure | 情報漏洩 | 個人情報・機密ファイルへの不正アクセス |
| D | Denial of Service | サービス拒否 | 大量リクエストでサーバーをダウンさせる(DoS攻撃) |
| E | Elevation of Privilege | 権限昇格 | 一般ユーザーが管理者権限を不正に取得する |
覚え方・語呂合わせ
「すた・り・いで」(S・T・R・I・D・E)で覚えるのがおすすめです。
S → 素性(すじょう)を偽る → なりすまし(Spoofing)
T → データを手直し → 改ざん(Tampering)
R → 「やってない」と言い張る → 否認(Repudiation)
I → 情報がダダ漏れ → 情報漏洩(Information Disclosure)
D → ダウンさせる → サービス拒否(Denial of Service)
E → えらい権限を奪う → 権限昇格(Elevation of Privilege)
各脅威に対応するセキュリティ特性
それぞれの脅威は、情報セキュリティの基本原則と対になっています。
| STRIDE脅威 | 守るべきセキュリティ特性 | 主な対策例 |
|---|---|---|
| Spoofing(なりすまし) | 認証(Authentication) | 多要素認証・デジタル証明書 |
| Tampering(改ざん) | 完全性(Integrity) | デジタル署名・チェックサム |
| Repudiation(否認) | 否認防止(Non-repudiation) | 監査ログ・タイムスタンプ |
| Information Disclosure(情報漏洩) | 機密性(Confidentiality) | 暗号化・アクセス制御 |
| Denial of Service(サービス拒否) | 可用性(Availability) | レート制限・冗長構成 |
| Elevation of Privilege(権限昇格) | 認可(Authorization) | 最小権限原則・ロール管理 |
歴史と背景
- 1999年 — Microsoftのエンジニア Loren Kohnfeld と Praerit Garg が社内の脅威モデリング手法としてSTRIDEを考案
- 2002年 — MicrosoftがセキュリティSDL(Security Development Lifecycle)を策定し、STRIDEを開発プロセスの標準ツールとして組み込む
- 2006年 — Frank SwiederskiとWindow Snyder著『Threat Modeling』が出版され、STRIDEが広く業界に知られるようになる
- 2009年頃〜 — OWASPなどのセキュリティコミュニティがSTRIDEをWebアプリケーション設計のチェック手法として推奨し始める
- 2014年 — MicrosoftがSTRIDEを活用した脅威モデリングツール「Microsoft Threat Modeling Tool」を公開(無料)
- 2020年代〜 — クラウドネイティブ・DevSecOpsの普及とともに、CI/CDパイプラインへのSTRIDEベースの脅威モデリング統合が進む
脅威モデリングの進め方とSTRIDEの使い方
STRIDEは単体で使うより、システムのデータフロー図(DFD: Data Flow Diagram)と組み合わせて使うことで効果を発揮します。
脅威モデリングの4ステップ
Step 1: システムを図に描く
└─ データがどこを流れるか、信頼境界はどこかをDFDで整理
Step 2: STRIDEで脅威を列挙する
└─ DFDの各要素(プロセス・データストア・データフロー)に対して
S/T/R/I/D/E それぞれが起きないか問いかける
Step 3: リスクを評価する
└─ 発生確率 × 影響度でリスクの高低を判断(DREADなどの手法を使う)
Step 4: 対策を設計する
└─ 各脅威に対応するセキュリティコントロールを盛り込む
STRIDEと他の脅威モデリング手法の比較
DFDとSTRIDEの組み合わせ方
DFD(データフロー図)上の各要素に、STRIDEの脅威が適用できるかを確認します。
| DFD要素 | 意味 | 適用できる脅威 |
|---|---|---|
| プロセス(処理) | アプリ・サービスが動く部分 | S / T / R / I / D / E(全部) |
| データストア(保管) | DBやファイルが置かれる場所 | T / R / I / D |
| データフロー(通信) | データが移動する経路 | T / I / D |
| 外部エンティティ(外部接続) | ユーザー・外部システム | S / R |
実務での活用シーン
発注担当者として、以下の場面でSTRIDEを意識することが重要です。
システム発注時のRFP(提案依頼書)に盛り込める一言:
「設計フェーズにてSTRIDEフレームワークを用いた脅威モデリングを実施し、その結果を設計書に添付してください」
ベンダーへの確認ポイント:
- STRIDEの6カテゴリそれぞれに対する脅威が列挙されているか
- 列挙された脅威に対して具体的な対策が設計に盛り込まれているか
- 特に「否認(Repudiation)」への対策として監査ログが設計されているか
関連する規格・RFC
| 規格・文書 | 内容 |
|---|---|
| NIST SP 800-154 | データ中心型脅威モデリングガイド(STRIDEを含む手法を参照) |
| NIST SP 800-30 | リスクアセスメントのガイドライン(脅威モデリングの上位フレームワーク) |
関連用語
- 脅威モデリング — システム設計段階でセキュリティ上の脅威を体系的に洗い出す手法
- DFD(データフロー図) — データの流れと処理を図示する設計ツール。STRIDEと組み合わせて使う
- ゼロトラストセキュリティ — 「何も信頼しない」を前提にした現代的なセキュリティ設計思想
- DoS攻撃・DDoS攻撃 — STRIDEのD(Denial of Service)に対応する代表的な攻撃手法
- 多要素認証(MFA) — STRIDEのS(なりすまし)に対する代表的な防御策
- 最小権限の原則 — STRIDEのE(権限昇格)への対策として重要な設計原則
- セキュリティSDL — MicrosoftがSTRIDEとともに策定した開発ライフサイクル全体のセキュリティ指針
- ペネトレーションテスト — 実際に擬似攻撃を行いシステムの脆弱性を確認するテスト手法