脅威モデリングとは、システムに対して経路や登場人物を特定し、どういう脅威があるかな??を探索するもの。見つかった脅威は対策案を考えて塞いでいけばよい。
具体の手法や考えた方の話はセキュリティ系の製品を取り扱っている各社が紹介しているのでそちらを見てほしい。
脅威モデリングをやることによって、自分たちのやっているシステムへの解像度が上がり、セキュリティ意識も高まる。
やるにあたっては、理想的にはいろんな人が参加し、まとまった時間をかけてあーだこーだ話し合うことが、オーナーシップのためにもよいと思う。たとえば、でっかいホワイトボードに、システム構成図を書き、登場人物を追記していく。それから付箋を用意して、こういう脅威やリスクがありそうだ!を書いてペタペタ。といったやり方がいいんじゃないだろうか。
とは思うけれど、現実的にはなかなか難しい。時間をかけてやって得られるものは?対策やるのは別工数かかるじゃん?スケジュールがパツってして…、etc…
それじゃあ、ひとりでやればいいんじゃないか?
いまはAI、コーディングエージェントが必須になってきているくらい便利で、もちろん、脅威モデリングやりたいんだけど、なんて話題を出せばやってくれるし、一緒にやって理解を深めていくこともできる。気になったそのタイミングで自発的にやっていこう。
一方で、1人でやった場合には、チームとして、脅威モデリングを通したプロダクトやサービス上のオーナーシップの醸成や穴への理解がうまれにくくなってしまう。
先日とある場所でやったときには、チームでの同期した時間が取れないために、アンケートを取るようなやり方で非同期で行った。
まず私が脅威モデリング自体についてAIと対話しながら理解を深めつつ、実際に自分たちの運用しているサービスに対して、どういうことを考えるといいかの下書きを作成した。それを各自がコピペして項目を埋めていってもらった。いわゆるAI slopのような無駄な長文を書き込むことは禁止し、長くても2-3文で各ポイントについての考察を書いてもらう。それから対応の優先度を考えてもらった。これをサマリしたら様々な視点が揃った1つの大きなファイルができたので、あとは細かい整理をして成果物は完成。あとは影響の大きいところや優先度が高いところを中心に「ここまではタスクを作って優先的にやっていく」「あとは許容する」という線引きを決めて合意するところまで。
この件ではオーナーシップやシステム理解の醸成がどれくらい進んだか定量的には出していないけれど、別の機能を作るときに「これってここまで考えますか?xxユーザだけしかできないのでいいかと思いますが」「この間のあれで許容していないのでやりましょう(許容したのでやらないにしましょう)」といった会話もたまにはあって、多少の影響は出ているな〜という気持ち。
実工数的にも2-3時間あつまってワイワイ!ほど時間かかっていないような気がする。土台だけ準備して、各自が各自のやりたいようにやって最後に集約。このやり方は結構よかったかも。半年〜1年くらいに1回くらい、棚卸しする気持ちで実施するとよさそうだ。