Slide 1

Slide 1 text

チームビルディング 
 「脅威モデリング」ワークショップ 
 
 
 2024/07/24
 
 1

Slide 2

Slide 2 text

2 事前準備 ● リンク先 ○ 演習用Cacooシート ○ 演習用スプレッドシート ■ 配属先チームのシートをご利用ください ● Slack使用方針 ○ チーム毎にチャンネル内にスレッドを立てる ■ チーム内での共有は通知数を減らすためにスレ内へ書き込み ○ 全体での共有はチャンネルへ書き込み

Slide 3

Slide 3 text

3 脅威モデリングとは 脅威モデリングとは

Slide 4

Slide 4 text

4 脅威モデリングとは システムに存在する潜在的な脅威と対応策を考え、セキュリティレベルを 向上させる取り組みのこと

Slide 5

Slide 5 text

5 脅威モデリングを実施するメリット① システムの文脈を理解し、優れたセキュリティ戦略を立てられる

Slide 6

Slide 6 text

6 脅威モデリングを実施するメリット② 安全なサービスを提供するために必要な定義をチームで共有できる

Slide 7

Slide 7 text

7 脅威モデリングを実施する理由③ 開発段階の早期な脅威モデリングの実施は安全なシステム構築に高い効果 を発揮

Slide 8

Slide 8 text

8 メルカリもやってるってよ

Slide 9

Slide 9 text

9 今回チームビルディングで採用した理由 今回チームビルディングで採用した理由

Slide 10

Slide 10 text

10 今回チームビルディングで採用した理由

Slide 11

Slide 11 text

11 今回チームビルディングで採用した理由

Slide 12

Slide 12 text

12 今回チームビルディングで採用した理由

Slide 13

Slide 13 text

13 今回チームビルディングで採用した理由 実施する機会の少ない脅威モデリングを チームビルディングを通じて体験しよう

Slide 14

Slide 14 text

14 システムの紹介 今回の脅威モデリングの 対象となるシステムについて

Slide 15

Slide 15 text

15 システム全体像

Slide 16

Slide 16 text

16 システム全体像

Slide 17

Slide 17 text

17 脅威モデリングの実施対象

Slide 18

Slide 18 text

18 演習の流れ 演習の流れ

Slide 19

Slide 19 text

19 演習の流れ 全体で4時間ほど ● 演習1(40分):車両登録機能のデータフロー図作成 ● 演習2(10分):メンバーの役割を決める ● 演習3(20分):STRIDEチャートを作成する ● 演習4(1時間):脅威を特定する ● 演習5(1時間):対応策を考える ● 演習6(1時間):感想(時間次第でスキップ)

Slide 20

Slide 20 text

20 演習1:車両登録機能のデータフロー図作成 車両登録機能のデータフロー図作成

Slide 21

Slide 21 text

21 演習1:車両登録機能のデータフロー図作成 データフロー図を作成し、脅威を洗い出しやすくします

Slide 22

Slide 22 text

22 演習1:車両登録機能のデータフロー図作成 ● データフロー図とは ○ システム要素間のデータ交換をモデル化したもの ● データフロー図作成の目的 ○ システム内に存在する資産(データ)とその保管場所の特定 ○ データフローの可視化によるシステム理解の向上

Slide 23

Slide 23 text

23 演習1:車両登録機能のデータフロー図作成 車両登録機能では以下のAPIが提供されている

Slide 24

Slide 24 text

24 演習1:車両登録機能のデータフロー図作成 1. Cacooでデータフロー図を作成してください ○ 「チームX:演習1 データフロー図作成」シートに作成して下さい ■ 紙とペンも用意しているので下書きにご利用ください ○ 「演習1 データフロー図要素」に各要素のサンプル素材と説明文を用 意しているので必要であればコピペ等で活用してください ○ 参考:DFD(データフロー図)ってなに?DFDの概要と書き方をあわ せて紹介 2. 必要に応じてスプレッドシート「演習共通:仮定リスト」にてシステム の曖昧な要素となっている箇所を仮定として書き起こして下さい(後述)

Slide 25

Slide 25 text

25 演習1:ヒント1 データフロー図を作成する目的を意識することが大切です。形に囚われす ぎないでください ● 作成の目的(再掲) ○ システム内に存在する資産(データ)とその保管場所の特定 ○ データフローの可視化によるシステム理解の向上

Slide 26

Slide 26 text

26 演習1:ヒント2 ● 今回の脅威モデリングでは架空システムを利用している為、演習中にシ ステムに関する情報が不足していることによる混乱が発生するはずで す。 ● 混乱が生じた場合はエクセルシート「演習共通:仮定リスト」を用意し ているので、何かしら仮定を立て、チームで共有してください ○ 仮定を立てることで、無関係な考慮事項、範囲外の脅威、または制御 できない緩和策について考える時間を節約できます ● あくまで仮定なのでいつでも変更することが可能です

Slide 27

Slide 27 text

27 演習1:車両登録機能のデータフロー図作成 演習中(40分)

Slide 28

Slide 28 text

28 演習2:メンバーの役割(ペルソナ)を決める メンバーの役割 (ペルソナ)を決める

Slide 29

Slide 29 text

29 演習2:メンバーの役割(ペルソナ)を決める 1. スプレッドシート「演習2:メンバーの役割を決める」にて役割を確認 し、各役割を担当するメンバーを決めてください

Slide 30

Slide 30 text

30 演習2:ヒント1 ● 今回の演習においてはあまり役割に固執しすぎないでください ○ 役割決めは脅威モデリングの質の向上が目的です ■ 脅威モデリングにも慣れていないメンバーがほとんどだと思いま すが、役割に固執しすぎると脅威モデリングの質を下げてしまう 恐れがある ○ 役割が5つしかないので、6人チームの箇所は1役割2人の箇所が発生 します ■ 難しそうなところは二人担当などがいいかも

Slide 31

Slide 31 text

31 演習2:メンバーの役割(ペルソナ)を決める 演習中(10分)

Slide 32

Slide 32 text

32 演習3:STRIDEチャートを作成する STRIDEチャートを作成する

Slide 33

Slide 33 text

33 演習3:STRIDEチャートを作成する 情報システムなどに損害を与えかねないセキュリティ上の要因を「脅威」と呼 ぶが、その脅威を6つのカテゴリーに分類したものをSTRIDEと言う

Slide 34

Slide 34 text

34 演習3:STRIDEチャートを作成する データフロー図作成の際に載せていた各要素の説明(再掲)

Slide 35

Slide 35 text

35 演習3:STRIDEチャートを作成する 1. スプレッドシート「演習3:STRIDEチャート」にて各システム要素にお ける脅威の標的または被害者となりうる項目にチェックをつけてくださ い ○ 注意:脅威の発生源ではないことに注意 ■ 例えばユーザーはなりすましの攻撃対象になり得るので○ ■ 一方で、改ざんの対象にはなり得ないので× 2. 演習後回答を表示します(2ページ後)

Slide 36

Slide 36 text

36 演習3:STRIDEチャートを作成する 演習中(10分)

Slide 37

Slide 37 text

37 STRIDEチャート解答

Slide 38

Slide 38 text

38 演習4:車両登録機能に対する脅威を特定する 車両登録機能に対する脅威を特定する

Slide 39

Slide 39 text

39 演習4:車両登録機能に対する脅威を特定する 1. スプレッドシート「演習4:脅威の洗い出し」にて今回の機能に存在し うる脅威を書き出してください ○ 文章の書き方が分からない場合は次スライドを参考にして下さい 2. 必要に応じてスプレッドシート「演習共通:仮定リスト」にてチームの 認識をそろえて下さい(後述)

Slide 40

Slide 40 text

40 演習4:車両登録機能に対する脅威を特定する 1. 脅威説明をどうやって書いたらいいか分からない場合は、下の画像を参 照にしてください 2. 作文に必要な要素を把握することで構造化された説明を書くことが可能 です

Slide 41

Slide 41 text

41 演習4:車両登録機能に対する脅威を特定する 車両登録機能では以下のAPIが提供されている(再掲)

Slide 42

Slide 42 text

42 演習4:ヒント1 ● 脅威モデリングの演習に架空システムを利用している為、演習中に「こ れはどう考えたらいいの?」とシステムの背景情報が不足していること による混乱が度々発生します。 ● 混乱が生じた場合は演習1と同様にエクセルシート「演習:仮定リス ト」を用意しているので、何かしら仮定を立て、チームで共有してくだ さい ○ 仮定を立てることで、無関係な考慮事項、範囲外の脅威、または制御 できない緩和策について考える時間を節約できます ● あくまで仮定なのでいつでも変更することが可能です

Slide 43

Slide 43 text

43 演習4:ヒント2 可能な限り脅威を洗い出してください ● この段階では、API Gatewayでの認証要求などの緩和策が実装されてい る前提で考えないでください(仮定リストにもサンプル記載しています) ○ 緩和策がある前提で考えると脅威を見逃す可能性が高まるからです

Slide 44

Slide 44 text

44 演習4:ヒント3 可能な限り脅威を分解してください ● 例えば「S3バケットから意図せず情報が漏洩し、ユーザーの車両登録書 類の機密性が低下する」という脅威は以下に分解できます ○ ユーザーとS3エンドポイント間のトラフィックを検査するアクセス 権を持つ脅威アクターは転送中のデータを表示できるため、ユーザー の車両登録書類の機密性が低下する ○ 内部関係者がS3に保存されているデータにアクセスできるため、 ユーザーの車両登録書類の機密性が低下する

Slide 45

Slide 45 text

45 演習4:ヒント4(オプション) 今回のチームビルディングでは、優先度まで厳密に考えなくても大丈夫です、 脅威の洗い出しを優先してください ● 各脅威が顧客とそのデータに及ぼすリスクの程度に基づいて、高、中、 低に優先順位付けします ○ リスクは、脅威が発生する可能性に、イベントのコストである影響を 掛け合わせたものです ○ AWSでは、顧客中心のアプローチを採用し、顧客の信頼を損なう可 能性が最も高い脅威を優先します ○ 参考:OWASP Risk Rating Methodology

Slide 46

Slide 46 text

46 演習4:車両登録機能に対する脅威を特定する 演習中(1時間)

Slide 47

Slide 47 text

47 演習5:脅威への対応策を考える 脅威への対応策を考える (1時間)

Slide 48

Slide 48 text

48 演習5:脅威への対応策を考える 対応策は基本的に以下4つに分類されます

Slide 49

Slide 49 text

49 演習5:脅威への対応策を考える 「軽減する」は以下のように更に分類化できます

Slide 50

Slide 50 text

50 演習5:脅威への対応策を考える 1. スプレッドシート「演習5:対応策の洗い出し」にて演習4で洗い出した 脅威への対応策を書き出してください 2. 必要に応じてスプレッドシート「演習共通:仮定リスト」にてチームの 認識をそろえて下さい(説明省略)

Slide 51

Slide 51 text

51 演習5:ヒント1 ● 演習4で洗い出した脅威の対応策を考えます ○ 対応策は以下リンク等が参考になります ■ AWS Well-Architected Framework セキュリティの柱 ■ AWS セキュリティドキュメント ■ OWASP Top 10:2021 ○ 1つの脅威に対して複数の対応策が必要な場合があります

Slide 52

Slide 52 text

52 演習5:ヒント2(オプション) 時間内での実施は難しいので省略、対応策の洗い出しを優先してください ● 対応策の効果やコストを考えましょう ● コストや効果を加味して対策候補から実際に適用するものを選ぶ ● 対応策が選ばなれなかった理由も記載する ● 脅威によってリスクを「受け入れる」場合もある(何故受け入れたの か理由を記載)

Slide 53

Slide 53 text

53 演習5:脅威への対応策を考える 演習中(1時間)

Slide 54

Slide 54 text

54 演習6:振り返り 演習6:振り返り

Slide 55

Slide 55 text

55 演習6:振り返り ● チーム内で脅威モデリングの感想を共有しましょう(10分) ● 代表者を決めチームの感想等を発表してください(2~3分) ○ いけてるな、議論が白熱したなみたいな脅威と対応策を2~3個程度発 表 ○ その他脅威モデリングを実施したことへの気づきとかなんでも

Slide 56

Slide 56 text

56 参考 ● Threat modeling for builders ○ AWSの公式脅威モデリングワークショップ ● メルカリの脅威モデリングプロセス ○ メルカリの記事 ● 前倒しで対処 -セキュリティを考慮したソフトウェア開発アプローチ 「シフトレフト」とは- ○ シフトレフトとかDevSecOpsについての概念についてわかりやすい 記事