STRIDEモデル
掲載:2022年12月20日
用語集
STRIDEモデルとは、情報システムなどのセキュリティ上のリスクを把握するために行う脅威分析に役立つ分析手法です。STRIDEモデルを活用して、システムに損害を与えかねない脅威を洗い出すことができます。本稿では、STRIDEモデルの概要やSTRIDEモデルを用いた脅威の洗い出し方法について解説します。
脅威分析とSTRIDEモデル
ここでの「脅威」とは、情報システムなどに損害を与えかねないセキュリティ上の要因を指します。具体的には、なりすましや情報の改ざん/漏洩などが想定されます。こうした脅威を把握し、対策を検討するのが脅威分析で、脅威分析には複数のモデルが存在します。情報システムやアプリケーションを設計する際には、設計段階でこうしたモデルを活用した脅威分析を行い、セキュリティ要件を明確にすることが極めて重要になります。
脅威分析には以下の3つのステップがあります。
- ①システム構成の把握
- ②脅威の洗い出し
- ③対策の検討
このうち、②の「脅威の洗い出し」のために考案されたのがSTRIDEモデルで、1999年頃にマイクロソフト社のエンジニアによって提唱されたのが起源とされています。「STRIDE」とは「なりすまし (Spoofing)」、「改ざん (Tampering) 」、「否認(Repudiation) 」 、「漏洩 (Information Disclosure) 」 、「DoS (Denial of Service) 」、「権限昇格 (Elevation of Privilege)」の頭文字で、この6つのカテゴリーに沿って脅威を洗い出します。
STRIDE | 脅威例 | 脅威がもたらす影響 | 攻撃例 |
---|---|---|---|
なりすまし (Spoofing) |
権利がないユーザーによる保護資産の利用 | 管理者アカウントの不正利用によるマルウェア感染 | 管理者権限の昇格によるマルウェアの拡散と情報窃取 |
改ざん (Tampering) |
悪意あるユーザーによるデータやプログラムの変更 |
|
HTMLインジェクション、 SQLインジェクション |
否認 (Repudiation) |
ログ消去によりユーザーによる操作の隠匿 | 証拠隠滅 | CSRF攻撃 |
漏洩 (Information Disclosure) |
内部利用のみを想定したデータ資産の漏洩 | 重要情報などの情報漏洩 |
|
DoS (Denial of Service) |
サーバー・ネットワークへの過負荷 | Webサイトの利用不可 |
|
権限昇格 (Elevation of Privilege) |
管理者権限の奪取 |
|
|
出典:経済産業省「機器のサイバーセキュリティ確保のためのセキュリティ検証の手引き」をもとに弊社にて作成
STRIDEモデルを用いた脅威分析の流れ
STRIDEモデルを用いた脅威分析の流れについて、前章で示した①~③のステップを順に見ていきましょう。
①システム構成の把握
STRIDEモデルで脅威分析を行うには、システム構成の把握が必須となります。そこでシステム全体の構成を把握するために、まずDFD(Data Flow Diagram、データフローダイヤグラム)を作成します。DFDは対象機器やその外部システムで扱うデータの流れを明確にし、データ処理を可視化したものです。
②脅威の洗い出し
システム構成が把握できたら、STRIDEモデルを用いて脅威の洗い出しを行います。STRIDEモデルにも以下の2つの手法があり、組織の環境に合わせて適宜選択する必要があります。
手法①:STRIDE-per-Element
「STRIDE-per-Element」はDFDの各構成要素から脅威を洗い出す方法です。まず、システムの構成についてDFDを作成し、外部エンティティやプロセス、データフローなどのElement(要素)を特定します。その後、以下のようなチャートを用いて、全ての要素に対してSTRIDEに当てはまるかどうかを判断し、各要素について脅威を洗い出していきます。
構成要素 | 脅威 | |||||
---|---|---|---|---|---|---|
S | T | R | I | D | E | |
外部エンティティ | ✓ | - | ✓ | - | - | - |
プロセス | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
データフロー | - | ✓ | - | ✓ | ✓ | - |
データベース | - | ✓ | ✓ | ✓ | ✓ | - |
手法②:STRIDE-per-Interaction
「STRIDE-per-Interaction」はDFDの中から信頼境界(※)上の脅威を洗い出す観点で実施する方法です。信頼境界を考慮して図1のようなDFDを作成したのち、信頼境界と交差するデータフローを特定し、それぞれについてSTRIDEに当てはまるかどうかを判断します(表3)。
※信頼境界:管理している組織やインターフェースが変わるポイント
【図1:STRIDE-per-InteractionにおけるDFD】
構成要素 | 相互影響 | S | T | R | I | D | E |
---|---|---|---|---|---|---|---|
Webサーバ | Webサーバからユーザーデータへのアクセス | ✓ | ✓ | - | - | ✓ | - |
ユーザーからWebサーバへのデータアクセス | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Webサーバから管理者へのデータアクセス | ✓ | - | ✓ | - | - | - | |
管理者からWebサーバへのデータアクセス | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
③対策の検討
②で洗い出した脅威を基に、具体的にどのような攻撃が行われうるか想定し、対策を検討します。ここでは、「ユーザーによるプロセスのなりすまし」という脅威を例に考えてみましょう(表4)。まず、攻撃のためにどのようなステップがあるかを定義した上で、各ステップでの攻撃手法を想定します。そして、それに対する具体的な対策を検討していきます。
脅威内容 | 攻撃ステップ | 想定される攻撃手法 | 対策例 |
---|---|---|---|
ユーザーによるプロセスのなりすまし | ①IDとパスワードの窃取 |
|
パスワード入力回数制限 |
②Webサーバへのアクセス | フィッシング攻撃 | メールや疑わしいURLのフィルタリング | |
③不正ログイン | ソーシャルエンジニアリング |
|
|
|
|
|
出典:筆者作成
まとめ
前述の通り、システム設計段階での脅威分析は非常に重要です。システム運用開始後にセキュリティに関する問題が発見された場合、その対応コストは設計段階に対応する場合と比べ数倍にも膨れ上がるとされる上、運用開始後の改修はシステムの停止などユーザーへの影響も大きくなるためです。こうした事態を防ぐためにも、STRIDEモデルを用いて脅威を洗い出し、具体的な攻撃手法や対策を検討することは有用と言えるでしょう。