先日、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のアラートをすべて受け取るようにしていると、毎日数通以上のメールがきてしまうと思いますので、ある程度重要度の高いアラートのみ通知させた方がよさそうです。