解説と登壇時の動画を載せたブログは以下です。こちらを見てください。シェアもブログの方をお願いします。 https://dev.classmethod.jp/articles/aws-security-all-in-one-2021/ イベントページはこちら。 DevelopersIO 2021 Decade https://classmethod.jp/m/devio-2021-decade/
[2021年版]AWSセキュリティ対策全部盛り[初級から上級まで]2021/10/6AWS事業本部コンサルティング部 ⾅⽥佳祐ハッシュタグ #devio2021
View Slide
⾃⼰紹介⾅⽥佳祐・クラスメソッド株式会社AWS事業本部シニアソリューションアーキテクトセキュリティチームリーダーAWS公認インストラクター・Security-JAWS運営・好きなサービス:Amazon Detective2みんなのAWS(技術評論社)
3セッションテーマすべての⼈にセキュリティを
4注意スライドが多いから細かいことは後で⾒てにゃ
5アジェンダ1. ⻑い前説2. [初級]AWSを始める、セキュアに3. [初級]システム作る、セキュアに4. [中級]AWSのセキュリティを維持する5. [中級]インシデントに対応する6. [上級]組織全体でガバナンスを効かせる
61. ⻑い前説
7⻑い前説なんで前説が必要なんだにゃ︖
8なんで前説が必要なの︖AWSのセキュリティのまえに情報セキュリティ
9なんで前説が必要なの︖⼩⼿先の技術より根本的なセキュリティの考え⽅
10なんで前説が必要なの︖なんのためかわからないセキュリティではなく正しく意味のあるセキュリティ
11なんで前説が必要なの︖後付けのセキュリティではなく設計から組み込まれたセキュリティ
12なんで前説が必要なの︖ひとりで頑張るではなく全員で取り組む
13なんで前説が必要なの︖⼈⼒で頑張るではなく精度の⾼い機械に任せる
14なんで前説が必要なの︖オンプレミスの代わりではなくクラウドの恩恵を受ける
15⻑い前説の意味⼩⼿先じゃない原則を押さえよう
16セキュリティで守るもの守りたいものはなんですか︖
17守りたいもの(⼀部のざっくりした視点)• データ• 機密情報• 顧客データ• 個⼈情報• クレジットカード• コンテンツ• 利⽤者• 個⼈情報• アップしたコンテンツ• 会社• 業務システム• 会社⾃体• 企業イメージ• 従業員• お⾦
18守りたいものはどこにあるか︖(例えば)• サーバー• データベース• ストレージ• PC• 物理的な紙
19守るものを把握する• どこにあるのか• 誰が責任者か• 誰が管理しているのか• 誰がアクセスできるのか• 今すぐに状態がわかるかすべて把握できていないと守れない資産の洗い出し・特定して管理するまず洗い出し
20脅威とリスクを理解するどんな脅威がありますか︖
21情報セキュリティで扱う脅威(⼀例)• 情報漏えい• ⾦銭の搾取• サービス停⽌• 改ざん• なりすまし
22脅威を理解しリスクを理解する• 脅威と脆弱性がかけ合わさりリスクが顕在化する• 資産の価値でリスクの⼤きさが変わる• 脆弱性を減らすことでリスクを⼩さくできる• リスクに応じてどのように対策するか検討する資産脆弱性 脅威リスク
23リスクを知り対策を知る(⼀例)• リスク: サーバーのデータが漏洩する• 根本対策: アクセス制御を徹底する• 補助対策: DLPを導⼊する根本対策が先だぞ
24設計にセキュリティをリスクがわかれば設計に反映できる• アクセス権限の洗い出し• 許可払い出しフローの管理• 不要なサーバーポートの確認• ソフトウェアの脆弱性管理• ログの収集• 送信元IPの集計• 不審なIPのアラートやることと優先順位が⾒えてくるぞ
25セキュリティの責任は誰にありますか︖
26セキュリティは誰の責任︖• セキュリティ担当者だけではない• 開発者• 運⽤者• 監査⼈• 経営者• などなど• つまり全員セキュリティ担当• 必要な⼈が必要な範囲⾏う(責任範囲)関係ない⼈はいないぞ
27必要なもの基本の知識+最新の情報
28セキュリティの原則• 最⼩権限• 多層防御• 識別・認証・認可• システムの堅牢化• フェールセーフ• シンプルにする• 職務の分離• Design for Failure• ⼈は間違える• などなど
29知らないと守れない• セキュリティの原理原則• NIST CSF• 攻撃者の気持ち• AWSの特徴• 便利なセキュリティ機能• AWSの情報源• 各AWSサービスUser Guideの「セキュリティ」ページ• JAWS-UG• ググる常にキャッチアップだ
30セキュリティ対策の進め⽅敵を知り⼰を知り適切な対応を
31合わせて読みたい情報セキュリティについて深く知りたいなら情報処理安全確保⽀援⼠の試験は丁度いいかも網羅的で原理原則と技術のバランスがいい最新の技術もある個⼈的にはこの教科書が好き試験受かってからも何度も読んでるhttps://www.amazon.co.jp/dp/479816867X/
32なぜAWSを利⽤するのかAWSのメリットはなんですか︖
33AWSが選ばれる10の理由メリットを理解して有効に活⽤するhttps://aws.amazon.com/jp/aws-ten-reasons/
342. [初級]AWSを始める、セキュアに
35課題AWSなんもわからんけどテキトーに始めるか
36AWSの始め⽅テキトーは絶対にダメにゃ︕
37AWSの脅威• 誤った情報の公開・アクセス許可• AWSはローカルPCの環境や社内の検証環境ではない• 簡単に外部に公開して迅速に展開できる基盤• 権限不備で情報漏えいが起きたり• 不正な攻撃者がアカウントを乗っ取ることも• 資⾦の浪費• 従量課⾦で安く使い始められるけど、適切に管理しないと請求がすごいことに
38AWSを知るAWSを使い始める時にやることを押さえようきちんと知れば安全に使えるぞ
39合わせて読みたい「AWS利⽤開始時に最低限おさえておきたい10のこと」最初に知るべきことがまとまっている公式の資料https://pages.awscloud.com/event_JAPAN_at-least-10-ondemand.html?trk=aws_event_page
40合わせて⾒たいDevelopersIO 2021Decadeで動画セッションあります︕https://classmethod.jp/m/devio-2021-decade/
41最初にやること抜粋• IAMユーザーを作ってルートユーザーをMFAで封印• 必要なサービス有効化• CloudTrail• Config• GuardDuty• Security Hub• IAM Access Analyzer• Detective• Well-Architectedフレームワーク読む
42IAM• Identity and Access Management• AWSにおけるアクセス制御の基本であり極意• セキュリティの原則に従い利⽤• 個別のIDを発⾏する• 最⼩権限• MFA設定• アクセスキーの利⽤は注意• すべてのAWS利⽤者が理解する必要がある
43合わせて読みたいIAM再⼊⾨やや古いがよくまとまっているhttps://dev.classmethod.jp/articles/cm-advent-calendar-2015-getting-started-again-aws-iam/
44合わせて読みたいすべての開発者はgit-secretsを導⼊する意図せずアクセスキーをGitにコミットすることを防⽌できるhttps://dev.classmethod.jp/articles/startup-git-secrets/
45CloudTrail• CloudTrailはAWS上の操作であるAPIを記録する• 誰がいつ何をどうしたか、全て記録される• いつログインしたか• 誰がサーバーを作成したか• いつ削除したか• ログはS3に保存しておく
46合わせて読みたい最初にCloudTrailを有効化する全リージョンで⼀括の設定が可能で必須https://dev.classmethod.jp/articles/aws-cloudtrail-all-regions-on/
47Config• 各種AWSリソースの変更を記録・管理する• 時系列に変更を辿れる• セキュリティグループがいつ作られたか• いつどのように変更されたか• 関連性を辿れる• どのEC2と紐付いているか• どのVPCと紐付いているか• 問題ある設定を是正する
48合わせて読みたいAWS Configも最初に有効化するリージョン毎の設定なので全リージョン回すグローバルリソース記録は1つでいいhttps://dev.classmethod.jp/articles/aws-config-start/
49Well-Architectedフレームワーク5つの柱に基づいたベストプラクティスを理解できる
50合わせて読みたい初めて読む⼈はこのブログから読むとよく理解できる熟練者もこのブログで早引きできるつまり全員使うと良いブログhttps://dev.classmethod.jp/articles/aws-well-architected-guide/
512. [初級]AWSを始める、セキュアに まとめ最初にやるべき・理解するべきことの情報はいっぱいあるしっかりキャッチアップしながら始める
523. [初級]システム作る、セキュアに
53課題AWSよくわからんけどオンプレとおんなじセキュリティ対策でええやろ
54システムセキュリティ原則はいっしょでもAWSで便利になるにゃ︕
55AWSでのシステム構築メリット• すぐに調達可能なリソース(スケーラビリティ)• マネージドサービスによる責任領域の低減• リソース単位の詳細なアクセス制御(AWSレベル・ネットワークレベル)• 簡単に利⽤可能なセキュリティ機能• AWS WAF• Cognito• CloudFront
56AWSのメリットを活⽤するAWSで便利にできることは便利にやろう様々なサービスを知って活⽤しよう
57責任共有モデル明確な責任範囲がある
58責任共有モデルの詳細サービスによって責任分界点が違うマネージドサービスはAWS管理部分が多くやりたいことに集中できる顧客責任部分も丸投げではなく便利な仕組みが提供されている
59⼀般的なセキュアWeb環境• 3層アーキテクチャ• EC2はプライベート• SSM Session Managerでアクセス(SSHしない、これ最強。)• CloudFront + S3 + WAF• マルチAZ• Auto Scaling
60合わせて読みたいセキュアな環境の設計から話した資料初めてでも使える情報満載https://dev.classmethod.jp/articles/jaws-days-2019-a-security/
61コンポーネント毎の話• 次の順で説明• コンピューティング• ネットワーク• データベース• ストレージ• OS/ミドル• アプリ• モニタリング/ログ
62コンピューティング(EC2)• EC2は直接パブリックに置かない(攻撃経路を無くす)• OS/ミドルのパッチは常に最新に(脆弱性管理)• SSHも可能な限りSession Managerを使う• 最低限のポートだけ開ける• ログを外部出⼒する(CloudWatchやS3)• マルウェア対策する• IAM Roleは最⼩権限に(SSRF対策)• 可能ならIMDSv2を利⽤する
63合わせて読みたいIMDSv2によりSSRF対策が可能万能ではないこと、OS/ミドル/アプリ側でのサポートが必要な点は注意https://dev.classmethod.jp/articles/ec2-imdsv2-release/
64コンピューティング(コンテナ)• ⾃前でDockerなどを動かさずにECS/EKSを利⽤する(管理部分の委任)• AWSが管理している基盤のほうがセキュア• Fargateを利⽤する(管理部分の委任)• 信頼できるリポジトリを利⽤• イメージをスキャンする(脆弱性管理)• ログを外部出⼒する(awslogs/FireLens)• NIST SP800-190もチェック
65合わせて読みたいコンテナセキュリティの始め⽅や考え⽅がよく分かるブログhttps://dev.classmethod.jp/articles/container-security-tools-and-docs/
66コンピューティング(Lambda)• 認証・認可されていないリクエストを受け付けない(アクセス制御)• 外部からのリクエストを処理する場合はAPIGatewayをフロントに⼊れる• 強い権限のIAM Roleをアタッチしない(最⼩権限)• 脆弱性のあるパッケージを利⽤しない(脆弱性管理)• 実⾏数のクォータをモニタリングする(可⽤性)
67ネットワーク• 必要な単位でVPCを分割する(相乗りしない)• Security Groupで詳細なアクセス制御する• 最低限のポート• 最低限の送信元• Security Group ID指定での制御(無駄にIP指定しない)• NACLでポリシー的なアクセス制御する• VPC EndpointによるセキュアなAWSアクセス
68データベース• RDS / DynamoDBなどマネージドなサービスを利⽤する(責任範囲)• マルチAZ / リードレプリカによる冗⻑化• バックアップによる復旧可能性• TLSによる通信経路の暗号化• IAMによる管理アクセスの制御• ユーザー毎データアクセス権限の最⼩化
69ストレージ(S3)• S3のアクセス制御機能の理解• まずはパブリックアクセスブロック• バケットポリシー / ACL• バージョニング• オブジェクトロック(WORM)• クロスリージョンレプリケーション• アクセスポイント(アクセス制御の分割)• セキュリティベストプラクティス読む• https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/security-best-practices.html• ユーザーアップロードがあるならスキャン
70合わせて読みたいCloud One FileStorage SecurityはサーバレスにS3をマルウェアスキャンできる素晴らしい仕組みhttps://dev.classmethod.jp/articles/trendmicro-introducing-security-for-cloud-object-storage/
71OS/ミドル• とにかく脆弱性管理• 脆弱性診断だけではない• AWSならSSMインベントリ + Inspector + SSMパッチマネージャから始める• より快適なのはFutureVulsなど1つの基盤で⼀連の脆弱性管理ができる仕組み
72合わせて読みたいSSM パッチマネージャを使いながら⾃動的にパッチを当てていくアプローチの1つhttps://dev.classmethod.jp/articles/ssm-automation-patch-asg-instance/
73合わせて読みたいAWS側にログインしなくてもSSMと連携して⾃動的にパッチ適⽤が出来る発⾒した脆弱性をチケット管理できて、発⾒から修正まで⼀気通貫で出来るネ申サービスhttps://dev.classmethod.jp/articles/ssm_integrate_and_patch_application_with_futurevuls/
74アプリ• アプリケーションセキュリティの責任はユーザー• セキュアに実装してください
75合わせて読みたいとりあえず徳丸本置いておきますねhttps://www.amazon.co.jp/dp/4797393165/
76アプリ(続き)• といっても⼤変なのでAWSの便利な機能を利⽤する• 認証基盤としてCognitoが利⽤できると⾃前で実装しなくて済む• Advanced Securityで認証強化• アダプティブ認証(通常と違うログイン対策)• 侵害された認証情報(漏洩したパスワード対策)• AWS WAFを利⽤してフロントで攻撃を⽌められる• 認証情報は埋め込まないでSSMパラメータストアやSecrets Managerに保管する• ⾃動化された安全な仕組みでリリースする
77合わせて読みたいCognito使うなら絶対使おうhttps://dev.classmethod.jp/articles/aws-reinvent-cognit-asf-settings/
78合わせて読みたいAWS WAFの解説マネージドルールを活⽤して楽に⾼度な機能を利⽤しようhttps://dev.classmethod.jp/articles/fully-understood-aws-waf-v2/
79モニタリング/ログ• 現在の状態・過去の状態を確認することは必須• 未来の状態も予測できる• CloudWatchメトリクスから必要な情報を得る• コンピューティングリソースの状態• サービス・ビジネスメトリクス• ログから詳細なインサイトを得る• エラーなどを検知する• 最新のCloudWatch機能を活⽤する• 合成監視とか
80合わせて読みたいダッシュボード参考例https://dev.classmethod.jp/articles/autoscalling-with-cloudwatch-dashboard/
81合わせて読みたい合成監視(ユーザー視点のシナリオベース監視)で画⾯の差分を検知したりできるhttps://dev.classmethod.jp/articles/cloudwatch-synthetics-visual-monitoring/
82合わせて読みたいSyntheticsなどの最新機能も含めた様々な監視機能を学べるhttps://dev.classmethod.jp/articles/introduction-of-one-observability-demo-workshop/
83合わせて読みたいS3に保存したログはAthenaで⾒るhttps://dev.classmethod.jp/articles/cloudtrail-athena-partition-projection-table/
84あとは⾃動化しようCloudFormationなどで作業を⾃動化しよう繰り返し作業が安定する作業ミスが発⽣しない(⼈はミスする)
85ここまで初級です初級ちゃんとできてましたか︖
863. [初級]システム作る、セキュアに まとめそれぞれのレイヤーで原理原則を守って便利なAWSサービスを駆使して快適なセキュリティ設計・実装・運⽤
87システムのセキュリティ取り組み⽅AWSのサービスはどんどんよくなりますAWSをよく知り継続的に改善しよう
884. [中級]AWSのセキュリティを維持する
89課題いまちゃんとAWS全体がセキュアな状態かわからん
90AWSのセキュリティ維持⾃動でAWS環境をチェックするにゃ︕
91AWSのセキュリティ維持• AWS Config RulesによりAWSの状態を確認し、定義した状態から違反したらアラートを出せる• アラートから⾃動修復も可能• Security HubはConfig Rulesを利⽤したセキュリティチェックが可能• 詳細なアクセス制御の維持にはIAM AccessAnalyzerやPermissions Boundaryを利⽤する
92AWSのメリットを活⽤するAWSで便利にできることは便利にやろう⼈⼿で頑張るのは愚策だぞ
93合わせて読みたいセキュリティチェックの概念から様々な⼿法のメリットデメリットなどまとまっていますhttps://dev.classmethod.jp/articles/2020-strongest-aws-securitycheck-practice/
94最強のセキュリティチェック⽅法をしっかり解説
95Configによる設定管理Configでは現在の設定と、過去の変更の差分を時系列に管理している
96Config Rulesのチェック項⽬• ルールは2種類ある• AWSマネージドルール: ⽤意されている• カスタムルール: ⾃前のLambdaでチェックできる• マネージドルールの例• SecurityGroupでSSHが0.0.0.0/0で許可されていないか• CloudTrailが有効か• S3バケットが暗号化されているか• RDSのバックアップが有効か• などなど100種類以上• https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/managed-rules-by-aws-config.html
97Config Rulesから⾃動修復• 検知だけではなく⾃動修復も可能• ⼿動で開始する半⾃動修復と、検知次第完全⾃動で修復も可能• 実態としてSSMAutomationと連携する
98合わせて読みたい簡単にSSHの全開放を⾃動修復する設定まずは検知からだけでもやってみようhttps://dev.classmethod.jp/articles/auto-recovery-restricted-ssh-without-lambda/
99Config Rulesを活⽤した仕組み• Config Rulesは様々なチェックが可能• これを応⽤するAWSサービスがある• Conformance Packs• CloudFormationのようにRulesをYAML/JSONで定義してデプロイできる• サンプルテンプレートが50個以上ある• Security Hub• 3種類のルールセットがある• ⾃動展開できる• 個別の検知抑制が可能
100セキュリティチェック⽅法⾊々あって迷うにゃどれがいいにゃ︖
101セキュリティチェック⽅法運⽤性と⼿厚さからSecurity Hubがオススメ
102セキュリティチェック⽅法• Security Hubはセキュリティチェック運⽤の理想形• 直感的なスコア表⽰• 無効化・例外の設定管理• AWSが最新のベストプラクティスを適⽤• 「AWS の基本的なセキュリティのベストプラクティスコントロール(AWS Foundational Security Best Practices)」のルールが優秀• 現状30リソースタイプ・121種類のチェック• 更新頻度が⾼い(リリースから約1年半で13回更新)• ⾃動修復ソリューション• マルチアカウントの集約
103直感的なスコア表⽰達成度がわかりやすい
104無効化・例外の設定管理ルール・リソース単位のステータス管理
105対応リソースタイプ• ACM• Apigateway• AutoScaling• CloudFront• CloudTrail• CodeBuild• Config• DMS• DynamoDB• EC2• ECS• EFS• ElasticBeanstalk• ELB• ELBv2• EMR• ES• GuardDuty• IAM• KMS• Lambda• RDS• Redshift• S3• SageMaker• SecretsManager• SNS• SQS• SSM• WAF
106⾃動修復ソリューションマルチアカウント連携した修復の仕組みを展開できる
107合わせて読みたいAWS基礎セキュリティのベストプラクティスに対応した⾃動修復ソリューションの解説https://dev.classmethod.jp/articles/aws-security-hub-auto-remediation-asfbp/
108合わせて読みたいSecurity Hubの解説とどんな⾵に運⽤したらいいかをまとめていますhttps://dev.classmethod.jp/articles/aws-security-operation-with-securityhub-2021/
109マルチアカウントの集約イベントの集約と管理者の委任ができる
110合わせて読みたいAWS Organizationsと連携することで快適に集約管理できますhttps://dev.classmethod.jp/articles/security-hub-integrates-organizations/
111Security Hub以外を使う場合• Security Hubも完璧ではない• Conformance Packsを利⽤する場合• サンプルテンプレートを活⽤したい• ガリガリルールセットをカスタマイズしたい• ⾃動修復も独⾃で設定したい• カスタムルール(Lambda)を利⽤したい
112IAMのチェック
113IAMチェック⽅法開発者にIAM発⾏の権限を委任したいにゃでも不安だにゃ
114IAMチェック⽅法特に危ない外部共有の設定はAccessAnalyzerでチェック
115IAM Access Analyzer• 別のAWSアカウントから利⽤できるIAM Roleや不特定多数からアクセスできるS3バケットなど、外部共有のリソースを収集しチェックできる• 対応リソース• S3バケット• IAM Role• KMSキー• Lambda関数• SQSキュー• Secrets Managerシークレット
116イメージはこんな感じ検知結果はEventBridge経由で通知できる
117合わせて読みたいわかりやすい図と画像でよく理解できるブログhttps://dev.classmethod.jp/articles/iam-accessanalyzer-vs-iam-accessadvisor/
118IAMの権限昇格対策
119IAMの権限昇格対策開発者がIAMの権限から⾃⾝を昇格しそうにゃ
120IAMの権限昇格対策Permissions Boundaryで昇格を防⽌しよう
121Permissions Boundaryとは• IAMエンティティに追加で付与できる• 元々のポリシー(アイデンティティベースポリシー)に加えてPermissions Boundaryでも許可されている権限しか実⾏できない• 作成するIAMにBoundaryをつけることを強要できる
122Permissions Boundaryのメリット開発者の作成するIAMにBoundaryを強制するBoundaryでIAM周りの権限を制限する権限昇格できなくなる
123合わせて読みたいPermissionsBoundaryの使⽤例https://dev.classmethod.jp/articles/iam-permissions-boundary/他にも「PermissionsBoundary workshop」で検索すると参考になるものがあるよ
1244. [中級]AWSのセキュリティを維持する まとめ⾃動で動くセキュリティチェックを駆使するアラートを受け取ったり⾃動で修復する⼈⼿ではなく⾃動の仕組みで対処する
1255. [中級]インシデントに対応する
126課題攻撃されているかわからん気づいても対処の仕⽅がわからん
127AWSのインシデント対応AWSの脅威検知は簡単にゃ恐れずチャレンジするにゃ︕
128AWSのインシデント検知と対応• Amazon GuardDuty(マネージドな脅威検知サービス)でいろんな脅威を検知• EC2でコインマイニング• IAM不正利⽤• S3への不審なアクセス• などなど• Amazon Detectiveで⾃動的にログを関連付けして簡単に調査• ユーザーガイドに対処⽅法がある
129AWSのインシデント対応優秀なセキュリティサービスで漏らさず対応しよう
130インシデント対応の⼼構え
131インシデント対応の⼼構え• Security Hubなどで予防を頑張っていてもインシデントが起きる時は起きる• 予防だけではなくなにか起きた後迅速に対応することも⾮常に⼤切• NIST CSF的には検知・対応・復旧• ⽇頃からこれらの準備をしておく
132NIST CSFとは• NISTサイバーセキュリティフレームワーク• セキュリティ体制づくりに活⽤できる
133NIST CSFのコア機能• 5つのコア機能と各サブカテゴリに対応する対策ができているかを⾃⼰評価する
134計画の作成
135AWSのインシデント対応の計画ちゃんと計画できてるかにゃ︖
136計画の第⼀歩まず、どんなインシデントが起きるか知ろうどんな対応が必要か検討できる
137Amazon GuardDutyとは• 脅威検知サービス• CloudTrail / VPC Flow Logs / DNS Logsをバックグラウンドで⾃動収集(利⽤者の⼿間なし)• ポチッと有効化するだけ• IAM / EC2 / S3に関するインシデントを検知• 脅威インテリジェンスと連携• 機械学習による異常識別
138GuardDutyの検知内容(ほんの⼀部)• IAMタイプ• 不正ログイン• 漏洩したクレデンシャル利⽤• CloudTrail無効化• EC2タイプ• コインマイニング• C&Cサーバー接続• SSHブルートフォース(受信 or 送信)• S3タイプ• バケット公開• Torアクセス
139対応⽅法GuardDutyのユーザーガイドに検知結果毎の対応⽅法がわかりやすく記載されているhttps://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_finding-types-active.html
140初動対応計画• 検知結果毎ざっくり3種類準備しておく• IAMタイプ• 認証情報を無効化する• EC2タイプ• EC2を隔離、保全、調査する• 調査は得意な会社に依頼できる準備でもいい• S3タイプ• アクセス権限を絞る
141IAMタイプの初動対応例• IAM Userならアクセスキーを無効化・削除• IAM Roleならセッションの無効化をポチ• CloudTrailで何をされたか調査
142EC2タイプの初動対応例Security Groupを変更して隔離(in/out無し)AMIバックアップ取得サーバーやストレージ調査(できれば、プロに任せたほうがいい)
143合わせて読みたいセキュリティ会社の実際のEC2調査の例https://ierae.co.jp/blog/awsec2-hdd-analytics/
144S3タイプの初動対応例パブリックアクセスブロックする
145合わせて読みたいGuardDutyの解説とどんな⾵に運⽤したらいいかをまとめていますhttps://dev.classmethod.jp/articles/aws-security-operation-with-guardduty-2021/
146その他の計画• エスカレーションフローなども決めておこう• 誰がいつまでにどこまで判断するか• 必要なログは収集しておこう• インシデント検知のアラートと⼀緒に⽬につくように対応することを出そう• いざという時は対応漏れが起きやすいのでチェックリストなどで簡単に実⾏できるようにしよう• 予⾏練習たくさんやろう
147クラスメソッドの障害対応例2020年10⽉22⽇に発⽣したAWS障害の対応例
148合わせて読みたい具体的なランブックオートメーション(⾃動対応)の実装例https://dev.classmethod.jp/articles/google-apps-script-slack-api-launch-01/
149合わせて読みたいAWS障害発⽣時のための準備と対応の具体例https://dev.classmethod.jp/articles/technical-support-aws-failure-launch01/
150AWSのインシデント対応対応⽅針がわかれば怖くない対応計画を作ろう
151詳細な調査が必要なケース
152詳細な調査が必要なケース• すべてのインシデントがGuardDutyの内容だけでわかるとは限らない• 漏洩したIAMでどのようなことが実⾏されたか• EC2が何と通信したか• S3からダウンロードされたデータはなにか• IAM情報がどこから漏洩したか• などなど
153調査に必要なものログ
154何はともあれログ• GuardDutyは⾃動でログを収集して検知してくれるけど、ユーザー側にログを提供してくれない• 別途⾃分たちでも必要なものは保存しておく• 通常はS3に各種ログを出⼒する• 調査する時はAmazon Athenaを利⽤する• S3のオブジェクトレベルのログはCloudTrailにデータイベントログ保存の追加設定が必要
155合わせて読みたいAthenaでCloudTrailのログを調査する時のいい設定(再掲)https://dev.classmethod.jp/articles/cloudtrail-athena-partition-projection-table/
156しかしログの調査は⼤変• ノイズが多い• ちょうどいいログクエリを探すのに⼀苦労• 関連性を⾒出しづらい• クエリではなく、あらかた絞った状態でエクセルで検索を駆使したり⽬grepしてがんばる• 動的な範囲の集計やりづらい• この時間範囲のこのユーザーの実⾏API数とか、ぐりぐり動かしながらやりたい• 異常値を⾒つけにくい• どの観点で分析したらいいかわからん
157インシデントの調査もっと簡単に調査できないかにゃ︖
158できるよAmazon Detectiveならね
159Amazon Detectiveとは• インシデント調査のサービス• VPC Flow Logs / CloudTrail / GuardDutyFindingsを⾃動で取り込む• わかりやすいグラフやマップで視覚化
160つまりこれが…
161こうじゃ︕
162Detectiveのいいところ内部のグラフDBで関連付けしてくれる
163リソースの関連情報リソースに関連する情報を収集してリンクしてくれる作成したユーザーや関連するイベントを辿れる
164API実⾏履歴関連するAPIを集計してくれる絞り込みもできるAPI実⾏者単位やIP単位で確認できる
165直感的なマッピングどこから操作されているかGeoIPでマッピングしてくれる
166合わせて読みたい実際の画⾯とともにガッツリデモしているブログ動きを⾒ながらより対応イメージを⾼めようhttps://dev.classmethod.jp/articles/amazon-detective-investigation-demo/
167インシデントの調査調査のツラミをDetectiveが吸収してくれる
168調査の進め⽅• Detectiveを使うことで調査が⼤幅に捗る• 何が起きているかの全体像把握• 関連リソース把握• 起因になっている事象を辿る• しかし最終的には⾃分でログを⾒る場合もある• ログを⾒る仕組みを⽤意するのも⽅法の1つ
169合わせて読みたいAmazonOpenSearchService(旧Elasticsearch)を利⽤したAWSログの可視化ソリューションOSSだよいい感じだよhttps://dev.classmethod.jp/articles/getting-started-siem-on-amazon-elasticsearch-service/
170SIEM on Amazon OpenSearch ServiceCloudTrailの可視化こんな感じログイン失敗とかルートのログインとかチェックしたい項⽬が最初からダッシュボードに搭載されている
171SIEM on Amazon OpenSearch ServiceS3にログを⼊れればいい感じに取り込んでくれる
172合わせて読みたいfreeeさんがSIEMon AmazonOpenSearchServiceを1年運⽤した結果を紹介しています動画ありhttps://dev.classmethod.jp/articles/security-jaws-22-report/
173おまけの情報サードパーティのRadwareも調査が捗ります
174Radwareによる原因調査⼀番左がインシデントの始まりです
175合わせて読みたいAWS上のインシデントをわかりやすいフロー図にして可視化できるRadware Cloud NativeProtectorを使って攻撃された痕跡を調査してみたhttps://dev.classmethod.jp/articles/getting-start-radware-cloud-native-protector/AWSでコインマイニングされた原因をRadware CNPのフロー図でわかりやすく調査してみたhttps://dev.classmethod.jp/articles/investigate-coin-mining-with-radware-cnp/
1765. [中級]インシデントに対応する まとめどんなインシデントが起こるか知り準備・計画する⼈⼒・⽬grepは⾟いのでインテリジェントなサービスを活⽤しよう︕
1776. [上級]組織全体でガバナンスを効かせる
178課題AWSアカウントやAWS利⽤者が増えて管理が⾏き届かない
179AWSの全体管理これまでの取り組みの応⽤だにゃ︕
180AWSの全体管理• ⾃動化された仕組みで必要なレベルを維持する• セキュリティチェック• CloudFormationによる⾃動化• 全体でレベルを統⼀する• セキュリティ基準• 対応計画
181AWSの全体管理さらに全体管理のサービスも活⽤する
182AWSアカウントの集約管理
183全体管理に利⽤できるサービス• AWS Organizations• CloudFormation StackSets• AWS SSO• AWS Control Tower
184AWS Organizationsとは• 複数のAWSアカウントを束ねる仕組み• OUを定義して配下にアカウントをまとめられる• Service ControlPolicy(SCP)を利⽤して強制的なアクセス制御が可能
185SCPの例• SCPの例• 特定リージョン使⽤禁⽌• CloudTrail無効化禁⽌• GuardDuty無効化禁⽌• S3バケット公開禁⽌• タグのないリソース作成禁⽌• https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies_scps_examples.html• 開発環境 / 本番環境 / 共⽤環境などで使い分ける
186合わせて読みたいOrganizationsについて必要な知識や関連サービスについて⼀通り説明ありhttps://dev.classmethod.jp/articles/lets-study-aws-organizations-basic/
187合わせて読みたいOUの設計パターンを学ぶのにおすすめのブログ全部やらなくていいけど、⼀通り読んで何を採⽤するか検討するといいhttps://dev.classmethod.jp/articles/aws-organizations-best-practice/
188AWS Organizations連携• 様々なAWSサービスと連携して簡単に全体管理できる• AWS SSO• CloudFormation StackSets• GuardDuty• Security Hub• Systems Manager• CloudTrail• Config• などなど
189合わせて読みたい管理している全AWSアカウントのEC2を⼀元的に可視化できるhttps://dev.classmethod.jp/articles/new-aws-systems-manager-explorer/
190CloudFormation StackSets• OrganizationsがなくてもリージョンやアカウントをまたがるCloudFormation展開が可能
191合わせて読みたい簡単に全体を⾃動化https://dev.classmethod.jp/articles/cloudformation-stacksets-sample-sns-topic/
192合わせて読みたいAWS SummitでVisional様が発表した内容Terraformで全体へ展開https://dev.classmethod.jp/articles/aws-summit-online-2020-cus-06/
193AWS SSOAWSアカウントの認証情報を集約できるシングルサインオンの仕組み
194合わせて読みたいよく分かる(かもしれない)図解https://dev.classmethod.jp/articles/aws-sso-wakewakame/
195Jumpアカウント• AWS SSOを利⽤しなくてもSSOする⼿段はある• SAML連携• JumpアカウントへのIAM User集約
196AWS Control TowerAWSのベストプラクティスに従った構成でガードレールを効かせる仕組みAWSOrganizationsと連携する
197Control Towerの役割• ID管理• AWS SSOと連携した認証認可の集約• ガードレール• SCPやConfig Rulesにより違反を防⽌・検知• ベースライン展開• CloudTrailやConfigなど⼀律で展開• ログ管理・監視• Log Archiveアカウントにログ集約• Auditアカウントにアラート集約
198合わせて読みたいControl Towerの必要性や背景、代替案などは全部ここで説明していますhttps://dev.classmethod.jp/articles/jaws-days-2021-control-tower/
199合わせて読みたいControl Towerシリーズ記事いろいろありますhttps://dev.classmethod.jp/tags/aws-control-tower/
200ガバナンスを効かせるのは機能だけではない
201ガバナンスの意義組織の⼈みんなで協⼒にゃ︕
202CCoEによるクラウド活⽤最適化• CCoE: Cloud Center of Excellence• クラウド推進の組織• クラウド利⽤のノウハウを持つ・蓄える・提供する• 企業により定義や構成はさまざま• バーチャル組織で部⾨横断• 情シスから派⽣• DX推進チーム• クラウドのスピードに合わせて変わっていく
203CCoEの例
204CCoEの役割(例)• ガイドライン整備• トレーニング提供• 勉強会主催• 共通インフラ整備• 全体管理• セキュリティ運⽤• などなど
205合わせて読みたいCCoEの1つの実装例⽴ち上げ過程やどのような⽅針で推進したか解説されていますhttps://dev.classmethod.jp/articles/shionogi-devshow/
206AWSに関わる様々な部⾨• セキュリティ部⾨• 定義されたセキュリティ設定の⾃動展開• 調達部⾨• ⾃動化された迅速なAWS環境払い出し• 監査部⾨• ⾃動的にチェックされる定量的な評価• みんな等しく効率化できる
207Cloud Audit Academyクラウドの監査について学ぶためのコンテンツhttps://aws.amazon.com/jp/compliance/auditor-learning-path/
208AWSの全体管理AWSに関わる⼈みんなBuilderだ︕
2096. [上級]組織全体でガバナンスを効かせる まとめ全体管理の仕組みとクラウドの恩恵を受ける組織の形で効率よく全体管理しよう
210まとめ
211まとめ• 変わらないセキュリティの考え⽅を⾝につける• AWSのメリットと基本を押さえる• 便利なサービスを活⽤する• とにかく⾃動化• 組織で最適化する• 全員Builderで全員セキュリティ担当だ