Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
チームビルディング「脅威モデリング」ワークショップ
Search
こーへい
March 31, 2025
Technology
0
130
チームビルディング「脅威モデリング」ワークショップ
こーへい
March 31, 2025
Tweet
Share
More Decks by こーへい
See All by こーへい
BLEAでAWSアカウントのセキュリティレベルを向上させよう
koheiyoshikawa
0
270
コンテナセキュリティ入門ウェビナー ~ECS on Fargate構成に必要なセキュリティ対策を知ろう~
koheiyoshikawa
0
1.4k
〜AWS初心者向け〜 ベストプラクティスから学ぶ 「AWSセキュリティの高め方」
koheiyoshikawa
1
1.5k
AWSアカウントセキュリティ(セキュアアカウント) 入門セミナー ~面倒な設定はクラスメソッドにお任せ!~
koheiyoshikawa
0
4.1k
ECSの仕組み解説~ECSをチャーハンセットに例えてみた~ #devio2023
koheiyoshikawa
0
3.7k
Other Decks in Technology
See All in Technology
パスキーでのログインを 実装してみよう!
hibiki_cube
0
590
View Transition API
shirakaba
1
930
20250328_OpenAI製DeepResearchは既に一種のAGIだと思う話
doradora09
PRO
0
150
AI・LLM事業部のSREとタスクの自動運転
shinyorke
PRO
0
300
Amazon EKS Auto ModeでKubernetesの運用をシンプルにする
sshota0809
0
110
PHPでアクターモデルを活用したSagaパターンの実践法 / php-saga-pattern-with-actor-model
ytake
0
1k
お問い合わせ対応の改善取り組みとその進め方
masartz
1
340
[CATS]Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
130
OPENLOGI Company Profile
hr01
0
61k
技術好きなエンジニアが _リーダーへの進化_ によって得たものと失ったもの / The Gains and Losses of a Tech-Enthusiast Engineer’s “Evolution into Leadership”
kaminashi
0
200
BCMathを高速化した一部始終をC言語でガチ目に解説する / BCMath performance improvement explanation
sakitakamachi
2
1.2k
Javaの新しめの機能を知ったかぶれるようになる話 #kanjava
irof
3
4.9k
Featured
See All Featured
Building Adaptive Systems
keathley
41
2.5k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
How STYLIGHT went responsive
nonsquared
99
5.4k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.4k
KATA
mclloyd
29
14k
A better future with KSS
kneath
238
17k
A designer walks into a library…
pauljervisheath
205
24k
Documentation Writing (for coders)
carmenintech
69
4.7k
It's Worth the Effort
3n
184
28k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
135
33k
Transcript
チームビルディング 「脅威モデリング」ワークショップ 2024/07/24 1
2 事前準備 • リンク先 ◦ 演習用Cacooシート ◦ 演習用スプレッドシート ▪ 配属先チームのシートをご利用ください
• Slack使用方針 ◦ チーム毎にチャンネル内にスレッドを立てる ▪ チーム内での共有は通知数を減らすためにスレ内へ書き込み ◦ 全体での共有はチャンネルへ書き込み
3 脅威モデリングとは 脅威モデリングとは
4 脅威モデリングとは システムに存在する潜在的な脅威と対応策を考え、セキュリティレベルを 向上させる取り組みのこと
5 脅威モデリングを実施するメリット① システムの文脈を理解し、優れたセキュリティ戦略を立てられる
6 脅威モデリングを実施するメリット② 安全なサービスを提供するために必要な定義をチームで共有できる
7 脅威モデリングを実施する理由③ 開発段階の早期な脅威モデリングの実施は安全なシステム構築に高い効果 を発揮
8 メルカリもやってるってよ
9 今回チームビルディングで採用した理由 今回チームビルディングで採用した理由
10 今回チームビルディングで採用した理由
11 今回チームビルディングで採用した理由
12 今回チームビルディングで採用した理由
13 今回チームビルディングで採用した理由 実施する機会の少ない脅威モデリングを チームビルディングを通じて体験しよう
14 システムの紹介 今回の脅威モデリングの 対象となるシステムについて
15 システム全体像
16 システム全体像
17 脅威モデリングの実施対象
18 演習の流れ 演習の流れ
19 演習の流れ 全体で4時間ほど • 演習1(40分):車両登録機能のデータフロー図作成 • 演習2(10分):メンバーの役割を決める • 演習3(20分):STRIDEチャートを作成する •
演習4(1時間):脅威を特定する • 演習5(1時間):対応策を考える • 演習6(1時間):感想(時間次第でスキップ)
20 演習1:車両登録機能のデータフロー図作成 車両登録機能のデータフロー図作成
21 演習1:車両登録機能のデータフロー図作成 データフロー図を作成し、脅威を洗い出しやすくします
22 演習1:車両登録機能のデータフロー図作成 • データフロー図とは ◦ システム要素間のデータ交換をモデル化したもの • データフロー図作成の目的 ◦ システム内に存在する資産(データ)とその保管場所の特定
◦ データフローの可視化によるシステム理解の向上
23 演習1:車両登録機能のデータフロー図作成 車両登録機能では以下のAPIが提供されている
24 演習1:車両登録機能のデータフロー図作成 1. Cacooでデータフロー図を作成してください ◦ 「チームX:演習1 データフロー図作成」シートに作成して下さい ▪ 紙とペンも用意しているので下書きにご利用ください ◦
「演習1 データフロー図要素」に各要素のサンプル素材と説明文を用 意しているので必要であればコピペ等で活用してください ◦ 参考:DFD(データフロー図)ってなに?DFDの概要と書き方をあわ せて紹介 2. 必要に応じてスプレッドシート「演習共通:仮定リスト」にてシステム の曖昧な要素となっている箇所を仮定として書き起こして下さい(後述)
25 演習1:ヒント1 データフロー図を作成する目的を意識することが大切です。形に囚われす ぎないでください • 作成の目的(再掲) ◦ システム内に存在する資産(データ)とその保管場所の特定 ◦ データフローの可視化によるシステム理解の向上
26 演習1:ヒント2 • 今回の脅威モデリングでは架空システムを利用している為、演習中にシ ステムに関する情報が不足していることによる混乱が発生するはずで す。 • 混乱が生じた場合はエクセルシート「演習共通:仮定リスト」を用意し ているので、何かしら仮定を立て、チームで共有してください ◦
仮定を立てることで、無関係な考慮事項、範囲外の脅威、または制御 できない緩和策について考える時間を節約できます • あくまで仮定なのでいつでも変更することが可能です
27 演習1:車両登録機能のデータフロー図作成 演習中(40分)
28 演習2:メンバーの役割(ペルソナ)を決める メンバーの役割 (ペルソナ)を決める
29 演習2:メンバーの役割(ペルソナ)を決める 1. スプレッドシート「演習2:メンバーの役割を決める」にて役割を確認 し、各役割を担当するメンバーを決めてください
30 演習2:ヒント1 • 今回の演習においてはあまり役割に固執しすぎないでください ◦ 役割決めは脅威モデリングの質の向上が目的です ▪ 脅威モデリングにも慣れていないメンバーがほとんどだと思いま すが、役割に固執しすぎると脅威モデリングの質を下げてしまう 恐れがある
◦ 役割が5つしかないので、6人チームの箇所は1役割2人の箇所が発生 します ▪ 難しそうなところは二人担当などがいいかも
31 演習2:メンバーの役割(ペルソナ)を決める 演習中(10分)
32 演習3:STRIDEチャートを作成する STRIDEチャートを作成する
33 演習3:STRIDEチャートを作成する 情報システムなどに損害を与えかねないセキュリティ上の要因を「脅威」と呼 ぶが、その脅威を6つのカテゴリーに分類したものをSTRIDEと言う
34 演習3:STRIDEチャートを作成する データフロー図作成の際に載せていた各要素の説明(再掲)
35 演習3:STRIDEチャートを作成する 1. スプレッドシート「演習3:STRIDEチャート」にて各システム要素にお ける脅威の標的または被害者となりうる項目にチェックをつけてくださ い ◦ 注意:脅威の発生源ではないことに注意 ▪ 例えばユーザーはなりすましの攻撃対象になり得るので◦
▪ 一方で、改ざんの対象にはなり得ないので× 2. 演習後回答を表示します(2ページ後)
36 演習3:STRIDEチャートを作成する 演習中(10分)
37 STRIDEチャート解答
38 演習4:車両登録機能に対する脅威を特定する 車両登録機能に対する脅威を特定する
39 演習4:車両登録機能に対する脅威を特定する 1. スプレッドシート「演習4:脅威の洗い出し」にて今回の機能に存在し うる脅威を書き出してください ◦ 文章の書き方が分からない場合は次スライドを参考にして下さい 2. 必要に応じてスプレッドシート「演習共通:仮定リスト」にてチームの 認識をそろえて下さい(後述)
40 演習4:車両登録機能に対する脅威を特定する 1. 脅威説明をどうやって書いたらいいか分からない場合は、下の画像を参 照にしてください 2. 作文に必要な要素を把握することで構造化された説明を書くことが可能 です
41 演習4:車両登録機能に対する脅威を特定する 車両登録機能では以下のAPIが提供されている(再掲)
42 演習4:ヒント1 • 脅威モデリングの演習に架空システムを利用している為、演習中に「こ れはどう考えたらいいの?」とシステムの背景情報が不足していること による混乱が度々発生します。 • 混乱が生じた場合は演習1と同様にエクセルシート「演習:仮定リス ト」を用意しているので、何かしら仮定を立て、チームで共有してくだ さい
◦ 仮定を立てることで、無関係な考慮事項、範囲外の脅威、または制御 できない緩和策について考える時間を節約できます • あくまで仮定なのでいつでも変更することが可能です
43 演習4:ヒント2 可能な限り脅威を洗い出してください • この段階では、API Gatewayでの認証要求などの緩和策が実装されてい る前提で考えないでください(仮定リストにもサンプル記載しています) ◦ 緩和策がある前提で考えると脅威を見逃す可能性が高まるからです
44 演習4:ヒント3 可能な限り脅威を分解してください • 例えば「S3バケットから意図せず情報が漏洩し、ユーザーの車両登録書 類の機密性が低下する」という脅威は以下に分解できます ◦ ユーザーとS3エンドポイント間のトラフィックを検査するアクセス 権を持つ脅威アクターは転送中のデータを表示できるため、ユーザー の車両登録書類の機密性が低下する
◦ 内部関係者がS3に保存されているデータにアクセスできるため、 ユーザーの車両登録書類の機密性が低下する
45 演習4:ヒント4(オプション) 今回のチームビルディングでは、優先度まで厳密に考えなくても大丈夫です、 脅威の洗い出しを優先してください • 各脅威が顧客とそのデータに及ぼすリスクの程度に基づいて、高、中、 低に優先順位付けします ◦ リスクは、脅威が発生する可能性に、イベントのコストである影響を 掛け合わせたものです
◦ AWSでは、顧客中心のアプローチを採用し、顧客の信頼を損なう可 能性が最も高い脅威を優先します ◦ 参考:OWASP Risk Rating Methodology
46 演習4:車両登録機能に対する脅威を特定する 演習中(1時間)
47 演習5:脅威への対応策を考える 脅威への対応策を考える (1時間)
48 演習5:脅威への対応策を考える 対応策は基本的に以下4つに分類されます
49 演習5:脅威への対応策を考える 「軽減する」は以下のように更に分類化できます
50 演習5:脅威への対応策を考える 1. スプレッドシート「演習5:対応策の洗い出し」にて演習4で洗い出した 脅威への対応策を書き出してください 2. 必要に応じてスプレッドシート「演習共通:仮定リスト」にてチームの 認識をそろえて下さい(説明省略)
51 演習5:ヒント1 • 演習4で洗い出した脅威の対応策を考えます ◦ 対応策は以下リンク等が参考になります ▪ AWS Well-Architected Framework
セキュリティの柱 ▪ AWS セキュリティドキュメント ▪ OWASP Top 10:2021 ◦ 1つの脅威に対して複数の対応策が必要な場合があります
52 演習5:ヒント2(オプション) 時間内での実施は難しいので省略、対応策の洗い出しを優先してください • 対応策の効果やコストを考えましょう • コストや効果を加味して対策候補から実際に適用するものを選ぶ • 対応策が選ばなれなかった理由も記載する •
脅威によってリスクを「受け入れる」場合もある(何故受け入れたの か理由を記載)
53 演習5:脅威への対応策を考える 演習中(1時間)
54 演習6:振り返り 演習6:振り返り
55 演習6:振り返り • チーム内で脅威モデリングの感想を共有しましょう(10分) • 代表者を決めチームの感想等を発表してください(2~3分) ◦ いけてるな、議論が白熱したなみたいな脅威と対応策を2~3個程度発 表 ◦
その他脅威モデリングを実施したことへの気づきとかなんでも
56 参考 • Threat modeling for builders ◦ AWSの公式脅威モデリングワークショップ •
メルカリの脅威モデリングプロセス ◦ メルカリの記事 • 前倒しで対処 -セキュリティを考慮したソフトウェア開発アプローチ 「シフトレフト」とは- ◦ シフトレフトとかDevSecOpsについての概念についてわかりやすい 記事