社内で脅威モデリングワークショップを開催してみた

この記事は、CYBOZU SUMMER BLOG FES '25の記事です。

はじめに

PSIRTのJJです。本記事では、今年の2~3月に社内で実施した脅威モデリングワークショップについて、その取り組みについて紹介します。

背景

現在、サイボウズのPSIRTでは、製品のアプリケーションやクラウド基盤に潜むリスクを把握するために脅威モデリングを行っています。脅威モデリングは、システムに対する潜在的な脅威を明らかにし、実施すべきセキュリティ対策を明確化してセキュリティリスクを軽減するための活動です。PSIRT単独で進めることもありますが、より精度の高い成果を得るには、対象システムに関わる開発・運用メンバーの知見が不可欠です。

そこで、脅威モデリングを円滑に進めるための「必要な情報」と「考え方」を体験的に掴んでもらうことを目的に、有志参加のワークショップを開催しました。私が過去に社外で開催されている脅威モデリングのワークショップに参加したことがあったため、その時の体験をもとに演習の設計を行いました。

tokushima-cyber-security-meetup.org

演習のシナリオ

今回の演習では、社内の従業員が取引先の従業員に対して、自社のファイル共有サービスを用いてファイルを共有するというシナリオを採用しました。シナリオに沿って、STRIDEを用いた脅威の洗い出しを2つの観点で実施します。

  • 観点1: ファイル共有サービスのみを対象として、脅威をSTRIDEを用いて洗い出す。
  • 観点2: ファイル共有フローを含めた全体を対象として、脅威をSTRIDEを用いて洗い出す。

ファイル共有サービスのシステム要件とファイル共有フロー、アーキテクチャ図は以下の通りです。未定義の仕様については各自が合理的に補完することを期待しており、その際に生じる曖昧さ自体も議論の対象としてほしいと考えていました。

システム要件

  • システム構成
    • Webサーバ、アプリサーバ、DB
  • ユーザー種別
    • 一般ユーザー、管理者
  • 一般ユーザーが利用できる機能
    • ファイルのアップロード
    • ファイルの閲覧・ダウンロード
    • 他ユーザーへの閲覧権限・編集権限の付与
    • 共有用URLの発行
  • 管理者が利用できる機能
    • 一般ユーザーが利用できる機能
    • ファイルの削除
    • ユーザー管理(登録、ユーザー情報編集、削除)

ファイル共有フロー

  1. 社内の従業員(管理者)がファイルをファイル共有サービスにアップロードする。
  2. 社内の従業員が取引先の従業員(一般ユーザー)にファイルの閲覧権限を付与する。
  3. メールでファイル共有サービスにログインするための認証情報、ファイルの共有用URLを取引先の従業員に伝える。
  4. 取引先の従業員がファイル共有サービスにログインした後に、共有用URLを開き、ファイルを閲覧・ダウンロードする。

アーキテクチャ図

対象システムのアーキテクチャ図

演習は60分間で行いました。最初に演習について説明し、その後グループに分かれて実際に脅威モデリングを行い、最後に感想戦という流れで進行しました。

  • 全体で演習の進め方と演習用シナリオの説明(10分)
  • ブレイクアウトルームに分かれて各グループで演習(40分)
    • ファイル共有サービスのみを対象に各自で脅威を洗い出す(15分)
    • グループ内で洗い出された脅威について共有・議論(5分)
    • ファイル共有フローも含めた全体を対象に個別で脅威を洗い出す(15分)
    • グループ内で洗い出された脅威について共有・議論(5分)
  • ブレイクアウトルームからメインルームに移動
  • 他のグループの成果物を見に行く(5分)
  • 感想戦(5分)

実際の演習の様子

演習はオンライン(Zoom)上で実施し、ホワイトボードツールとしてMiroを用いながら行いました。4、5人のグループに分かれ、各グループごとにアーキテクチャ図を配置し、その上に付箋で脅威を貼っていく形式をとりました。

演習の事前には、脅威モデリングのフレームワークであるSTRIDEについての勉強会を開催しており、STRIDEの各項目やSTRIDEを脅威モデリングで活用する方法について学びました。当日はその説明スライドの一部をMiro上に展開し、手が完全に止まってしまうことを避けるためにすぐに参照できるようにしておきました。

参加者の方々は所属するチームや背景知識によって視点が異なるため、アプリケーションの脅威に加えて、ミドルウェア、インフラ面での脅威も挙げられていたのが印象的でした。例えば、アプリケーションの認可不備やCSRFといった話に加え、FW設定ミスによるアプリサーバのインターネットへの露出など、層をまたいだ指摘が自然に出てきました。また、ファイル共有フローについては誤った相手にメールを送信して情報漏洩が生じることや、機密情報の含まれるファイルを誤って閲覧権限のない人に共有してしまうなど、人為的ミスについても挙げられているのも特徴的でした。

脅威モデリングの成果物の例

ワークショップを実施した所感

演習の終了後、参加者の方々からは今後の脅威モデリング活動の改善につながるフィードバックをもらいました。いくつか引用します。

  • 脅威モデリングしていると「もし〇〇(例:SQLインジェクションがあったら など)されたら」という想定をつける場合がありますが、それも書き出すので良いでしょうか? 実際のアーキテクチャ図で脅威モデリングをやる場合「それはすでに対策してます」みたいなこともありそうですが、仮に突破された場合に起こる影響が大きい場合は多層防御が必要かの議論につながったりもするので、脅威モデリングの段階では出しつつ、すでに対策されているもの、そうでないものの状態を区別しても良いかもなと思いました。
  • ワークショップ面白かったです! 特に、STRIDEの枠に沿っているので、その枠内で適度に発散しつつ人によって中身の観点が違うのが面白いなと思いました。他の方も書かれていますが、もうちょっと感想戦したかったです。考える→共有までだったので、議論もしてみたら新しい視点とか出るかもと思いました。

今回のワークショップでは60分という限られた時間の中だったため、どうしても脅威の洗い出し→共有までで終わってしまった側面がありました。次回以降にワークショップを開催する際には、脅威を洗い出した後の議論で新しい脅威を考えることや洗い出した脅威の優先順位付け、対策の検討まで行うことでより学びのあるワークショップになるのではないかと思っています。

おわりに

今回は脅威モデリングワークショップの取り組みについて紹介しました。脅威モデリングは関係者の方々とうまく協力できればより良い成果が得られると考えているので、今後もこのような脅威モデリングを社内に浸透させるための取り組みを続けていきたいです。

サイボウズでは一緒に働くメンバーも募集しています。PSIRTでは、キャリア採用、新卒採用ともにオープンしていますので、ぜひご興味あればご応募ください!

cybozu.co.jp

cybozu.co.jp