$30 off During Our Annual Pro Sale. View Details »

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

Wataru Nishiyama
November 04, 2021
650

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

Wataru Nishiyama

November 04, 2021
Tweet

Transcript

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

    西山渉

  2. © DMM.com 自己紹介 - 合同会社DMM.com - セキュリティ部 CloudSec チーム -

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

    - クラウドセキュリティの推進 - WAF 導入支援 - PCIDSS セキュリティ監視 - 元プラットフォーム開発部バックエンドエンジニア →伏線
  4. © DMM.com AWS セキュリティとは 4

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

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

    セキュリティ AWS セキュリティの範囲 - 「AWS 上のサービスへの攻撃」に対するセキュリティ - 「AWS アカウントへの攻撃」に対するセキュリティ
  7. © DMM.com DMMでも実際に事件発生 7 - S3 バケットが Write 権限でパブリック公開となっていた →悪意ある

    JS が置かれ、フィッシングサイトへ誘導
  8. © DMM.com ということでDMMも AWSセキュリティ やろうとしました 8

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

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

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

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

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

  14. © DMM.com 対象 ( 見込み ) 14 - チーム数 :

    50 以上 - AWS アカウント : 300 以上 - リージョン : 16 ( 2020年当時 )
  15. © DMM.com 当時の DMM の状況 15 - AWS アカウントの払い出しは別部門 -

    CloudTrail は Organizations にて集中管理済み →ログ集約基盤が存在し、ログ保管済み
  16. © DMM.com 技術選定1 16

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

    管理者だけで完結しよう
  18. © DMM.com 監視モデル 18 管理者 開発者 AWS

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

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

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

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

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

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

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

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

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

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

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

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

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

    ひええええええええ ) 」
  32. © DMM.com DMM Tech Vision 32

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

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

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

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

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

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

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

    Hub の代わり
  40. © DMM.com AWS Config Rules を使った理由 40 - CloudFormation でルールの指定ができる

    →開発者にチェックしてもらうため、過検知は少なく
  41. © DMM.com AWS Config Rules の選定 41

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

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

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

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

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

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

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

  49. © DMM.com 伏線回収 49

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

  51. © DMM.com いざ実践 51

  52. © DMM.com おかげさまで、問題点を把握 52 - チェック終わったアラートがわからない ( 開発者・管理者とも に )

    - 埋もれて忘れてしまう → Slack だけでアラート管理は難しい
  53. © DMM.com アラート管理のための 技術選定 ( AWS外 ) 53

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

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

  56. © DMM.com JIRA -選定理由- 56 - DMM で採用されているチケット管理システム - 入社時にアカウント発行

    - 他部署へのタスクの依頼に利用 → DMM の人は全員使える。。。はず
  57. © DMM.com JIRA -全てのリージョンのアラートを管理- 57

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

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

  60. © DMM.com Slackbot 60 - JIRA チケットの起票 - Slack のスレッドへ

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

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

  63. © DMM.com 実際の例 63

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

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

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

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

  68. © DMM.com 営業資料 68

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

  70. © DMM.com 営業 70

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

  72. © DMM.com リモートで営業 72 - Slack で DM を送る -

    「初めましてこんにちは!」 - 「AWS セキュリティについて相談したいです!」 - 「ちょっとお時間よろしいでしょうか?」
  73. © DMM.com 営業の振り返り 73 - チームでやっていたから完走できた - 逆にコロナという環境だからこそ、営業は捗った - あらゆるツテとコネを活用した

  74. © DMM.com 結果 74

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

    75
  76. © DMM.com 完了宣言 76 セキュリティ設定完了したアカウント : 約300 承認もらえたチーム : 80

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

    承認もらえたチーム : 80 → Slack チャンネルの通知先が 67
  78. © DMM.com 監視体制 78

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

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

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

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

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

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

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

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

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

  88. © DMM.com 80, 443 port パブリック公開の検知 88 Q. Web 会社なんだから

    80, 443 port 公開するの当たり前 じゃん!想定内ですよ! A. お手数おかけしてます。DEV/STG 環境や Jenkins など のパブリック公開検知のため、80, 443 port の パブリック検知を実施しています。
  89. © DMM.com セキュリティ設定するタイミング 89 Q. サービスリリースしてからでいいんじゃないの? A. クラウドセキュリティの場合、クラウドを利用し始めた タイミングからリスクが発生します。そのため、AWS アカウントが払い出されたタイミングでセキュリティ

    設定を有効化します。
  90. © DMM.com 一年運用 ( 管理者 ) 90

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

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

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

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

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

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

    を作成 →80 OU あるためデプロイ先が 480
  97. © DMM.com 構築 97 - Administrator アカウントに作成できる StackSet 数の 上限緩和申請

    ( 100 → 700 )
  98. © DMM.com 構築 98 - アカウント数 × 17 リージョン分の Stack

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

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

  101. © DMM.com 運用 101 - 自動デプロイを有効化すると OU に AWS アカウントを

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

  103. © DMM.com ユースケース 103 - AWS アカウントを Root へ移動 (

    アカウント停止前 ) - AWS アカウントを Root へ移動 ( アカウント停止後 ) - AWS アカウントを別の既存 OU へ移動 - AWS アカウントを別の新規 OU へ移動 - AWS アカウントを別の新規 OU へ移動 ( 現在の OU 配下 ) - etc...
  104. © DMM.com 一年運用して ( 開発者 ) 104

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

    レビュー中 ↓ 完了 のフローです
  106. © DMM.com 開発者・管理者が一緒にがんばってる 106 - 開発者・管理者が一緒に AWS セキュリティ運用 がんばってます!

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

  108. © DMM.com まとめ 108

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

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

    - 開発者がセキュリティアラートを自発的にチェック → AWS レイヤーのセキュリティ自給率が高まった
  111. © DMM.com 今後の DMM 111 DMM のセキュリティ部は開発者と共に セキュリティを推進していきます!

  112. © DMM.com おしまい 112