
Amazon GuardDutyを使ってみた
2023.08.15
AWSにおけるセキュリティ対策サービスの一つであるAmazon GuardDutyをご紹介します。
Amazon GuardDutyの初期設定方法から活用までを記載しておりますので、Amazon GuardDutyについて知りたい方だけでなく、導入予定の方にも参考となる内容となっております。
はじめに
AWS(Amazon Web Services)を利用する上で、セキュリティは最優先事項です。AWS上にシステムを簡単に構築できる反面、効果的なセキュリティ対策のために、具体的にどのサービスを活用したらよいか分からないと悩んでいる方も多くいらっしゃるのではないでしょうか。
そこで今回は、AWSセキュリティ対策サービスの中から、非常に簡単に開始でき、AWSのベストプラクティスにおいてもAWSの全アカウントでの有効化が推奨されているAmazon GuardDutyについてご紹介します!
Amazon GuardDutyとは?
Amazon GuardDutyは、AWSアカウントとAWS上に構築したシステムに対する悪意のあるアクティビティや不正な動作を継続的にモニタリングし、セキュリティ上の脅威を検出してくれるサービスです。
詳しくは以下サイトもご覧ください。
AWSユーザーがAmazon GuardDutyを利用するべき3つの理由とは?
https://ops.jig-saw.com/tech-cate/guardduty
Amazon GuardDuty は、AWS CloudTrailイベントログ、VPC フローログ、DNS ログなどAWS上のさまざまなログを分析し、処理を行い継続的にモニタリングを行います。また、Amazon EC2インスタンスなどにアタッチされたAmazon EBSボリュームをスキャンすることで、マルウェアの潜在的な存在を検出するMalware Protectionといった機能も備えています。
さらに、Amazon GuardDutyで検出した脅威の情報を、Amazon EventBridgeでフィルタリングし、Amazon SNSでメール通知する事が可能です。
設定も非常に簡単で、すぐに開始が可能ですので、早速設定してみましょう!
参考サイト
https://aws.amazon.com/jp/guardduty/
https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/what-is-guardduty.html
https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/malware-protection.html
Amazon GuardDutyの初期設定
それではここからAmazon GuardDutyの初期設定方法について説明します。
30日間の無料トライアルが利用可能ですので、試しに利用してみることもできますね。
AWSコンソールへログインし、検索窓からAmazon GuardDutyを検索し、Amazon GuardDutyの開始画面へ遷移します。
Amazon GuardDutyは、リージョナルサービスのため、リージョンごとの有効化設定が必要です。
今回は東京リージョンで設定していきます。
「今すぐ始める」をクリックします。

続いて、以下の画面が表示されます。
サービスのアクセス権限に関する注意事項が表示されますが、ログ取得のための、各サービスへのアクセス権限の付与自体はAmazon GuardDutyを有効化すると自動で行われますので、追加の設定を行う必要はありません。
「GuardDutyを有効にする」をクリックします。

次の画面で、「GuardDutyが正常に有効になりました。」の表示とともに検出結果のダッシュボードが表示されれば、有効化は完了です。
Amazon GuardDutyの開始画面からわずか2クリックで開始できます!
この時点からログの分析が開始されます。
以上でAmazon GuardDutyの初期設定は完了です。

なお、検出結果をS3バケットへエクスポートしたい場合は、「設定」 > 「検出結果のエクスポートオプション」より設定可能です。
こちらでは、検出結果の更新頻度を変更(6時間、1時間、15分が選択可能)することも可能です。

Amazon GuardDutyの活用
Amazon GuardDuty自体は、ログを分析し脅威検出を行うサービスです。そのため、検出した脅威を通知し、すぐに気づけるようにすることでセキュリティ対策に活用できます。
今回は、Amazon GuardDutyで検出した脅威の情報を、Amazon EventBridgeでフィルタリングし、Amazon SNSでメール通知する以下の構成を作成してみましょう。

事前準備として、Amazon SNSにてトピックとサブスクリプションを作成しておきます。サブスクリプションには、Amazon GuardDutyの検出結果を送付したいメールアドレスを設定します。
トピックとサブスクリプションの作成が完了したら、Amazon EventBridgeにて設定を行います。
Amazon EventBridge開始画面にて、「イベントブリッジルール」を選択し、「ルールを作成」をクリックします。

ルールの詳細を設定します。
任意の名前を入力し、今回はその他の値はデフォルトとします。「次へ」をクリックします。

イベントパターンを構築します。
イベントソースは「AWS イベントまたは EventBridge パートナーイベント」を選択します。
サンプルイベントタイプにて、「AWSイベント」を選択し、サンプルイベントで「GuardDuty Finding」を選択します。これにより、GuardDutyの脅威検知のサンプルイベントの確認が可能になります。

続いて、作成のメソッドで「パターンフォームを使用する」を選択します。
イベントソースで「AWSのサービス」、AWSのサービスで「GuardDuty」、イベントタイプに「GuardDuty Finding」をそれぞれ選択します。
選択後、イベントパターンに「GuardDuty Finding」でフィルタリングされたパターンが表示されます。
しかし、この設定ではGuardDutyで検知した脅威を全て通知してしまうため、任意の内容に編集していきます。
今回は、「severity(脅威の重要度レベル)」が高に分類される7以上の物のみを通知するよう設定します。

「パターンを編集」をクリックし、イベントパターンを以下の通りに編集します。
編集後、「次へ」をクリックします。
{
"source": ["aws.guardduty"],
"detail-type": ["GuardDuty Finding"],
"detail": {
"severity": [{
"numeric": [">=", 7]
}]
}
}

続いて、ターゲットを選択すなわちイベントの通知先の設定をします。
ターゲットタイプは、「AWSのサービス」を選択します。
ターゲットを選択にて、「SNSトピック」を選択し、トピックには事前準備で作成したトピックを選択します。
選択後、「次へ」をクリックします。

次の画面でタグの設定画面に移動しますが、今回は設定せず、「次へ」をクリックします。
レビューと作成画面にて設定内容を確認し、問題なければ「ルールの作成」をクリックします。

以下のようにルールが作成されれば、設定完了です。お疲れさまでした~!!

なお、ここまでの設定の検証は、「Amazon GuardDuty」 > 「設定」 > 「検出結果サンプルの生成」を選択し、検出結果のサンプルを起因として、メール通知がされるかどうかを確認することで実施可能です。
但し、設定内容によっては、一度に大量のメールを受信することになるためご注意ください。

参考サイト
https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_findings_cloudwatch.html
終わりに
本記事のまとめ
今回は、AWSにおけるセキュリティ対策サービスの一つであるAmazon GuardDutyの初期設定と活用方法についてご紹介しました。
非常に簡単に開始できるだけでなく、今回ご紹介できなかった他のAWSサービスと連携することで、より強固なセキュリティ対策が可能となります。この機会にご活用してみてはいかがでしょうか?
JIG-SAWのsafingとOPSサービスについて
また、JIG-SAWではAmazon GuardDutyなどを活用し、AWSの脆弱性や攻撃をまとめて管理できるSafingというサービスをご提供しております。
さらに、今回ご紹介したAmazon GuardDutyでのメール通知の仕組みとJIG-SAW OPSにてご提供する弊社サーバーエンジニアによる有人監視を組み合わせることで24時間365日の監視体制が確立可能です。
ご要望に合わせて最適なご提案をさせていただく事も可能ですので、お気軽にご相談ください。