Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
© DMM.com CONFIDENTIAL DMMにおける300アカウント 67チームのAWSセキュリティを 「開発者」に監視してもらうまでの 道のり 合同会社DMM.com セキュリティ部 CloudSecチーム 西山渉
Slide 2
Slide 2 text
© DMM.com 自己紹介 - 合同会社DMM.com - セキュリティ部 CloudSec チーム - クラウドセキュリティの推進 - WAF 導入支援 - PCIDSS セキュリティ監視 2
Slide 3
Slide 3 text
© DMM.com 自己紹介 3 - 合同会社DMM.com - セキュリティ部 CloudSec チーム - クラウドセキュリティの推進 - WAF 導入支援 - PCIDSS セキュリティ監視 - 元プラットフォーム開発部バックエンドエンジニア →伏線
Slide 4
Slide 4 text
© DMM.com AWS セキュリティとは 4
Slide 5
Slide 5 text
© DMM.com AWS セキュリティとは 5 アプリケーション AWS サービス 脆弱性診断、WAF AWS セキュリティ
Slide 6
Slide 6 text
© DMM.com AWS セキュリティとは 6 アプリケーション AWS サービス 脆弱性診断、WAF AWS セキュリティ AWS セキュリティの範囲 - 「AWS 上のサービスへの攻撃」に対するセキュリティ - 「AWS アカウントへの攻撃」に対するセキュリティ
Slide 7
Slide 7 text
© DMM.com DMMでも実際に事件発生 7 - S3 バケットが Write 権限でパブリック公開となっていた →悪意ある JS が置かれ、フィッシングサイトへ誘導
Slide 8
Slide 8 text
© DMM.com ということでDMMも AWSセキュリティ やろうとしました 8
Slide 9
Slide 9 text
© DMM.com 目的 9 - ヤバイ設定を素早く見つける
Slide 10
Slide 10 text
© DMM.com 目的・実現方法 10 - ヤバイ設定を素早く見つける →セキュリティガードレールを敷く
Slide 11
Slide 11 text
© DMM.com セキュリティガードレール? 11 - セキュリティ品質の担保のため、クラウド領域を制限 または、検知できるようにすること
Slide 12
Slide 12 text
© DMM.com セキュリティガードレール? 12 今回は検知 - セキュリティ品質の担保のため、クラウド領域を制限 または、検知できるようにすること
Slide 13
Slide 13 text
© DMM.com セキュリティガードレール 実装の前に DMM の状況 13
Slide 14
Slide 14 text
© DMM.com 対象 ( 見込み ) 14 - チーム数 : 50 以上 - AWS アカウント : 300 以上 - リージョン : 16 ( 2020年当時 )
Slide 15
Slide 15 text
© DMM.com 当時の DMM の状況 15 - AWS アカウントの払い出しは別部門 - CloudTrail は Organizations にて集中管理済み →ログ集約基盤が存在し、ログ保管済み
Slide 16
Slide 16 text
© DMM.com 技術選定1 16
Slide 17
Slide 17 text
© DMM.com 当初の方針 17 - 50 以上あるチームへの説明は時間がかかるため、 管理者だけでセキュリティ監視しよう - セキュリティ設定も開発者へ負担をかけずに 管理者だけで完結しよう
Slide 18
Slide 18 text
© DMM.com 監視モデル 18 管理者 開発者 AWS
Slide 19
Slide 19 text
© DMM.com 監視モデル 19 管理者 開発者 AWS
Slide 20
Slide 20 text
© DMM.com 監視モデル 20 管理者 開発者 AWS
Slide 21
Slide 21 text
© DMM.com AWS Config 21 - AWS リソースの設定変更履歴を保存する
Slide 22
Slide 22 text
© DMM.com AWS Security Hub 22 - 設定不備を検出する etc...
Slide 23
Slide 23 text
© DMM.com Amazon GuardDuty 23 - セキュリティ侵害を検知する
Slide 24
Slide 24 text
© DMM.com AWS Organizations 24 - メンバーアカウントをグルーピングする etc...
Slide 25
Slide 25 text
© DMM.com サービスマネージド型 CloudFormation StackSets 25 - メンバーアカウントへセキュリティ設定を適用する
Slide 26
Slide 26 text
© DMM.com 案1 : 監視体制 26
Slide 27
Slide 27 text
© DMM.com 案1 : 監視体制 27 Landing Zone
Slide 28
Slide 28 text
© DMM.com 承認貰いに行きました 28
Slide 29
Slide 29 text
© DMM.com 部長に承認もらう 29 ぼく「AWSセキュリティ設定すぐできそうです。お金とチェックは セキュリティ部で、パッとやっていいですか」
Slide 30
Slide 30 text
© DMM.com 部長に承認もらえない 30 ぼく「AWSセキュリティ設定すぐできそうです。お金とチェックは セキュリティ部で、パッとやっていいですか」 部長「ダメ。各チームのお金とリソースでチェックしてもらうよう、 各チームに承認をもらってください」
Slide 31
Slide 31 text
© DMM.com 部長に承認もらえない 31 ぼく「AWSセキュリティ設定すぐできそうです。お金とチェックは セキュリティ部で、パッとやっていいですか」 部長「ダメ。各チームのお金とリソースでチェックしてもらうよう、 各チームに承認をもらってください」 ぼく「なるほどですね〜 ( ひええええええええ ) 」
Slide 32
Slide 32 text
© DMM.com DMM Tech Vision 32
Slide 33
Slide 33 text
© DMM.com DMM が目指す開発像 33
Slide 34
Slide 34 text
© DMM.com セキュリティも開発者が面倒をみる 34
Slide 35
Slide 35 text
© DMM.com 技術選定2 35
Slide 36
Slide 36 text
© DMM.com 監視モデル 36 AWS 開発者 管理者
Slide 37
Slide 37 text
© DMM.com 監視モデル改 37 管理者 開発者 AWS 主役
Slide 38
Slide 38 text
© DMM.com 監視モデル改 38 管理者 開発者 AWS Push型
Slide 39
Slide 39 text
© DMM.com AWS Config Rules 39 - 設定不備を検知する → Security Hub の代わり
Slide 40
Slide 40 text
© DMM.com AWS Config Rules を使った理由 40 - CloudFormation でルールの指定ができる →開発者にチェックしてもらうため、過検知は少なく
Slide 41
Slide 41 text
© DMM.com AWS Config Rules の選定 41
Slide 42
Slide 42 text
© DMM.com Slack 42 - DMM のチャットコミュニケーションツール →チームごとにアラート通知用のチャンネル作成
Slide 43
Slide 43 text
© DMM.com Slack へ飛ばすために 43 - Amazon EventBridge - Amazon SNS - AWS Chatbot
Slide 44
Slide 44 text
© DMM.com OU 構築 44 - チームごとに OU を作成
Slide 45
Slide 45 text
© DMM.com セキュリティ設定方法 45
Slide 46
Slide 46 text
© DMM.com 案2 : 監視体制 46
Slide 47
Slide 47 text
© DMM.com これでいけるか・・・? 47
Slide 48
Slide 48 text
© DMM.com 知り合いのチームに テストさせてもらう 48
Slide 49
Slide 49 text
© DMM.com 伏線回収 49
Slide 50
Slide 50 text
© DMM.com 最初の営業 50
Slide 51
Slide 51 text
© DMM.com いざ実践 51
Slide 52
Slide 52 text
© DMM.com おかげさまで、問題点を把握 52 - チェック終わったアラートがわからない ( 開発者・管理者とも に ) - 埋もれて忘れてしまう → Slack だけでアラート管理は難しい
Slide 53
Slide 53 text
© DMM.com アラート管理のための 技術選定 ( AWS外 ) 53
Slide 54
Slide 54 text
© DMM.com 方針思い出し 54 - 開発者にセキュリティ運用をやってもらう →開発者がスムーズに運用できるようなツールを利用
Slide 55
Slide 55 text
© DMM.com JIRA 55 - DMM で採用されているチケット管理システム
Slide 56
Slide 56 text
© DMM.com JIRA -選定理由- 56 - DMM で採用されているチケット管理システム - 入社時にアカウント発行 - 他部署へのタスクの依頼に利用 → DMM の人は全員使える。。。はず
Slide 57
Slide 57 text
© DMM.com JIRA -全てのリージョンのアラートを管理- 57
Slide 58
Slide 58 text
© DMM.com JIRA -アラートをカンバン方式で管理- 58
Slide 59
Slide 59 text
© DMM.com JIRA -チケット内には優先度や期限を記載- 59
Slide 60
Slide 60 text
© DMM.com Slackbot 60 - JIRA チケットの起票 - Slack のスレッドへ JIRA チケット URL を通知 - アラートの重要度に応じたメンション発行 etc...
Slide 61
Slide 61 text
© DMM.com Slackbot 61 DMM のインフラ部門がシステムアラートの管理を JIRA で やっているのにインスパイア!! - JIRA チケットの起票 - Slack のスレッドへ JIRA チケット URL を通知 - アラートの重要度に応じたメンション発行 etc...
Slide 62
Slide 62 text
© DMM.com slackbot ( 作った ) 62
Slide 63
Slide 63 text
© DMM.com 実際の例 63
Slide 64
Slide 64 text
© DMM.com 完成 楽しい技術検証はここまで 64
Slide 65
Slide 65 text
© DMM.com ここからは DMM のチームを 巡り、承認をもらう 65
Slide 66
Slide 66 text
© DMM.com 長い旅が始まりました DMM ジャーニー 66
Slide 67
Slide 67 text
© DMM.com 承認をもらう旅 67 - AWS セキュリティチェックを開発者にやってもらうため「お金」 と「運用リソース」を出してもらうよう、 承認いただく
Slide 68
Slide 68 text
© DMM.com 営業資料 68
Slide 69
Slide 69 text
© DMM.com 営業順番 69 - 重要な情報を扱っているチームから
Slide 70
Slide 70 text
© DMM.com 営業 70
Slide 71
Slide 71 text
© DMM.com コロナ禍における 他部署への協力取り付け 71
Slide 72
Slide 72 text
© DMM.com リモートで営業 72 - Slack で DM を送る - 「初めましてこんにちは!」 - 「AWS セキュリティについて相談したいです!」 - 「ちょっとお時間よろしいでしょうか?」
Slide 73
Slide 73 text
© DMM.com 営業の振り返り 73 - チームでやっていたから完走できた - 逆にコロナという環境だからこそ、営業は捗った - あらゆるツテとコネを活用した
Slide 74
Slide 74 text
© DMM.com 結果 74
Slide 75
Slide 75 text
© DMM.com 完了宣言 承認もらえたチーム : 80 → Slack チャンネルの通知先が 67 75
Slide 76
Slide 76 text
© DMM.com 完了宣言 76 セキュリティ設定完了したアカウント : 約300 承認もらえたチーム : 80 → Slack チャンネルの通知先が 67
Slide 77
Slide 77 text
© DMM.com 完了宣言 77 棚卸しにより削除されたアカウント : 約50 セキュリティ設定完了したアカウント : 約300 承認もらえたチーム : 80 → Slack チャンネルの通知先が 67
Slide 78
Slide 78 text
© DMM.com 監視体制 78
Slide 79
Slide 79 text
© DMM.com 監視体制 79 Slack セクション機能で グルーピング
Slide 80
Slide 80 text
© DMM.com アラート数の推移(2021/9末時点) 80
Slide 81
Slide 81 text
© DMM.com アラート状況(2021/9末時点) 81 チェックした箇所 : 約4500 チェックが完了した箇所 : 約3200
Slide 82
Slide 82 text
© DMM.com チケット状況 82
Slide 83
Slide 83 text
© DMM.com 特にヤバイやつ 83 DB パブリック公開:20 S3 書き込み権限でパブリック公開:6
Slide 84
Slide 84 text
© DMM.com 実際に起きてた事件 84
Slide 85
Slide 85 text
© DMM.com 実際に起きてた事件 85 3件
Slide 86
Slide 86 text
© DMM.com DMM CSIRT と協力して対処 ( 画像は別件 ) 86
Slide 87
Slide 87 text
© DMM.com 議論が発生している 箇所 87
Slide 88
Slide 88 text
© DMM.com 80, 443 port パブリック公開の検知 88 Q. Web 会社なんだから 80, 443 port 公開するの当たり前 じゃん!想定内ですよ! A. お手数おかけしてます。DEV/STG 環境や Jenkins など のパブリック公開検知のため、80, 443 port の パブリック検知を実施しています。
Slide 89
Slide 89 text
© DMM.com セキュリティ設定するタイミング 89 Q. サービスリリースしてからでいいんじゃないの? A. クラウドセキュリティの場合、クラウドを利用し始めた タイミングからリスクが発生します。そのため、AWS アカウントが払い出されたタイミングでセキュリティ 設定を有効化します。
Slide 90
Slide 90 text
© DMM.com 一年運用 ( 管理者 ) 90
Slide 91
Slide 91 text
© DMM.com DMM の AWS セキュリティ標準策定 91
Slide 92
Slide 92 text
© DMM.com セキュリティプランを用意 92
Slide 93
Slide 93 text
© DMM.com CloudFormation StackSets 93 Organizations の OU 設計
Slide 94
Slide 94 text
© DMM.com 構築 94 - AWS CLI で実行
Slide 95
Slide 95 text
© DMM.com 構築 95 - 1 チームで 6 個の StackSet を作成
Slide 96
Slide 96 text
© DMM.com 構築 96 - 1 チームで 6 個の StackSet を作成 →80 OU あるためデプロイ先が 480
Slide 97
Slide 97 text
© DMM.com 構築 97 - Administrator アカウントに作成できる StackSet 数の 上限緩和申請 ( 100 → 700 )
Slide 98
Slide 98 text
© DMM.com 構築 98 - アカウント数 × 17 リージョン分の Stack Instance
Slide 99
Slide 99 text
© DMM.com 運用 99 - 難しい
Slide 100
Slide 100 text
© DMM.com 運用 100 - 難しい - 自動デプロイ
Slide 101
Slide 101 text
© DMM.com 運用 101 - 自動デプロイを有効化すると OU に AWS アカウントを 所属させたタイミングで CloudFormation が実行される
Slide 102
Slide 102 text
© DMM.com 運用 102 - 自動デプロイはリージョンの実行順を制御できない →自動デプロイを考慮した CloudFormation テンプレートを作 成すべきだった
Slide 103
Slide 103 text
© DMM.com ユースケース 103 - AWS アカウントを Root へ移動 ( アカウント停止前 ) - AWS アカウントを Root へ移動 ( アカウント停止後 ) - AWS アカウントを別の既存 OU へ移動 - AWS アカウントを別の新規 OU へ移動 - AWS アカウントを別の新規 OU へ移動 ( 現在の OU 配下 ) - etc...
Slide 104
Slide 104 text
© DMM.com 一年運用して ( 開発者 ) 104
Slide 105
Slide 105 text
© DMM.com チケット ( アラート ) 状況 105 ToDo ↓ レビュー中 ↓ 完了 のフローです
Slide 106
Slide 106 text
© DMM.com 開発者・管理者が一緒にがんばってる 106 - 開発者・管理者が一緒に AWS セキュリティ運用 がんばってます!
Slide 107
Slide 107 text
© DMM.com 開発者がセキュリティアラートをチェック! 107
Slide 108
Slide 108 text
© DMM.com まとめ 108
Slide 109
Slide 109 text
© DMM.com まとめ 109 - DMM の AWS アカウントにガードレールを敷けた →設定不備・セキュリティ侵害を発見できた
Slide 110
Slide 110 text
© DMM.com まとめ 110 - DMM の AWS アカウントにガードレールを敷けた →設定不備・セキュリティ侵害を発見できた - 開発者がセキュリティアラートを自発的にチェック → AWS レイヤーのセキュリティ自給率が高まった
Slide 111
Slide 111 text
© DMM.com 今後の DMM 111 DMM のセキュリティ部は開発者と共に セキュリティを推進していきます!
Slide 112
Slide 112 text
© DMM.com おしまい 112