AmazonのGuardDutyを有効化してみた(その3.メール通知)

Pocket

先日、GuardDuty を有効化しましたが、今の設定では、AWSにログインしない限り、不正なアクセスに気がつくことができません。
そこで、GuardDuty でアラートが発生した際にメールが送信されるように設定してみました。

SNSとCloudWatchを利用しメールを送信

SNSとCloudWatchを利用することで、GuardDutyで検知したアラートをメールで通知することが可能です。

1.Amazon SNSでトピックの作成

まず、Amazon SNSの画面に移動します。すると以下の画面が表示されるので、指示に従いトピック(メッセージチャネル)を作成しましょう。

トピック名について

トピック名にスペース(空白)は使えないようですので、注意してください。

トピック名を入力し、「次のステップ」を押すと以下の画面が表示されます。いくつか設定項目がありますが、トピック名以外はオプションなので、そのまま「トピックの作成」ボタンを押しても問題ありません。

すると以下のようにトピックが作成されます。

2.Amazon SNSでサブスクリプションの作成

トピックを作成した後は、サブスクリプションの作成を行います。
ここでは、作成したトピックで利用するプロトコル(Eメール)やエンドポイント(送信先)を指定します。

プロトコルとエンドポイントを指定後、「サブスクリプションの作成」を実行すると、サブスクリプションが以下のように作成されます。

この時だと思いますが(若干うろ覚え)エンドポイントに指定したメールアドレスに確認のメールが届きますので、必ず「Confirm subscription」のリンクをクリックしてください。

メールのリンクをクリックすることで、先ほど作成したトピックのステータスが「確認済み」となります。

これをやっておかないと、次のCloudWatchの設定をいくらやってもメールが届きません。(私はこれで少しはまりました。)

3.ClowdWatchでルール作成

これでメールを送信する準備が整いましたので、次にCloudWatchを使ってGuardDutyのイベントを送信対象とするルールを作成します。
以下のCloudWatch画面の左ペインから「ルール」を選択します。

すると、以下の画面が表示されますので、「ルールの作成」ボタンを押します。

ボタンを押すと、以下の画面が表示されますので、イベントソースとターゲットを指定します。

指定の方法は以下の通りです。

イベントソースとして「イベントパターン」を選択後、以下の通り設定します。
・サービス名:「GuardDuty」
・イベントタイプ:「GuardDuty Finding」
・イベントパターンのプレビュー:特に編集しなければすべてのGuardDutyのアラートが送信されます。編集する場合は、以下を参考にしてください。

イベントパターンのプレビューの編集例
例)7.0〜8.9までの重要度のアラートが発生した場合のみ通知したい場合

{ “source”: [ “aws.guardduty” ],
“detail-type”: [ “GuardDuty Finding” ],
“detail” : { “severity”: [7.0,7.1,7.2,7.3,7.4,7.5,7.6,7.7,7.8,7.9,8.0,8.1,8.2,8.3,8.4,8.5,8.6,8.7,8.8,8.9 ] }
}

ターゲットとして「SNSトピック」を選択後、以下のとおり設定します。
・トピック:1.で設定したトピック名
・入力の設定:インプットトランスフォーマー
・最初のテキストフィールド記入例:
{“type”:”$.detail.type”,”title”:”$.detail.title”,”description”:”$.detail.description”,”severity”:”$.detail.severity”,”updatedAt”:”$.detail.updatedAt”,”createdAt”:”$.detail.createdAt”,”arn”:”$.detail.arn”}
・次のテキストフィールド記入例:
“GuardDuty で以下の脅威を検知しました。”
“種別  :””タイトル:”
“説明  :<description>”
“重要度 :<severity> “
“更新日時:<updatedAt>”
“作成日時:<createdAt>”
“ARN   :<arn>”

以上を設定後、右下の「設定の詳細」ボタンを押すと、以下の画面が表示させますのでルールの名前などを設定し、「ルールの作成」ボタンを押します。

「ルールの作成」ボタンを押すと、以下のようにルールが作成されます。

4.GuardDutyのアラートを待つ

以上でGuardDutyでアラートが発生するとエンドポイントで指定したメールアドレスにアラートメールが届くようになっているはずです。

もし早く確認したければ、GuardDutyの画面の左ペインから「設定」を選択し、その中から「結果サンプルの生成」を押せば擬似的にアラートを出すことができますが、大量に出てしまうので、個人的にあまりおすすめはしません。

ちなみにGuardDutyのアラートをすべて受け取るようにしていると、毎日数通以上のメールがきてしまうと思いますので、ある程度重要度の高いアラートのみ通知させた方がよさそうです。