【AWS】GuardDutyでイベント検知したらメール通知する仕組みを作る

GuardDutyとは

GuardDutyは、端的に言うと脅威検知サービスです。攻撃を受けたり、不正な操作が行われた際に、危険を検知してくれるサービスです。AWSを運用するにあたり必須のセキュリティサービスとなります。
詳しくはこちらも参考に

今回は、GuardDutyで攻撃や不正操作を検知したら、いち早く管理者や監視センター宛にメール通知が届くよう設定を行いたいと思います。
EventBridge、SNSと連携しメール通知を行います。

メール通知設定

簡単ではありますが今回設定するイメージです。GuardDutyがイベントを検知すると、EventBridge、SNSと連携しメール通知を行います。

前提
以下を前提に作業をすすめていきます。
・GuardDutyがすでに有効化されている
  ※もしGuardDuty未設定の場合はこちらを参考に
・SNSに設定するアクティブなメールアドレスが用意されている

作業工程
作業工程としては以下の順で進めていきます。
①SNSの設定
②EventBridgeの設定
③GuardDuty通知の確認

①SNSの設定
まずは、SNSの設定をしていきます。
1.AWS コンソールにログインし、「SNS」を選択します。
2.左側メニューの「トピック」をクリック
3.「トピックの作成」をクリックします。

4.トピックの設定
トピック設定画面が開きますので、各入力項目を設定していきます。
タイプ:スタンダードを選択
名前:適宜入力します
表示名:入力はしてもしなくても可

入力は以上となります。最下段の「トピックの作成」をクリックします。
SNSトピックが出来上がります。次にサブスクリプションの設定をします。

5.SNS左側メニュー 「サブスクリプション」をクリック

6.サブスクリプション設定
サブスクリプション設定画面が開きますので各入力項目を設定していきます。
トピック:先程作成したSNSトピックを選択
プロトコル:Eメールを選択
エンドポイント:受信用のメールアドレス※を入力します
※アクティブなメールアドレスを入力してください。後ほど確認のメールがアドレス宛に届きます。

入力は以上となります。最下段の「サブスクリプションの作成」をクリックします。
SNSサブスクリプションが出来上がります。作成されると同時に設定した
メールアドレス宛てに確認のメールが届きます。メールBoxを確認してみましょう。

7.メールの確認
設定したメールアドレスのメールBoxを開きます。
以下のようなメールが届いてますので、本文中の「Confirm subscription」をクリックします。

クリック後、以下画像のようなページに遷移したら確認完了です。

これでSNSの設定は完了です。次にEventBridgeの設定をします。

②EventBridgeの設定
ここからはEventBridgeの設定をしていきます。
1.AWS コンソール「EventBridge」を選択します。
2.左側メニューの「ルール」をクリック
3.「ルールを作成」をクリックします。

設定画面が開きますので、各入力項目を設定していきます。
名前:適宜入力します
説明:入力はしてもしなくても可
イベントバス:default
ルールタイプ:イベントパターンを持つルールを選択
「次へ」

イベントソース:AWSイベントまたはEventBridgeパートナーイベントを選択

サンプルイベントは空白でもよいです。
もし、サンプルを確認したい場合は入力してみましょう。下記画像のように入力するとGuardDutyが検知した際にどのようなイベントが発生するかを確認することができます。(JSON形式)

メソッド:パターンフォームを使用する
イベントソース:AWSのサービス
AWSのサービス:GuardDuty
イベントタイプ:GuardDuty Finding
イベントパターン:自動でJSONが書き込まれますのでそのまま
「次へ」

イベントパターンについては、デフォルトの記載のままだと、検知したすべてを通知することになります。以下はすべての検知を通知する例です。

{
  "source": ["aws.guardduty"],
  "detail-type": ["GuardDuty Finding"]
}

※※※ もし、通知をフィルタリングしたい場合、危険度Midium以上とか危険度HIGH以上に限定して通知するというような場合は、以下のようにすることもできます。例ですが、危険度4以上(Midium以上)の場合に通知する設定です。severityでフィルタリングをかけることができます。

{
  "source": ["aws.guardduty"],
  "detail-type": ["GuardDuty Finding"],
  "detail": {
    "severity": [{
      "numeric": [">=", 4]
    }]
  }
}


ターゲットタイプ:AWSのサービス
ターゲットを選択:SNSトピック
トピック:先程作成したSNSトピックを選択
「次へ」

タグの設定はそのまま「次へ」をクリックします。
最終確認画面がでますので、最下段「ルールを作成」をクリックします。
イベントが出来上がります。これで準備は完了です。


③GuardDuty通知の確認
実際にメール通知されるか試してみます。GuardDuty上で擬似的なイベントを発生させてメール通知を確認します。
1.AWS コンソール「GuardDuty」を選択します。
2.左側メニューの「設定」をクリック
3.「検出結果サンプルの生成」をクリックします。

この作業によりサンプルのアラートがGuardDutyで検出されます。同時にメール通知もされるはずです。

4.検出結果の確認
GuardDuty左側メニュー → 検出結果をクリックします。
下記画像のようにたくさんの検出結果が表示されます。(166件検知してますね)
検出結果タイプ欄には、[例] XXXXXXXXXXXXXXXX となっていますので、サンプルだということが分かります。

5.メールの確認
通知メールが届いているか確認します。SNSで設定した受信用メールBoxを開きます。サンプル検知の通知ですが100通以上のメールが届くことになります。
件名が「AWS Notification Message」
メール本文はJSON形式のこんなメールが届きます。。

※※※ ちなみに、上記メールは、サンプルですがEC2がDos攻撃に加担しているようだと通知してくれています。
イベントタイプは、「type」欄「"Backdoor:EC2/DenialOfService.Dns"」の記載から判断することができます。※※※
イベントの詳細や対処方法はAWSがまとめていますのでこちらを参考にするとよいでしょう。

メール通知確認は以上となります。
メール本文は若干見やすくなるようカスタマイズもできるのですが、それは次回にでも紹介したいと思います。


まとめ

GuardDutyのメール通知設定いかがだったでしょうか。
AWS運用において攻撃や不正操作などが行われた際は、いち早く発見し対処することが大事ですので、今回紹介した通知機能は、漏れずに設定していただければと思います。


参考


関連記事

【初めてのAWS】GuardDutyの紹介
【AWS】GuardDutyの有効化
【AWS】GuardDutyでイベント検知したらメール通知する仕組みを作る
【AWS】GuardDutyの通知メールをカスタマイズしてみる


この記事が気に入ったらサポートをしてみませんか?