Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DMMにおける300アカウント67チームのAWSセキュリティを「開発者」に監視してもらうまでの道のり

Wataru Nishiyama
November 04, 2021
900

 DMMにおける300アカウント67チームのAWSセキュリティを「開発者」に監視してもらうまでの道のり

Wataru Nishiyama

November 04, 2021
Tweet

Transcript

  1. © DMM.com
    CONFIDENTIAL
    DMMにおける300アカウント
    67チームのAWSセキュリティを
    「開発者」に監視してもらうまでの
    道のり
    合同会社DMM.com

    セキュリティ部

    CloudSecチーム 西山渉


    View Slide

  2. © DMM.com
    自己紹介
    - 合同会社DMM.com
    - セキュリティ部 CloudSec チーム
    - クラウドセキュリティの推進
    - WAF 導入支援
    - PCIDSS セキュリティ監視
    2

    View Slide

  3. © DMM.com
    自己紹介
    3
    - 合同会社DMM.com
    - セキュリティ部 CloudSec チーム
    - クラウドセキュリティの推進
    - WAF 導入支援
    - PCIDSS セキュリティ監視
    - 元プラットフォーム開発部バックエンドエンジニア
    →伏線

    View Slide

  4. © DMM.com
    AWS セキュリティとは
    4

    View Slide

  5. © DMM.com
    AWS セキュリティとは
    5
    アプリケーション
    AWS
    サービス
    脆弱性診断、WAF
    AWS セキュリティ

    View Slide

  6. © DMM.com
    AWS セキュリティとは
    6
    アプリケーション
    AWS
    サービス
    脆弱性診断、WAF
    AWS セキュリティ
    AWS セキュリティの範囲
    - 「AWS 上のサービスへの攻撃」に対するセキュリティ
    - 「AWS アカウントへの攻撃」に対するセキュリティ

    View Slide

  7. © DMM.com
    DMMでも実際に事件発生
    7
    - S3 バケットが Write 権限でパブリック公開となっていた
    →悪意ある JS が置かれ、フィッシングサイトへ誘導

    View Slide

  8. © DMM.com
    ということでDMMも
    AWSセキュリティ
    やろうとしました
    8

    View Slide

  9. © DMM.com
    目的
    9
    - ヤバイ設定を素早く見つける

    View Slide

  10. © DMM.com
    目的・実現方法
    10
    - ヤバイ設定を素早く見つける
    →セキュリティガードレールを敷く

    View Slide

  11. © DMM.com
    セキュリティガードレール?
    11
    - セキュリティ品質の担保のため、クラウド領域を制限
    または、検知できるようにすること

    View Slide

  12. © DMM.com
    セキュリティガードレール?
    12
    今回は検知
    - セキュリティ品質の担保のため、クラウド領域を制限
    または、検知できるようにすること

    View Slide

  13. © DMM.com
    セキュリティガードレール
    実装の前に DMM の状況
    13

    View Slide

  14. © DMM.com
    対象 ( 見込み )
    14
    - チーム数 : 50 以上
    - AWS アカウント : 300 以上
    - リージョン : 16 ( 2020年当時 )

    View Slide

  15. © DMM.com
    当時の DMM の状況
    15
    - AWS アカウントの払い出しは別部門
    - CloudTrail は Organizations にて集中管理済み
    →ログ集約基盤が存在し、ログ保管済み

    View Slide

  16. © DMM.com
    技術選定1
    16

    View Slide

  17. © DMM.com
    当初の方針
    17
    - 50 以上あるチームへの説明は時間がかかるため、
    管理者だけでセキュリティ監視しよう
    - セキュリティ設定も開発者へ負担をかけずに
    管理者だけで完結しよう

    View Slide

  18. © DMM.com
    監視モデル
    18
    管理者 開発者
    AWS

    View Slide

  19. © DMM.com
    監視モデル
    19
    管理者 開発者
    AWS

    View Slide

  20. © DMM.com
    監視モデル
    20
    管理者 開発者
    AWS

    View Slide

  21. © DMM.com
    AWS Config
    21
    - AWS リソースの設定変更履歴を保存する

    View Slide

  22. © DMM.com
    AWS Security Hub
    22
    - 設定不備を検出する etc...

    View Slide

  23. © DMM.com
    Amazon GuardDuty
    23
    - セキュリティ侵害を検知する

    View Slide

  24. © DMM.com
    AWS Organizations
    24
    - メンバーアカウントをグルーピングする etc...

    View Slide

  25. © DMM.com
    サービスマネージド型 CloudFormation StackSets
    25
    - メンバーアカウントへセキュリティ設定を適用する

    View Slide

  26. © DMM.com
    案1 : 監視体制
    26

    View Slide

  27. © DMM.com
    案1 : 監視体制
    27
    Landing Zone

    View Slide

  28. © DMM.com
    承認貰いに行きました
    28

    View Slide

  29. © DMM.com
    部長に承認もらう
    29
    ぼく「AWSセキュリティ設定すぐできそうです。お金とチェックは
    セキュリティ部で、パッとやっていいですか」

    View Slide

  30. © DMM.com
    部長に承認もらえない
    30
    ぼく「AWSセキュリティ設定すぐできそうです。お金とチェックは
    セキュリティ部で、パッとやっていいですか」
    部長「ダメ。各チームのお金とリソースでチェックしてもらうよう、
    各チームに承認をもらってください」

    View Slide

  31. © DMM.com
    部長に承認もらえない
    31
    ぼく「AWSセキュリティ設定すぐできそうです。お金とチェックは
    セキュリティ部で、パッとやっていいですか」
    部長「ダメ。各チームのお金とリソースでチェックしてもらうよう、
    各チームに承認をもらってください」
    ぼく「なるほどですね〜 ( ひええええええええ ) 」

    View Slide

  32. © DMM.com
    DMM Tech Vision
    32

    View Slide

  33. © DMM.com
    DMM が目指す開発像
    33

    View Slide

  34. © DMM.com
    セキュリティも開発者が面倒をみる
    34

    View Slide

  35. © DMM.com
    技術選定2
    35

    View Slide

  36. © DMM.com
    監視モデル
    36
    AWS 開発者
    管理者

    View Slide

  37. © DMM.com
    監視モデル改
    37
    管理者
    開発者
    AWS
    主役

    View Slide

  38. © DMM.com
    監視モデル改
    38
    管理者
    開発者
    AWS
    Push型

    View Slide

  39. © DMM.com
    AWS Config Rules
    39
    - 設定不備を検知する
    → Security Hub の代わり

    View Slide

  40. © DMM.com
    AWS Config Rules を使った理由
    40
    - CloudFormation でルールの指定ができる
    →開発者にチェックしてもらうため、過検知は少なく

    View Slide

  41. © DMM.com
    AWS Config Rules の選定
    41

    View Slide

  42. © DMM.com
    Slack
    42
    - DMM のチャットコミュニケーションツール
    →チームごとにアラート通知用のチャンネル作成

    View Slide

  43. © DMM.com
    Slack へ飛ばすために
    43
    - Amazon EventBridge
    - Amazon SNS
    - AWS Chatbot

    View Slide

  44. © DMM.com
    OU 構築
    44
    - チームごとに OU を作成

    View Slide

  45. © DMM.com
    セキュリティ設定方法
    45

    View Slide

  46. © DMM.com
    案2 : 監視体制
    46

    View Slide

  47. © DMM.com
    これでいけるか・・・?
    47

    View Slide

  48. © DMM.com
    知り合いのチームに
    テストさせてもらう
    48

    View Slide

  49. © DMM.com
    伏線回収
    49

    View Slide

  50. © DMM.com
    最初の営業
    50

    View Slide

  51. © DMM.com
    いざ実践
    51

    View Slide

  52. © DMM.com
    おかげさまで、問題点を把握
    52
    - チェック終わったアラートがわからない ( 開発者・管理者とも
    に )
    - 埋もれて忘れてしまう
    → Slack だけでアラート管理は難しい

    View Slide

  53. © DMM.com
    アラート管理のための
    技術選定 ( AWS外 )
    53

    View Slide

  54. © DMM.com
    方針思い出し
    54
    - 開発者にセキュリティ運用をやってもらう
    →開発者がスムーズに運用できるようなツールを利用

    View Slide

  55. © DMM.com
    JIRA
    55
    - DMM で採用されているチケット管理システム

    View Slide

  56. © DMM.com
    JIRA -選定理由-
    56
    - DMM で採用されているチケット管理システム
    - 入社時にアカウント発行
    - 他部署へのタスクの依頼に利用
    → DMM の人は全員使える。。。はず

    View Slide

  57. © DMM.com
    JIRA -全てのリージョンのアラートを管理-
    57

    View Slide

  58. © DMM.com
    JIRA -アラートをカンバン方式で管理-
    58

    View Slide

  59. © DMM.com
    JIRA -チケット内には優先度や期限を記載-
    59

    View Slide

  60. © DMM.com
    Slackbot
    60
    - JIRA チケットの起票
    - Slack のスレッドへ JIRA チケット URL を通知
    - アラートの重要度に応じたメンション発行 etc...

    View Slide

  61. © DMM.com
    Slackbot
    61
    DMM のインフラ部門がシステムアラートの管理を JIRA で
    やっているのにインスパイア!!
    - JIRA チケットの起票
    - Slack のスレッドへ JIRA チケット URL を通知
    - アラートの重要度に応じたメンション発行 etc...

    View Slide

  62. © DMM.com
    slackbot ( 作った )
    62

    View Slide

  63. © DMM.com
    実際の例
    63

    View Slide

  64. © DMM.com
    完成
    楽しい技術検証はここまで
    64

    View Slide

  65. © DMM.com
    ここからは DMM のチームを
    巡り、承認をもらう
    65

    View Slide

  66. © DMM.com
    長い旅が始まりました
    DMM ジャーニー
    66

    View Slide

  67. © DMM.com
    承認をもらう旅
    67
    - AWS セキュリティチェックを開発者にやってもらうため「お金」
    と「運用リソース」を出してもらうよう、
    承認いただく

    View Slide

  68. © DMM.com
    営業資料
    68

    View Slide

  69. © DMM.com
    営業順番
    69
    - 重要な情報を扱っているチームから

    View Slide

  70. © DMM.com
    営業
    70

    View Slide

  71. © DMM.com
    コロナ禍における
    他部署への協力取り付け
    71

    View Slide

  72. © DMM.com
    リモートで営業
    72
    - Slack で DM を送る
    - 「初めましてこんにちは!」
    - 「AWS セキュリティについて相談したいです!」
    - 「ちょっとお時間よろしいでしょうか?」

    View Slide

  73. © DMM.com
    営業の振り返り
    73
    - チームでやっていたから完走できた
    - 逆にコロナという環境だからこそ、営業は捗った
    - あらゆるツテとコネを活用した

    View Slide

  74. © DMM.com
    結果
    74

    View Slide

  75. © DMM.com
    完了宣言
    承認もらえたチーム : 80
    → Slack チャンネルの通知先が 67
    75

    View Slide

  76. © DMM.com
    完了宣言
    76
    セキュリティ設定完了したアカウント : 約300
    承認もらえたチーム : 80
    → Slack チャンネルの通知先が 67

    View Slide

  77. © DMM.com
    完了宣言
    77
    棚卸しにより削除されたアカウント : 約50
    セキュリティ設定完了したアカウント : 約300
    承認もらえたチーム : 80
    → Slack チャンネルの通知先が 67

    View Slide

  78. © DMM.com
    監視体制
    78

    View Slide

  79. © DMM.com
    監視体制
    79
    Slack セクション機能で
    グルーピング

    View Slide

  80. © DMM.com
    アラート数の推移(2021/9末時点)
    80

    View Slide

  81. © DMM.com
    アラート状況(2021/9末時点)
    81
    チェックした箇所 : 約4500
    チェックが完了した箇所 : 約3200

    View Slide

  82. © DMM.com
    チケット状況
    82

    View Slide

  83. © DMM.com
    特にヤバイやつ
    83
    DB パブリック公開:20
    S3 書き込み権限でパブリック公開:6

    View Slide

  84. © DMM.com
    実際に起きてた事件
    84

    View Slide

  85. © DMM.com
    実際に起きてた事件
    85
    3件

    View Slide

  86. © DMM.com
    DMM CSIRT と協力して対処 ( 画像は別件 )
    86

    View Slide

  87. © DMM.com
    議論が発生している
    箇所
    87

    View Slide

  88. © DMM.com
    80, 443 port パブリック公開の検知
    88
    Q. Web 会社なんだから 80, 443 port 公開するの当たり前
    じゃん!想定内ですよ!
    A. お手数おかけしてます。DEV/STG 環境や Jenkins など
    のパブリック公開検知のため、80, 443 port の
    パブリック検知を実施しています。

    View Slide

  89. © DMM.com
    セキュリティ設定するタイミング
    89
    Q. サービスリリースしてからでいいんじゃないの?
    A. クラウドセキュリティの場合、クラウドを利用し始めた
    タイミングからリスクが発生します。そのため、AWS
    アカウントが払い出されたタイミングでセキュリティ
    設定を有効化します。

    View Slide

  90. © DMM.com
    一年運用 ( 管理者 )
    90

    View Slide

  91. © DMM.com
    DMM の AWS セキュリティ標準策定
    91

    View Slide

  92. © DMM.com
    セキュリティプランを用意
    92

    View Slide

  93. © DMM.com
    CloudFormation
    StackSets
    93
    Organizations の OU 設計

    View Slide

  94. © DMM.com
    構築
    94
    - AWS CLI で実行

    View Slide

  95. © DMM.com
    構築
    95
    - 1 チームで 6 個の StackSet を作成

    View Slide

  96. © DMM.com
    構築
    96
    - 1 チームで 6 個の StackSet を作成
    →80 OU あるためデプロイ先が 480

    View Slide

  97. © DMM.com
    構築
    97
    - Administrator アカウントに作成できる StackSet 数の
    上限緩和申請 ( 100 → 700 )

    View Slide

  98. © DMM.com
    構築
    98
    - アカウント数 × 17 リージョン分の Stack Instance

    View Slide

  99. © DMM.com
    運用
    99
    - 難しい

    View Slide

  100. © DMM.com
    運用
    100
    - 難しい
    - 自動デプロイ

    View Slide

  101. © DMM.com
    運用
    101
    - 自動デプロイを有効化すると OU に AWS アカウントを
    所属させたタイミングで CloudFormation が実行される

    View Slide

  102. © DMM.com
    運用
    102
    - 自動デプロイはリージョンの実行順を制御できない
    →自動デプロイを考慮した CloudFormation テンプレートを作
    成すべきだった

    View Slide

  103. © DMM.com
    ユースケース
    103
    - AWS アカウントを Root へ移動 ( アカウント停止前 )
    - AWS アカウントを Root へ移動 ( アカウント停止後 )
    - AWS アカウントを別の既存 OU へ移動
    - AWS アカウントを別の新規 OU へ移動
    - AWS アカウントを別の新規 OU へ移動 ( 現在の OU 配下 )
    - etc...

    View Slide

  104. © DMM.com
    一年運用して ( 開発者 )
    104

    View Slide

  105. © DMM.com
    チケット ( アラート ) 状況
    105
    ToDo

    レビュー中

    完了
    のフローです

    View Slide

  106. © DMM.com
    開発者・管理者が一緒にがんばってる
    106
    - 開発者・管理者が一緒に AWS セキュリティ運用
    がんばってます!

    View Slide

  107. © DMM.com
    開発者がセキュリティアラートをチェック!
    107

    View Slide

  108. © DMM.com
    まとめ
    108

    View Slide

  109. © DMM.com
    まとめ
    109
    - DMM の AWS アカウントにガードレールを敷けた
    →設定不備・セキュリティ侵害を発見できた

    View Slide

  110. © DMM.com
    まとめ
    110
    - DMM の AWS アカウントにガードレールを敷けた
    →設定不備・セキュリティ侵害を発見できた
    - 開発者がセキュリティアラートを自発的にチェック
    → AWS レイヤーのセキュリティ自給率が高まった

    View Slide

  111. © DMM.com
    今後の DMM
    111
    DMM のセキュリティ部は開発者と共に
    セキュリティを推進していきます!

    View Slide

  112. © DMM.com
    おしまい
    112

    View Slide