脅威モデリング
Last updated
Last updated
脅威モデリングは攻撃者 (脅威アクター) がシステムを危殆化する可能性のある方法を理解し、脅威を定量化するのに役立つ演習であり、次に潜在的なリスクを阻止するために適切な緩和策を講じます。一般的に、脅威モデリングは設計フェーズの一部として製造システムに導入する前に行う演習ですが、セキュリティテストの初期段階に使用することもできます。通常、脅威モデリングには以下のアクティビティがあります。
システムのすべての資産を特定し、アーキテクチャ概要を作成します
システム (またはデバイス) を分解します
脅威を特定します
それぞれのシナリオでのすべての脅威を文書化します
各脅威を評価システムを使用して発生確率と影響度で評価します
脅威の列挙と識別に役立つフレームワークに STRIDE があります。ニーモニックを以下の表に示します。
脅威モデリングで使用される一般的なリスク評価システムには DREAD 、および CVSS がありますが、ほかにもいくつか利用可能です。 ニーモニックである DREAD は以下に記述のある各カテゴリに従い 1 から 3 のスケールでスコア付けされ、最終スコアはその平均となります。1 が低リスク、2 が中リスク、3 が高リスクです。多くの場合、スコアのスケールは組織にニーズに合わせて 0 から 10 などに変更されます。
脅威モデルは以下の四つの質問に答えるべきです。
私たちは何を作っているのか?
データフロー図 (DFD) を使用して、コンポーネントのモデリングと、それらがローカルおよび外部サービスとどのように連携するかを支援します。
DFD は資産に接続する各プロセス、ユーザー、エンティティ、データストア、およびプロトコルを示すべきです。
Microsoft Threat Modeling Tool 2016, OWASP Threat Dragon, または https://draw.io/ や https://www.lucidchart.com などのオンラインダイアグラムソフトウェアなどを使用します。
何が悪いのか?
STRIDE を活用して、脅威を特定および列挙します。
発生する可能性がある問題について何を行うか?
DREAD はリスクのスコア付けと優先順位付けに役立ちます。リスクが高ければ高いほど、その脅威への対処または軽減すべき優先順位が高くなります。
私たちの分析はどの程度うまくいったか?
遡及的な活動を実施し、全体的な品質、進捗状況、および将来の計画を確認します。
脅威モデリングは 早期に、かつ可能な限り頻繁に 行われるべきです。脅威モデルの所有者はそのソフトウェアチームの管理下にあることが最善であり、新しい機能が計画されたときに更新される 生きた文書 を考慮すべきです。
"Threat Modeling: Designing for Security" は素晴らしい本であり、権威ある参考文献です。
脅威
侵害される特性
脅威の定義
例
S
なりすまし (Spoofing)
真正性 (Authenticity)
自分ではない誰かまたは何かのふりをすること
他のユーザーになりすます
T
改竄 (Tampering)
完全性 (Integrity)
データまたはコードを改変すること
ログファイルを削除し、アクティビティを隠す
R
否認 (Repudiation)
否認防止 (Non-reputability)
アクションを実行していないと主張すること
運用中に DROP TABLE を実行したことはない
I
情報漏洩 (Information disclosure)
機密性 (Confidentiality)
閲覧を許可されていない人に情報を公開すること
ソースコードにハードコードされたユーザー名およびパスワード
D
サービス拒否 (Denial of Service)
可用性 (Availability)
ユーザーへのサービスを拒否、制限、または低下させること
リクエストでサーバー側インフラストラクチャを使い切る
E
特権昇格 (Elevation of Privilege)
認可 (Authorization)
適切な認可なしに資格を獲得する
管理者権限を獲得する
名前
説明
高
中
低
D
損害 (Damage)
攻撃でどの程度悪化するか?
すべてのセキュリティコントロールを覆し、エコシステム全体を引き受ける完全な信頼を得ることができる。
機密情報を漏洩する可能性がある。
軽微な情報を漏洩する可能性がある。
R
再現可能性 (Reproducibility)
攻撃を再現することはどの程度容易か?
攻撃は常に再現可能である。
攻撃は時間制限のあるウィンドウ内または特定の条件内でのみ再現可能である。
脆弱性に関する特定の情報がある場合でも、攻撃を再現することは非常に困難である。
E
悪用可能性 (Exploitability)
攻撃を実行するにはどの程度の労力が必要か?
初心者の攻撃者がエクスプロイトを実行できる可能性がある。
熟練した攻撃者が繰り返し攻撃できる可能性がある。
より深い知識を持つ熟練した攻撃者が攻撃を実行できる可能性がある。
A
影響を受けるユーザー (Affected users)
攻撃が成功することにより影響を受ける人またはユーザーはどのくらいいるか?
すべてのユーザー、デフォルト設定、すべてのデバイス。
一部のユーザー、一部のデバイス、およびカスタム設定に影響がある。
マイナーな機能を介してごく一部のユーザーやデバイスに影響がある。
D
発見可能性 (Discoverability)
この脅威を発見することはどの程度容易か?
攻撃の説明が出版物で容易に見つけることができる。
あまり使用されない機能に影響があり、悪意のある使用方法を発見するには攻撃者が非常に独創的である必要がある。
マイナーであり、攻撃者がそのバグを悪用する方法を発見する可能性はほとんどない。