カスタム応答の作成先 GuardDuty 発見事項 Amazon CloudWatch Events - Amazon GuardDuty

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

カスタム応答の作成先 GuardDuty 発見事項 Amazon CloudWatch Events

GuardDuty では、結果が変更されると、Amazon CloudWatch Events に基づいて通知を送信できます。CloudWatch イベントを作成する変更の検出には、新しく生成された結果または新しく集計された結果が含まれます。

GuardDuty の検索結果にはそれぞれ結果 ID が割り当てられます。GuardDuty によって、一意の結果 ID を持つ各結果に対して CloudWatch イベントが作成されます。その後に発生した既存の結果は、すべて元の結果に集約されます。

CloudWatch イベントを GuardDuty とともに使用することにより、タスクを自動化し、GuardDuty の結果によって明らかになったセキュリティ上の問題に対応できます。

CloudWatch イベント に基づいて GuardDuty の結果について通知を受け取るには、CloudWatch イベント ルールおよび GuardDuty のターゲットを作成する必要があります。このルールでは、CloudWatch は GuardDuty が生成する結果の通知を、ルールで指定されたターゲットに送信できます。詳細については、の作成 CloudWatch イベント のルールとターゲット GuardDuty (CLI) を参照してください。

CloudWatch イベント 通知頻度 GuardDuty

一意の結果 ID を持つ新しく生成された結果の通知 – GuardDuty は CloudWatch イベントに基づいて結果の 5 分以内に通知を送信します。このイベント (およびこの通知) には、この結果が一意の ID を伴って生成されてから最初の 5 分に発生したこの結果のそれ以降のすべての発生も含まれています。

重要

新しく生成される結果に関して送信される通知のデフォルトの頻度 (5 分) をカスタマイズすることはできません。

その後の結果の発生に関する通知 – デフォルトでは、一意の結果 ID を持つ結果ごとに、GuardDuty は、6 時間間隔で行われる特定の結果のその後の発生を単一のイベントに集約します。その後、GuardDuty は、このイベントに基づいてこれらの後続の発生に関する通知を送信します。つまり、デフォルトでは、既存の結果の後続の発生は、GuardDuty によって、CloudWatch イベントに基づいて 6 時間ごとに通知が送信されます。

重要

その後の結果の発生に関する通知のデフォルトの頻度はカスタマイズできます。有効な値は、15 分、1 時間、またはデフォルトの 6 時間です。この値は、CreateDetector または UpdateDetector API オペレーションを使用して更新できます。GuardDuty コンソールからこの値を更新することもできます。[設定] を選択し、[CloudWatch イベント] で、[更新された結果] プルダウンメニューからいずれかの値を選択します。

からのユーザーのみ master アカウントは、CloudWatch Eventsに後続の所見発生について送信される通知のデフォルトの頻度をカスタマイズできます。メンバーアカウントのユーザーはこの頻度値をカスタマイズできません。によって設定された周波数値 master 自身の口座にある口座が、 GuardDuty すべてのメンバーアカウントの機能。つまり、 master アカウントはこの頻度の値を1時間に設定します。また、すべてのメンバーアカウントは、CloudWatchイベントに送信された後続の所見発生に関する通知の頻度を1時間とします。詳細については、での複数のアカウントの管理 Amazon GuardDuty を参照してください。

監視アーカイブ済み GuardDuty 発見事項 CloudWatch イベント

手動でアーカイブされた結果の場合、これらのうち最初の結果と、それ以降に発生したすべての結果 (アーカイブ完了後に生成された結果) は、前述のとおり頻度ごとに CloudWatch イベント に送信されます。

自動アーカイブされた結果の場合、これらのうち最初の結果と、それ以降に発生したすべての結果 (アーカイブ完了後に生成された結果) は、CloudWatch イベント イベントに送信されません

CloudWatch のイベント形式 GuardDuty

CloudWatch の GuardDuty イベントには以下の形式があります。

{ "version": "0", "id": "cd2d702e-ab31-411b-9344-793ce56b1bc7", "detail-type": "GuardDuty Finding", "source": "aws.guardduty", "account": "111122223333", "time": "1970-01-01T00:00:00Z", "region": "us-east-1", "resources": [], "detail": {GUARDDUTY_FINDING_JSON_OBJECT} }
注記

詳細値は、配列内の複数の所見をサポートできる「所見」値を返すのではなく、単一の所見のJSON詳細をオブジェクトとして返します。

GUARDDUTY_FINDING_JSON_OBJECT に含まれているすべてのパラメータの完全なリストについては、「GetFindings」を参照してください。GUARDDUTY_FINDING_JSON_OBJECT に表示される id パラメータは、上記で説明した結果 ID です。

の作成 CloudWatch イベント 通知するルール GuardDuty 所見(コンソール)

次の手順を使用して、重大度が中~高の結果について、選択した E メールアドレスへの自動 E メール通知を設定できます。

設定 Amazon SNS トピックとエンドポイント

まず、Amazon Simple Notification Service でトピックを設定し、E メールアドレスをエンドポイントとして追加する必要があります。詳細については、 SNSガイド.

  1. https://console.aws.amazon.com/sns/v3/home で Amazon SNS コンソールにサインインします。

  2. ナビゲーションペインから [トピック] を選択し、[トピックの作成] を選択します。

  3. [トピックを作成] セクションで、トピック名を入力します。たとえば、 GuardDuty。 その他の詳細はオプションです。

  4. [トピックの作成] を選択します。新しいトピックのトピック詳細が開きます。

  5. [Subscriptions (サブスクリプション)] セクションで、[Create Subscription (サブスクリプションの作成)] を選択します。

    1. [プロトコル] メニューから [E メール] を選択します。

    2. [エンドポイント] フィールドに、通知を受信する E メールアドレスを追加します。

      注記

      作成後、E メールクライアントを通じてサブスクリプションを確認する必要があります。

    3. [Create subscription (サブスクリプションの作成)] を選択します。

  6. 受信トレイでサブスクリプションのメッセージを確認し、[Confirm Subscription (サブスクリプションの確認)] を選択します。

セットアップ CloudWatch のイベント GuardDuty 所見

  1. https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

  2. ナビゲーションペインから [ルール] を選択し、[ルールの作成] を選択します。

  3. [サービス名] メニューから [GuardDuty] を選択します。

  4. [イベントタイプ] メニューから [GuardDuty Finding (GuardDuty の結果)] を選択します。

  5. [イベントパターンのプレビュー] の [編集] を選択します。

  6. 以下の JSON コードを [イベントパターンプレビュー] に貼り付け、[保存] を選択します。

    { "source": [ "aws.guardduty" ], "detail-type": [ "GuardDuty Finding" ], "detail": { "severity": [ 4, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9 ] } }
    注記

    上記のコードでは、中〜高の結果が警告されます。

  7. [ターゲット] セクションで、[ターゲットの追加] をクリックします。

  8. [Select Targets (ターゲットの選択)] メニューから、[SNS トピック] を選択します。

  9. [Select Topic (トピックの選択)] で、ステップ 1 で作成した SNS トピックの名前を選択します。

  10. [入力の設定] を展開して、[インプットトランスフォーマー] を閉じます。

  11. 次のコードをコピーして、[Input Path (入力パス)] フィールドに貼り付けます。

    { "severity": "$.detail.severity", "Finding_ID": "$.detail.id", "Finding_Type": "$.detail.type", "region": "$.region", "Finding_description": "$.detail.description" }
  12. 次のコードをコピーして [Input Template (入力テンプレと)] フィールドに貼り付け、E メールをフォーマットします。

    "You have a severity <severity> GuardDuty finding type <Finding_Type> in the <region> region." "Finding Description:" "<Finding_description>. " "For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=<region>#/findings?search=id%3D<Finding_ID>"
  13. [詳細の設定] をクリックします。

  14. [Configure rule details (ルール詳細の設定)] ページでルールの [名前] と [説明] を入力してから、[ルールの作成] を選択してルールを有効化します。

の作成 CloudWatch イベント のルールとターゲット GuardDuty (CLI)

以下の手順は、AWS CLI コマンドを使用して、GuardDuty の CloudWatch イベント ルールおよびターゲットを作成する方法を示します。具体的には、ルールを作成して、CloudWatch で、GuardDuty が生成するすべての結果のイベントを送信し、ルールのターゲットとして AWS Lambda 関数を追加する方法について説明します。

注記

Lambda 関数に加えて、GuardDuty および CloudWatch ではターゲットタイプとして、Amazon EC2 インスタンス、Amazon Kinesis ストリーム、Amazon ECS タスク、AWS Step Functions ステートマシン、run コマンド、および組み込みターゲットをサポートします。

GuardDuty の CloudWatch イベント ルールおよびターゲットは、CloudWatch イベント コンソールで作成することもできます。詳細および詳細な手順については、以下を参照してください。 の作成 CloudWatch イベント イベントでトリガーするルール. [Event Source] セクションの [Service name] で GuardDuty、[Event Type] で GuardDuty Finding を選択します。

ルールおよびターゲットを作成するには

  1. GuardDuty が生成するすべての結果のイベントを CloudWatch から送信するルールを作成するには、次の CloudWatch CLI コマンドを実行します。

    aws events put-rule --name Test --event-pattern "{\"source\":[\"aws.guardduty\"]}"

    重要

    GuardDuty で生成された結果のサブセットにのみイベントを送信するよう CloudWatch に指示できるように、ルールをさらにカスタマイズできます。このサブセットは、ルールで指定されている結果の属性に基づきます。たとえば、次の CLI コマンドを使用して、CloudWatch で 重要度が 5 または 8 の GuardDuty 結果のイベントのみ送信できるようにルールを作成します。

    aws events put-rule --name Test --event-pattern "{\"source\":[\"aws.guardduty\"],\"detail-type\":[\"GuardDuty Finding\"],\"detail\":{\"severity\":[5,8]}}"

    この目的のために、JSON で使用可能な任意のプロパティ値を使用して GuardDuty の結果を取得できます。

  2. ステップ 1 で作成したルールのターゲットとして Lambda 関数をアタッチするには、次の CloudWatch CLI コマンドを実行します。

    aws events put-targets --rule Test --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:<your_function>

    注記

    上記コマンド内の <your_function> を GuardDuty イベントの実際の Lambda 関数に置き換えてください。

  3. ターゲットを呼び出す上で必要なアクセス許可を追加するには、次の Lambda CLI コマンドを実行します。

    aws lambda add-permission --function-name <your_function> --statement-id 1 --action 'lambda:InvokeFunction' --principal events.amazonaws.com

    注記

    上記コマンド内の <your_function> を GuardDuty イベントの実際の Lambda 関数に置き換えてください。

    注記

    上記の手順では、CloudWatch イベントをトリガーするルールのターゲットとして Lambda 関数を使用しています。他の AWS リソースをターゲットとして設定して、CloudWatch イベント をトリガーすることもできます。詳細については、「PutTargets」を参照してください。