Safie Engineers' Blog!

Safieのエンジニアが書くブログです

セキュリティを「自分ごと」にする仕掛けとは?セーフィー流の「アジャイル脅威モデリング」研修の秘密

はじめに

こんにちは!セーフィーでサイバーセキュリティを担当している金原です。

以前のブログでは「セーフィーのサイバーセキュリティ戦略の作り方」や「セーフィーのセキュリティチームづくり」といったテーマで、私たちの取り組みを紹介させていただきました。

今回は、そのサイバーセキュリティ戦略の打ち手の一つである「セキュリティはみんなの仕事」を実現するためのトレーニングの実験として、アジャイル脅威モデリングをベースにした「新卒エンジニア向けのセキュリティ研修」を実施しましたので、その様子をご紹介します。

この記事が、エンジニアとしてセキュリティスキルを高めたい方、社内でのセキュリティ研修を企画されている方、そして脅威モデリングに興味がある方にとって、少しでも参考になれば嬉しいです。

なお、本記事は講師の私目線の記事です。受講生の新卒エンジニア恩智さんの受講生目線の記事も公開されてますので、合わせてご確認ください!

大切にしたいのは「学習定着率」

皆さんは、研修で学んだ内容がどれくらい身についているか、意識したことはありますか? ラーニングピラミッドによると、ただ講義を聞くだけの研修では、学習内容の定着率はわずか5%だと言われています。せっかくの研修が、それではもったいないですよね。

(出典)キャリア教育ラボ - 平均学習定着率が向上する「ラーニングピラミッド」とは??https://career-ed-lab.mynavi.jp/career-column/707/(2025年7月25日アクセス)

そこで今回の研修では、学習定着率がより高いとされる「グループ討議 (50%)」と「自ら体験する (75%)」を活動の中心に据え、学んだ知識がしっかりと身につくように設計しました。

コンセプトは「アジャイル脅威モデリング」

今回の研修のコンセプトは「アジャイル脅威モデリング」です。

「なぜセキュリティ研修でアジャイル?」と思われるかもしれません。
その理由は、アジャイル開発が多くのエンジニアにとって学びたいテーマであることに加え、その価値観や原則が、脅威モデリングを効果的に実践するための考え方と非常に親和性が高いからです。例えば、タイムボックス・プランニング・ふりかえりのようなアジャイルのプラクティスを活用することで、対話を中心とした脅威モデリングを、楽しみながら実践できると考えました。

では、その「脅威モデリング」とは一体何なのでしょうか。

脅威モデリングは、開発するシステムにどのようなセキュリティ上の脅威(=悪いことが起きる可能性)が潜んでいるかを、設計段階で洗い出すためのリスク分析手法です。「起きたら困ることは何か?」という視点でシステムの弱点を探し、事前に対策を講じることを目的とします。

このように、脅威モデリングは設計段階でセキュリティリスクを体系的に分析できるため、開発者が学ぶべきプラクティスとして最適です。「NIST SP800-218(Secure Software Development Framework)」や「OWASP SAMM 2.0」のようなフレームワークでも推奨されており 、これからの開発者にとって必須のスキルと言えるでしょう。

(出典) NIST Special Publication 800-218 https://nvlpubs.nist.gov/nistpubs/specialpublications/nist.sp.800-218.pdf (2025年7月25日アクセス)

OWASP SAMM - About us https://owaspsamm.org/about/ (2025年7月25日アクセス)

研修の全体像

研修は丸一日かけて、以下の3部構成で行いました。

1. アジャイル脅威モデリング(座学) まずはアジャイルと脅威モデリングの基礎をインプット。座学で学んだ知識も、その後のワークですぐに実践することで、定着率の向上を図ります。

2. 脅威モデリングワークショップ(グループ討議) アジャイルのプラクティスを活用しながら脅威モデリングを実践。チームで「何が起きたら困るか」など対話しながらリスクを洗い出します。

3. 脆弱性診断ハンズオン(自ら体験する) 実際に「やられサイト」を攻撃し、脆弱性がどのように悪用されるのかを手を動かして学びます。

アジャイル脅威モデリング(座学)の内容

座学パートでは、アジャイルと脅威モデリングそれぞれの「Why?」と「What?」を解説し、基礎知識を身に着けてもらいました。

脅威モデリングに関しては、実践するための以下の4つの重要な問いを中心に進め方を説明しました。

【問1】私たちは何に取り組んでいるか?
【問2】何が問題になりうるか?
【問3】それに対して何をするのか?
【問4】十分にうまくできたか?

また、最初の問い「私たちは何に取り組んでいるか?」に対する答えを可視化するDFD(データフロー図)の書き方は、後のワークショップの質を高めるために、丁寧にレクチャーしました。

座学の様子。皆さん、真剣に説明を聞いてくれました。

脅威モデリングワークショップ(グループ討議)の進め方

知識は、使ってこそ初めて実践的なスキルとなります。

このワークショップでは、座学で学んだ脅威モデリングの進め方を、アジャイルのプラクティスを使いながらグループで実践します。

その目的は、単に手順をなぞるのではなく、対話を通じてリスクを発見する楽しさや、グループで協力して徐々にセキュリティを高めていくという、アジャイルと脅威モデリング双方の価値観や原則をリアルに体験してもらい、その活動やマインドセットを自分たちのものにしてもらうことにあります。

ワークショップは、以下の流れで進めました。

  • 新卒2〜3名と先輩エンジニア1名でグループを組みます。(全3グループ)
  • 各グループはホワイトボードを2枚使います。
    • ホワイトボードの1枚目は、脅威モデリング(モデル作成→リスクの洗い出し→対策検討)に使います。(【問1】~【問3】に該当)
    • ホワイトボードの2枚目は、ふりかえりの内容を書き出します。(【問4】に該当)
  • DFDはマーカーで書き込み、洗い出したリスクや対策は付箋で貼り付けます。
  • アジャイルのプラクティスを取り入れ、「プランニング(10分) → 脅威モデリング(25分) → ふりかえり(10分)」を1スプリント(45分)のタイムボックスとし、これを3回繰り返します。
  • 脅威モデリングのお題として、分析対象アプリの要件を提示します。

なお、今回のお題は、後の脆弱性診断ハンズオンで用いる「やられアプリ(Bad Todo List)」として、【問1】のDFD作成からスタートしました。

ワークショップの様子。ホワイトボードを囲んで、活発に対話されていました!

ホワイトボード1枚目(DFDとリスク)
ホワイトボード2枚目(ふりかえり)

最後にそれぞれのグループで成果を発表!

脆弱性診断ハンズオン(自ら体験する)の進め方

このハンズオンの目的は、脅威モデリングで特定したリスクを、攻撃者の視点で「追体験」することにあります。 頭で理解しただけの脅威も、自らの手で攻撃を成功させた瞬間に、生々しい実感へと変わります。この体験こそが、セキュリティを自分ごととして捉え、より安全な設計・開発につなげるための最も効果的な学びです。 具体的には以下のツールを使ってハンズオンを実施しました。

やられサイト: Bad Todo List
攻撃ツール: ローカルプロキシ「Burp Suite Community Edition」

また、取り扱う脆弱性は、IPAの「安全なウェブサイトの作り方」で紹介されている主要な脆弱性として、一歩ずつ解説しながら、実際にツールを操作して探してもらいました。

  • SQLインジェクション
  • OSコマンド・インジェクション
  • ディレクトリ・トラバーサル
  • セッション管理の不備
  • クロスサイト・スクリプティング(XSS)
  • クロスサイト・リクエスト・フォージェリ(CSRF)

これらの脆弱性が、脅威モデリングで学んだSTRIDEのどの脅威カテゴリに繋がるのかをマッピングすると以下のようになります。

脅威と脆弱性のマッピング(研修資料から抜粋)

そして、なんと今回のハンズオンには、『体系的に学ぶ安全なWebアプリケーションの作り方』の著者である徳丸浩先生に、特別ゲスト(オブザーバー)としてオンラインでご参加いただきました!徳丸先生、本当にありがとうございました!

徳丸浩先生とハンズオン実施中の様子(画像が小さくて見にくいですが、ちゃんと徳丸先生ご本人がいらっしゃいます!)

フィードバック(効果検証)

研修のゴールである「セキュリティの勘所がわかる」が達成できたかを検証するため、ワークショップで実践したふりかえりの手法「+/Δ(プラス/デルタ)」を使ってアンケートを取りました。

研修全体としては、研修のゴールの達成度は「8.83点(10点満点)」となりました。初回にしては及第点の効果を得ることができたのではないでしょうか。

研修全体の達成度

以下、それぞれのコンテンツのアンケート結果です。

アジャイル脅威モデリング(座学)のアンケート結果

座学でしたが、想定よりも満足度は高く、目的や手法が理解できたというフィードバックもいただけました。座学は学習定着率に難はありますが、知識の共通理解づくりという点ではワークの前に実施すれば効果が高まることが期待できます。

  • プラス(よかったこと)
    • 「アジャイルの手法の詳細の説明、それを踏まえたうえでアジャイルを行う際の脅威モデリングについての解説があったため、話の道筋がわかりやすかった」
    • 「知らない内容がほとんどで、かつ分かりやすく勉強になった」
    • 「脅威モデリングがなぜ必要なのかがわかりましたし、DFDなど知らなかったことも知れた」

脅威モデリングワークショップ(グループ討議)のアンケート結果

満足度は非常に高く、ポジティブな意見が多く寄せられました。ワークショップ中は非常に活気があり、タイムボックスを区切って実施したことでメリハリも生まれたと感じています。

  • プラス(よかったこと)
    • 「座学で学んだ内容をワークでアウトプットすることで、より知識を深められた。各スプリントもあっという間でした!」
    • 「脅威の見つけ方が少しわかったし、単純に楽しかった」
    • 「DFD, リスクマップ, STRIDEのフレームワークを実際に使用して脆弱性について考えることで知識が定着した」

脆弱性診断ハンズオンのアンケート結果

こちらは満足度にばらつきがあり、インプットが多くなりすぎた点が課題として残りました。

  • プラス(よかったこと)
    • 「テストサイトで脆弱性を見つけていくのが楽しかった」
    • 「事前学習である程度は理解していたが、どうやったら攻撃されるのかを実際に学ぶことができた」
  • デルタ(改善したいこと)
    • 「もう少し後半、手を動かしながら学びたかった」
    • 「実際に簡単なアプリを作ってから穴を探す形式の方が、実装と紐づきそうだと思った」

まとめ

今回は新卒エンジニア向けに「セキュリティの勘所を掴む」ことをゴールに研修を設計しました。

具体的には、オンラインでの事前学習(今回の記事では説明していませんが)から始まり、座学でのインプット、ワークショップとハンズオンでのアウトプットへと繋がる構成を取りました。アンケート結果からも、この一連の流れが知識の定着に効果的だったと感じています。

積極的に参加してくれた新卒エンジニアの皆さん、ありがとうございました!今回学んだ勘所を、ぜひ実際の業務で活かしてください。(来年も実施します!)

もし、読者の皆様の組織でも「セキュリティが他人ごとになっている」と感じているなら、この「アジャイル脅威モデリング」のアプローチが、その文化を変えるきっかけになるかもしれません。本記事が皆様のお役に立てれば幸いです。

© Safie Inc.