STRIDEフレームワーク
なりすまし、改ざん、否認などを学びます。
「STRIDEフレームワーク」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
STRIDEとは
STRIDEは、Microsoftが開発した脅威分類フレームワークです。システムの各コンポーネントについて「何が問題になり得るか」を体系的に問いかけられるよう、6つの脅威カテゴリを提供します。
STRIDEは、6種類の脅威を表す頭字語です。
- Spoofing(なりすまし)
- Tampering(改ざん)
- Repudiation(否認)
- Information disclosure(情報漏えい)
- Denial of service(サービス拒否)
- Elevation of privilege(権限昇格)
STRIDEとセキュリティ特性の対応
STRIDEの各カテゴリは、望ましいセキュリティ特性が損なわれることを表します。この対応関係を覚えておくと、それぞれの脅威が何を攻撃するのか理解しやすくなります。
Threat Violates property
---------------------- --------------------
Spoofing Authentication
Tampering Integrity
Repudiation Non-repudiation
Information disclosure Confidentiality
Denial of service Availability
Elevation of privilege Authorizationなりすまし
Spoofingとは、自分ではない人物や物になりすますことです。認証に違反します。
例:
- 盗み出された認証情報でログインする
- メールの「From」アドレスを偽造する
- パスワードを盗み取るために偽のログインページを設置する
- 信頼されたサーバーになりすます
一般的な緩和策は、強力な認証、多要素認証、相互TLS、デジタル署名です。
改ざん
Tamperingとは、データやコードを無断で変更することです。完全性に違反します。
例:
- 送信前にHTTPリクエストの価格フィールドを書き換える
- 許可なくデータベースのレコードを変更する
- ソフトウェア更新に悪意のあるコードを注入する
- 活動の痕跡を隠すためにログファイルを変更する
緩和策は、入力値の検証、完全性チェック(ハッシュ/HMAC)、コード署名、アクセス制御です。
否認
Repudiationとは、ユーザーが自分の行った操作を否定し、システム側ではそれを証明できない状態です。否認防止に違反します。
例:ユーザーが不正な取引を行った後で「自分はやっていない」と主張したものの、それを証明できるログが残っていない場合です。
緩和策:
- 包括的で改ざん耐性のある監査ログ
- 重要な操作へのデジタル署名
- 安全なタイムスタンプと、追記のみ可能なストアへのログ転送
情報漏えい
Information disclosureとは、本来見るべきでない人にデータを公開してしまうことです。機密性に違反します。
例:
- 暗号化されていないデータベースから顧客レコードが漏えいする
- 詳細すぎるエラーメッセージによってスタックトレースやクエリが明らかになる
- 設定ミスによりクラウドバケットが一般公開される
- 機密データが平文のHTTPで送信される
緩和策は、通信中と保存時の暗号化、最小権限アクセス、慎重なエラーハンドリングです。
サービス拒否
Denial of service (DoS)とは、正規のユーザーがシステムを利用できない状態にすることです。可用性に違反します。
例:
- 大量のトラフィックを送り付けてサーバーを過負荷にする(DDoS)
- 1つの高コストなクエリでデータベースのリソースを使い果たす
- アップロードによってディスク容量をいっぱいにする
- 無限ループやリソースリークを引き起こす
緩和策は、レート制限、クォータ、入力サイズの上限、オートスケーリング、上流でのDDoS対策です。
権限昇格
Elevation of privilegeとは、認可された範囲を超える権限を得ることです。認可に違反します。
例:
- 一般ユーザーが管理者用エンドポイントにアクセスする
- バグを悪用してrootとしてコードを実行する
- 細工したパラメータによって自分のロールを変更する
- コンテナから脱出してホストに到達する
緩和策は、すべてのリクエストで認可を適用すること、最小権限の原則、サンドボックス化です。
要素ごとのSTRIDEの適用
STRIDEの力は、系統的に適用することで発揮されます。設計図の各要素について、6つのカテゴリをすべて順に確認し、その脅威が当てはまるかを問いかけてください。
Element: Login API endpoint
S - Can someone spoof a valid user? -> brute force, stolen creds
T - Can request data be tampered? -> modify role in payload
R - Can a user deny logging in? -> need audit logs
I - Can it leak info? -> error reveals if user exists
D - Can it be flooded? -> no rate limit = DoS
E - Can a user gain admin? -> missing authZ check要素単位のSTRIDEとインタラクション単位のSTRIDE
STRIDEを適用する方法は2つあります。
- STRIDE-per-element — 各コンポーネント(プロセス、データストア、外部エンティティ)を、関連する脅威の種類ごとに分析します
- STRIDE-per-interaction — 要素間の各データフローを分析します
すべての脅威がすべての要素に当てはまるわけではありません。たとえば、データストアが「なりすます」ことはほとんどありませんが、改ざんや情報漏えいの主な標的になります。各要素に関連する脅威だけを使ってください。
脅威から緩和策へ
STRIDEは緩和戦略と自然に組み合わせられます。特定した脅威ごとに、次の4つの対応のいずれかを選びます。
- Mitigate — リスクを低減するための対策を追加します
- Eliminate — 原因となる機能やコンポーネントを削除します
- Transfer — リスクを移転します(保険、第三者への委託など)
- Accept — 低いリスクを認識したうえで受け入れます
どの脅威も黙って無視されないよう、すべての脅威について判断を記録してください。
理解度チェック
STRIDEのカテゴリを理解できているか確認しましょう。
まとめ
STRIDEフレームワークを学びました。
- Spoofing(認証)、Tampering(完全性)、Repudiation(否認防止)
- Information disclosure(機密性)、Denial of service(可用性)、Elevation of privilege(認可)
- 各カテゴリは、特定のセキュリティ特性に違反します
- 要素単位またはインタラクション単位で、STRIDEを体系的に適用します
- 各脅威について、緩和、排除、移転、受容のいずれかを判断します
次は、STRIDEを適用すべき場所を把握するために、データフローと信頼境界をマッピングします。
よくある質問
「STRIDEフレームワーク」レッスンは無料ですか?
はい。「STRIDEフレームワーク」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「STRIDEフレームワーク」で何を学びますか?
なりすまし、改ざん、否認などを学びます。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「STRIDEフレームワーク」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 脅威モデリングが重要な理由
- STRIDEフレームワーク
- データフロー図と信頼境界
- 攻撃ツリーとリスクの優先順位付け