脅威モデリング手法「STRIDE」とは?

STRIDEとは、以下の6つのカテゴリを使用して脅威分析をする手法です。

STRIDEの要素と脅威例

カテゴリ 脅威例
**S**poofing (なりすまし) 他ユーザー情報へ不正にアクセスされる
**T**ampering (改ざん) システム内の情報を不正に変更される
**R**epudiation (否認) 操作ログが残らない状態で不正な操作を行われる
**I**nformation Disclosure (情報漏洩) 非公開情報の情報を取得される
**D**enial of Service (サービス拒否) ユーザーがシステムにアクセスできなくなる
**E**levation of Privilege (特権昇格) 管理者権限を不正に取得される

対象システムに関するDFD (データフローダイアグラム) を作成し、STRIDEを適用して評価することで、対象のシステムに想定される脅威を洗い出すことが可能です。

  • DFDの例

STRIDEで脅威分析するための代表的な手法として、「STRIDE-per-Element」や「STRIDE-per-Intraction」があります。

「STRIDE-per-Element」は、「DFDの全要素に対してSTRIDEで分析する」「一般的に以下のようなチャートを利用して、各要素でチェックされている脅威を洗い出す」といった特徴を持っています。また、「STRIDE-per-Intraction」は、「DFDの信頼境界に対してSTRIDEで分析する」手法です。

  • STRIDE-per-Elementによる分析の例

  • STRIDE-per-Intractionによる分析の例

DFDに対してこのような分析をしていくことにより、対象システムに存在する脅威の洗い出しができます。

攻撃手法を列挙していく手法「Attack Tree」の利用例

脅威の洗い出しができたら、各脅威に対してどのような攻撃手法があるのかを列挙していくことで、セキュリティ対策をする上で実施すべき事項がより具体的に見えてきます。

攻撃手法を列挙していくための手法である「Attack Tree」の利用例を以下に示します。

  • Attack Treeの例示

STRIDEで洗い出した脅威をトリガする攻撃手法をツリー構造で詳細化していくことで、脅威を引き起こす攻撃手法の洗い出しができます。そして、どのような攻撃手法に対して対策をする必要があるのかを導き出すことができます。

Attack Treeを作成する際には、各脅威に対して潜在的な攻撃手法を把握している必要があります。Kubernetesを活用したシステムでは、Kubernetesならではの攻撃手法も含めて把握しておかなければいけません。

Kubernetesの脅威マトリクスとは?

Kubernetesの攻撃手法を把握する上では、Microsoftより公開されているMITRE ATT&CK フレームワーク をベースとしたKubernetesの脅威マトリクス)のようなナレッジベースが参考になります。

Kubernetesの脅威マトリクスでは、10のカテゴリからなる攻撃戦術に対して、どのような攻撃手法が存在するのかが整理されています。そのため、Kubernetesに対する既知の攻撃戦術や攻撃手法の確認に活用可能です。

  • Kubernetesの脅威マトリクス

マトリクスを見ると、おおよそ攻撃戦術の流れは従来のLinuxやWindowsを対象とした場合と類似しています。しかし、攻撃手法はKubernetesならではのものも多く、対策においてもこれら手法を踏まえて検討する必要があります。

以上のような手順で脅威モデリングを行っていくと、対象システムにどのような脅威が存在しており、どのような攻撃に対して対策を講じていく必要があるのかを導き出すことが可能です。

冒頭にも述べた通り、セキュリティ対策を進める上では、システムに対してどんな脅威や攻撃手法が存在しているかを把握しておく必要があります。特にKubernetesのようにアーキテクチャが複雑化しやすいシステムにおいては、脅威モデリングを実施し、対策すべきポイントを明確化しておくことは重要でしょう。

コンテナセキュリティ対策の全体像

システムに対する潜在的な脅威や攻撃手法の分析ができたら、各脅威や攻撃手法に応じた対策を実施していく必要があります。

Kubernetesを活用したシステムは、クラスタやノード、ノード上で動作するPod、それらをホストするクラウド基盤等、さまざまなコンポーネントから構成されています。また、ネットワークの制御や認証において、Kubernetes特有のしくみも存在します。

そのため、一口にセキュリティ対策といっても、各コンポーネントの役割やKubernetesならではのしくみを踏まえて実施する必要があります。

以降の連載では、以下の流れでKubernetesの堅牢化する上で重要となる要素毎に分けて、セキュリティガイダンス[「Kubernetes Hardening Guidance」を共通リファレンスとして解説していきます。

  • 連載の流れ

  1. クラウドセキュリティの概要
  2. コンテナのおさらい
  3. Kubernetesクラスタの保護
  4. ネットワークセキュリティ
  5. 認証認可
  6. アプリケーション(Pod)レベルのセキュリティ
  7. 監視・監査
  8. Kubernetes クラスタの運用管理

まとめ

今回は、コンテナセキュリティ対策の全体像と脅威モデリングについて説明しました。次回は、クラウド上で動かすKubernetesのセキュリティを学ぶ上で知っておきたい「1. クラウドセキュリティの概要」について解説します。

著者プロフィール


NRI セキュアテクノロジーズ  田中 悠一郎(たなか ゆういちろう)


2016年に NRIセキュアテクノロジーズ株式会社に入社。セキュリティ診断やペネトレーションテスト に従事 。セキュリティ診断ではWebアプリケーションやスマートフォンアプリ、ブロックチェーンを活用したシステムの診断を担当する他、コンテナオーケストレーションシステムを対象としたコンテナ診断サービスの立ち上げに従事。

Microsoft 阿佐 志保 (あさ しほ)


金融系シンクタンク で 都市銀行情報系基盤システム統廃合、証券バックオフィスシステム共通 ミドルウエア 開発などの金融案件を経験。出産で離職後 Linux やオープンソースソフトウエアなどを独学で勉強し Docker/Kubernetesに関する書籍を執筆。現在は日本マイクロソフト株式会社 で お客様向けに Azureの 技術支援 を行っています 。