GuardDutyを有効化することになった。GuardDuty基礎知識を最短で習得したい
AWS構築案件でセキュリティ関連をすべて任された(当然GuardDutyは有効化する)
本記事ではGuardDutyを理解して正しく扱えるようになるために必要な知識の習得方法を纏めています。
OrganizationsやSecurityHubなど各サービスとの連携については扱いません。
本記事はPCI DSS(クレカ情報を保持する場合に満たすべきセキュリティ基準)は考慮不要というセキュリティレベルでの経験を基に記載しました。
システムのセキュリティレベルが高い場合は参考にできないかもしれません。
その場合はセキュリティエンジニアやAWSの方にレビュー頂けるのであれば安心かと思います。
筆者はインフラエンジニア歴10年以上です。
AWS案件は上流から下流まで幅広く対応してきました。
ご参考までですが、筆者のスキルについての詳細は以下に記載しております。
AWSセキュリティのバイブルである「AWSではじめるクラウドセキュリティ」では
GuardDutyに関することは5.2章に記載されていますが、
16ページしかないことから、GuardDutyで学ぶ必要がある全体量は多くないです。
https://amzn.asia/d/er6PaSJ
簡単!GuardDuty導入スキル習得方法まとめ
GuardDutyの概要
GuardDutyの概要理解にあたり、以下を理解すれば良いと思います。
- GuardDuty のメリット
- 検出結果(検出タイプ)
- GuardDuty のオプション機能
- Amazon GuardDuty の開始方法
この記事がGuardDutyについて網羅的に書かれていましたので、まずはこちらを参考にして概要理解をしましょう。
マルウェア検知(Malware Protection機能)について使うかどうか迷っている場合は以下も参考にできます。
Malware Protection機能を有効にしてもマルウェア対策ソフトが不要になるわけではないことを理解できれば良いです。
逆にマルウェア対策ソフトを入れていたらMalware Protection機能を有効にする必要は薄いように感じます。
GuardDuty導入事例
AWS公式の事例を見るとWarner BrosやAppsFlyerは大企業であるから利用していると思ってしまいそうですが、
ほとんどのケースで有効化しておくべきサービスだと捉えておいて良いかと思います。
事例1:Warner Bros Discovery quickly scales container threat detection with Amazon GuardDuty
事例2:AppsFlyer Automates Malicious Activity Detection on AWS
→AppsFlyerはGuardDutyの検知量をチューニングしてうまく活用しています。
GuardDuty運用のポイント
GuardDutyは通知サービスであるため、監視の通知をどのように行うかがポイントになります。
特に検知したい内容が決まっていない場合は、
AWSが定義してくれている「重要度」に沿って対応方針を定めるのが良いです。
例えば「重要度HIGHはすでにサーバーが乗っ取られたことを示すものだから夜間であっても即時確認とする」などです。
Lambdaによる自動修復までやった方が良いかは相談の結果やらない方針となりました。
(次回またチャンスがあれば検討したいと思います。)
この記事内の資料P46にも重要度で通知先を分けた事例が紹介されています。
とても参考になるので一読しておきましょう。
GuardDutyとの統合(ControlTower、SecurityHub、Detective)は別途学ぶ
本記事では触れませんが、GuardDutyを有効活用するにあたり、ControlTower、SecurityHub、Detectiveについても学んでおくとさらに効率よく運用できるようになります。
ハンズオン
AMAZON GUARDDUTY HANDS ON
GuardDutyの理解が深まる良いハンズオンでした。
基本であるEC2、S3、IAMそれぞれのタイプの検知、修復から
メール通知の整形(EventBridgeのインプットトランスフォーマー)やLambdaによる自動修復まで含む深い内容です。
紹介するハンズオンの中では一番おすすめのハンズオンです。最低これだけやるでも良いと思います。
ただし注意点が2点あります。
・注意点1
ACL利用が非推奨になったため
Bucket cannot have ACLs set with ObjectOwnership’s BucketOwnerEnforced setting
というエラーが発生
サンプルテンプレートの52行目をコメントアウトして解決しました
# AccessControl: LogDeliveryWrite
・注意点2
「5.1.脅威の生成」で以下のコマンドはJSONの文法エラーとなる
aws dynamodb put-item –table-name GuardDuty-Example-Customer-DB –item ‘{“name”:{“S”:”Joshua Tree”},”state”:{“S”:”Michigan”},”website”:{“S”:”https://www.nps.gov/yell/index.htm”}}’ –profile badbob
クオーテーションの扱いが異なることが原因と思われる
すべてのクオートをダブルクオートで統一し、内側のダブルクオートはエスケープする
aws dynamodb put-item –table-name GuardDuty-Example-Customer-DB –item “{\”name\”:{\”S\”:\”Joshua Tree\”},\”state\”:{\”S\”:\”Michigan\”},\”website\”:{\”S\”:\”https://www.nps.gov/yell/index.htm\”}}” –profile badbob
Security #1 アカウント作成後すぐやるセキュリティ対策
GuardDutyの勉強なら「7.脅威検知」だけでよい。動画(8:49)で分かりやすい。
(ハンズオンしなくても聞くだけでも良いかも)
さいごに
セキュリティ知識は広範囲であるため、セキュリティ専門のエンジニアが担当するものなのですが、
GuardDutyなどの便利サービスを活用することでAWSエンジニアが片手間(?)でセキュリティ設計を行えるようになってきています。
ただし、セキュリティレベルは高くない(PCI DSSは考慮不要というセキュリティレベル)ことが前提であると筆者は感じています。
冒頭にも書きましたが、セキュリティレベルが高い案件の場合はセキュリティ専門の方に担当頂くか、最低でもレビューはして頂くようにしましょう。
コメント