脅威モデリングについて
OWASP SAMMの中で、脅威モデリング(Threat modeling)という言葉がある。
ビジネス機能:Design
セキュリティ対策:Threat Assessmentの中で、
StreamとしてThreat modelingが定義されている。
その内容をGoogle翻訳で翻訳すると、
「脅威モデリングを使用して、アーキテクチャ設計の欠陥を特定して管理していますか?」
- リスクの高いアプリケーションの脅威モデリングを実行します
- STRIDEなどの単純な脅威チェックリストを使用します
- 後で使用するために脅威モデルの結果を永続化します
以下、それぞれの項目について確認をする。
リスクの高いアプリケーションの脅威モデリングを実行します
脅威モデリングはどのようにするのか?
OWASPでしっかりと定義されています。が、なかなかイメージしづらい。
以下2つのサイトで、概要が理解できた。
上記からの抜粋
- 脅威モデリングとは
新しいシステムや既存のシステムについて継続的なディスカッションを促進するためのプロセスです。
セキュリティを全員の責任にすることへの第一歩です。
- 脅威モデリングのステップ
図を作成する。何を構築するのか?
脅威を特定する。何が脅威となる可能性があるか?
低減する。脅威から防御するために何を行うか?
バリデーションを行う。以前の各ステップに対して措置を講じたか?
STRIDEなどの単純な脅威チェックリストを使用します
STRIDEは以下のカテゴリの頭文字をとっている。
カテゴリ | 説明 | |
S | なりすまし Spoofing |
他のユーザーの認証情報 (ユーザー名、パスワードなど) に不正にアクセスし、それを使用する行為などです |
T | 改ざん Tampering |
悪意のあるデータの変更などです。 例としては、データベースに保持されているような永続的なデータに対する許可されていない変更や、インターネットなどのオープン ネットワーク経由で 2 台のコンピューター間を流れるデータの変更などがあります |
R | 否認 Repudiation |
反証できる関係者がいない状況でアクションの実行を否定するユーザーに関連するものです。たとえば、禁止されている操作を追跡できる機能がないシステムでユーザーが不正な操作を行うような場合です。 否認防止とは、否認の脅威に対抗するシステムの機能のことです。 たとえば、商品を購入するユーザーは、受け取り時に署名をする必要があります。 販売者は、署名された受領書をユーザーが荷物を受け取ったことの証拠として使用することができます |
I | 情報漏えい Information Disclosure |
情報へのアクセスが想定されていない個人への情報の暴露などです。たとえば、アクセスが許可されていないファイルをユーザーが読み取ることができたり、侵入者が2 台のコンピューター間で送信されるデータを読み取ることができたりする場合です |
D | サービス拒否 Denial of Service |
サービス拒否 (DoS) 攻撃では、有効なユーザーへのサービスが拒否されます。たとえば、Web サーバーを一時的に使用できなくする行為です。 システムの可用性と信頼性を向上させるために、特定の種類の DoS 脅威からシステムを保護する必要があります |
E | 特権の昇格 Elevation of Privilege |
特権のないユーザーが特権的なアクセスを取得すると、システム全体を侵害したり破壊したりできるようになります。 特権の昇格の脅威には、攻撃者が効果的にすべてのシステム防御を破り、信頼されているシステム自体の一部となる、本当に危険な状況が含まれます |
脅威 - Microsoft Threat Modeling Tool - Azure | Microsoft Docs から引用
脅威分析のアプローチは、以下の2通りに分類される。
- チェックリスト・ベースのアプローチ
- 非チェックリスト・ベースのアプローチ
前者で用いられるのが、STRIDE
後者では、ブレーンストーミングなどによることになる。
チェックリストを用いた方が漏れなく、属人的になりづらい点がある。
STRIDEの変化形には以下の2つがある。
- STRIDE-per-Element
- STRIDE-per-Interaction
後で使用するために脅威モデルの結果を永続化します
脅威モデリングのツールとして、無料で使えるものがある。
- MicrosoftのThreat Modeling Tool
- OWASPのThreat Dragon
成果物が目的ではないですが、ツールで自動化できる部分は頼りたいところ。
クラウドの脅威モデリングについては、Cloud Security Alliance (CSA)が公開している「Cloud Thread Modeling」がある。
https://www.cloudsecurityalliance.jp/site/?p=20247
とのこと。
その中で、付録2: クラウド脅威モデリングカード、というのが気になります。
まとめ
組織における様々な立場の人たちが、セキュリティを全員の責任とするための共通認識を作成するのに、脅威モデリングは有効と思える。そして、それが通常のプロセスに組み込まれて、継続されることが重要。