Amazon GuardDuty の Malware Protection - Amazon GuardDuty

Amazon GuardDuty の Malware Protection

GuardDuty Malware Protection は Amazon GuardDuty の拡張機能です。GuardDuty は、マルウェアによって既に侵害されたリソース、または危険にさらされているリソースを特定します。Malware Protection は GuardDuty のサポート機能として、この侵害の原因として疑われるマルウェアを検出します。

Malware Protection を有効にして、GuardDuty で Amazon EC2 インスタンスまたはコンテナワークロードの疑わしい動作が検出されると、GuardDuty Malware Protection が、影響を受ける EC2 インスタンスまたはコンテナワークロードにアタッチされた Amazon Elastic Block Store (EBS) ボリュームでエージェントレススキャンを自動的に開始し、マルウェアを検出します。詳細については、「 Malware Protection スキャンを開始する GuardDuty の検索結果」を参照してください。GuardDuty Malware Protection では、スキャンするリソースまたはスキップするリソースを選択することもできます。GuardDuty Malware Protection では、検索から除外することを選択したリソースに対して自動スキャンが開始されない場合があります。スキャンでマルウェアが検出された場合、GuardDuty コンソールでその脅威に関する詳細な Malware Protection の結果を表示できます。

Malware Protection はオプションの機能で、リソースのパフォーマンスに影響を与えないように設計されています。Malware Protection 機能は、任意のアカウントまたは利用可能な AWS リージョン でいつでも開始または停止することができます。デフォルトでは、既存の GuardDuty のお客様は Malware Protection を 30 日間お試しいただけます。新しい GuardDuty アカウントでは、Malware Protection がすでに有効になっており、30 日間の試用期間に含まれています。詳細については、「GuardDuty コストの見積もり」を参照してください。

GuardDuty での Malware Protection の仕組み

GuardDuty Malware Protection は、侵害された可能性がある Amazon EC2 インスタンスおよびコンテナワークロードにアタッチされた EBS ボリューム上のマルウェアをスキャンして検出します。以下の画像は、GuardDuty で Malware Protection がどのように機能するかを説明したものです。


        EC2 コンテナと EBS ボリュームで自動スキャンを開始するには、ワンクリックで Malware Protection を有効にします。スキャンはオフラインで実行され、パフォーマンスに影響はありません。他の GuardDuty の検出結果と同様に、Security Hub、EventBridge、Detective と統合することで、マルウェア関連の検出結果を確認できます。

GuardDuty がマルウェアを示す疑わしいアクティビティや潜在的に悪意のあるアクティビティを検出すると、Malware Protection は、GuardDuty が検出したそのようなアクティビティのリソースにアタッチされた、関連する EBS ボリュームのスナップショットを作成し、GuardDuty サービスアカウントと共有します。次に、Malware Protection は、サービスアカウントで、それらのスナップショットを使用して暗号化された EBS ボリューム のレプリカを作成します。

スキャンオプション に基づいて、マルウェア検出のための自動エージェントレス検索が開始されます。スキャンが完了すると、GuardDuty は暗号化された EBS ボリュームのレプリカと EBS ボリュームのスナップショットを削除します。マルウェアが見つかり、スナップショットの保持 の設定を有効にすると、EBS ボリュームのスナップショットは削除されず、自動的に AWS アカウントで保持されます。マルウェアが見つからない場合、スナップショットの保持設定に関係なく、EBS ボリュームのスナップショットは保持されません。デフォルトでは、スナップショットの保持設定はオフになっています。スナップショットとその保持にかかるコストについては、「Amazon EBS の料金」を参照してください。

GuardDuty は、スキャンする各 EBS ボリュームのレプリカを最大 1 日間保持します。ただし、EBS ボリュームのレプリカとそのマルウェアスキャンでサービスの停止や障害が発生した場合は、その EBS ボリュームを最大 7 日間保持します。ボリューム保持期間が延長されている間に、サービスの停止または障害のトリアージと対処をしてください。GuardDuty Malware Protection は、停止または障害に対処した後、または延長された保持期間が経過すると、EBS ボリュームのレプリカを削除します。

注記

GuardDuty が結果を生成する各 EC2 インスタンスおよびコンテナワークロードに対して、GuardDuty Malware Protection は 24 時間に 1 回だけスキャンを開始します。

マルウェアスキャンが完了したら、次のリソースにアクセスして、検出結果の詳細と対応する CloudWatch ログイベントを詳細に理解できます。

Malware Protection でサポートされるボリューム

GuardDuty は、暗号化されていないボリュームと、カスタマーマネージドキーで暗号化されたボリュームの両方をサポートします。EBS ボリュームがカスタマーマネージドキーで暗号化されている場合、GuardDuty は同じキーを使用して EBS ボリュームのレプリカを暗号化します。暗号化されていない EBS ボリュームの場合、GuardDuty は独自のキーを使用して EBS ボリュームのレプリカを暗号化します。GuardDuty Malware Protection は、Amazon EBS 暗号化を使用して暗号化された EBS ボリュームをスキャンしません。GuardDuty Malware Protection は、AWS アカウントにある EC2 インスタンスにアタッチされた EBS ボリュームのスキャンをサポートします。

AWS リージョン ごとの GuardDuty サービスアカウント

スナップショットが作成され、GuardDuty サービスアカウントと共有されると、CloudTrail ログに新しいイベントが作成されます。このイベントは、対応する snapshotId および userId (その AWS リージョン の GuardDuty サービスアカウント) を指定します。次の例は、ModifySnapshotAttribute リクエストの request を示す CloudTrail イベントのスニペットです。

"requestParameters": { "snapshotId": "snap-1234567890abcdef0", "createVolumePermission": { "add": { "items": [ { "userId": "111122223333" } ] } }, "attributeType": "CREATE_VOLUME_PERMISSION" }

userId は GuardDuty サービスアカウントであり、選択したリージョンによって異なります。次の表は、各リージョンの GuardDuty サービスアカウントを示します。

AWS リージョン リージョンコード GuardDuty サービスアカウント ID (userId)

米国東部 (バージニア北部)

us-east-1

652050842985

米国東部 (オハイオ)

us-east-2

178123968615

米国西部 (北カリフォルニア)

us-west-1

669213148797

米国西部 (オレゴン)

us-west-2

447226417196

アジアパシフィック (ムンバイ)

ap-south-1

913179291432

アジアパシフィック (大阪)

ap-northeast-3

089661699081

アジアパシフィック (ソウル)

ap-northeast-2

039163547507

アジアパシフィック (東京)

ap-northeast-1

874749492622

アジアパシフィック (シンガポール)

ap-southeast-1

247460962669

アジアパシフィック (シドニー)

ap-southeast-2

124839743349

カナダ (中部)

ca-central-1

175877067165

欧州 (フランクフルト)

eu-central-1

002294850712

欧州 (アイルランド)

eu-west-1

283769539786

欧州 (ロンドン)

eu-west-2

310125036783

欧州 (パリ)

eu-west-3

866607715269

ヨーロッパ (ストックホルム)

eu-north-1

693780578038

南米 (サンパウロ)

sa-east-1

546914126324

欧州 (ミラノ) (オプトイン)

eu-south-1

977238331021

アジアパシフィック (香港) (オプトイン)

ap-east-1

249472122084

中東 (バーレーン) (オプトイン)

me-south-1

404001805210

アフリカ (ケープタウン) (オプトイン)

af-south-1

957664736811

アジアパシフィック (ジャカルタ) (オプトイン)

ap-southeast-3

452118225523

スタンドアロンアカウントの GuardDuty Malware Protection の設定

AWS Organizations に関連付けられているアカウントの場合、次のセクションで説明されているように、コンソールの設定を使用してこのプロセスを自動化できます。

Malware Protection の追加前に GuardDuty を使用していたアカウントでは、コンソールで GuardDuty を設定することで、これを有効にできます。

Malware Protection を有効または無効にするには

スタンドアロンアカウントの Malware Protection を有効および無効にする手順については、以下のアクセス方法を選択してください。

Console
  1. https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。

  2. ナビゲーションペインで、[Settings] (設定) 内の Malware Protection を選択します。

  3. [Malware Protection] ペインには、アカウントの Malware Protection の現在のステータスが一覧表示されます。[Enable] (有効) または [Disable] (無効) を選択することで、このオプションはいつでも有効または無効にできます。

API
  • ユーザー独自のリージョンレベルのディテクター ID を使用し、EbsVolumestrue または false に設定した dataSources オブジェクトを渡して、updateDetector API オペレーションを実行します。

    AWS コマンドラインツールを使用して次の AWS CLI コマンドを実行することで、Malware Protection を有効または無効にすることもできます。必ずご自身の有効な ディテクター ID を使用してください。

    注記

    次のサンプルコードは Malware Protection を有効にします。無効にするには、truefalse に置き換えます。

    https://console.aws.amazon.com/guardduty/ コンソールの [Settings] (設定) ページで、または ListDetectors API を使用して、現在のリージョンの detectorId を確認できます。

    aws guardduty update-detector --detector-id 12abc34d567e8fa901bc2d34e56789f0 --data-sources '{"MalwareProtection":{"ScanEc2InstanceWithFindings":{"EbsVolumes":true}}}'

マルチアカウント環境での Malware Protection の設定

マルチアカウント環境で Malware Protection を設定できるのは、GuardDuty 管理者アカウントのみです。GuardDuty 管理者アカウントは、メンバーアカウントの Malware Protection を有効または無効にできます。管理者がメンバーアカウントに GuardDuty Malware Protection を設定すると、そのメンバーアカウントは管理者アカウントの設定に従い、コンソールからこれらの設定を変更できなくなります。AWS Organizations サポートでメンバーアカウントを管理する GuardDuty 管理者アカウントは、組織内のすべての新しいアカウントで Malware Protection を自動的に有効にすることを選択できます。詳細については、「AWS Organizations を使用した GuardDuty アカウントの管理」を参照してください。

Malware Protection を有効化するために信頼されたアクセスを確立する

GuardDuty の委任管理者が組織の管理アカウントと同じでない場合は、管理アカウントで組織の Malware Protection 機能を有効にする必要があります。このようにすることで、委任された管理者が、AWS Organizations によって管理されるメンバーアカウント内で GuardDuty Malware Protection のためのサービスにリンクされたロールの許可 を作成できます。

注記

GuardDuty の委任された管理者を指定する前に、「GuardDuty の委任された管理者のための重要な考慮事項」を参照してください。

以下のアクセス方法を選択して、GuardDuty の委任管理者がメンバーアカウントの Malware Protection を有効にすることを許可します。

Console
  1. https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。

    ログインするには、AWS Organizations 組織の管理者アカウントを使用します。

  2. ナビゲーションペインで [Settings] (設定) を選択します。

    1. 委任された管理者を指定していない場合は、次の操作を実行します。

      [Settings] (設定) ページの [Delegated Administrator] (委任された管理者) で、組織内の GuardDuty ポリシーを管理するために指定する 12 桁の account ID を入力します。[Delegate] (委任) を選択します。

      1. 管理アカウントとは異なる委任された管理者を既に指定している場合は、次の操作を実行します。

        [Settings] (設定) ページの [Delegated Administrator] (委任された管理者) で、[Permissions] (許可) 設定をオンにします。このアクションにより、委任された管理者は関連する許可をメンバーアカウントにアタッチし、これらのメンバーアカウントで Malware Protection を有効にすることができます。

      2. 管理アカウントと同じ委任された管理者を既に指定している場合は、メンバーアカウントに対して Malware Protection を直接有効化できます。詳細については、「組織のメンバーアカウントの Malware Protection を自動的に有効にする」を参照してください。

      ヒント

      委任された管理者が管理アカウントと異なる場合は、メンバーアカウントのために Malware Protection を有効にできるようにするための許可を委任された管理者に付与する必要があります。

  3. 委任管理者に他のリージョンのメンバーアカウントの Malware Protection を有効にすることを許可する場合は、AWS リージョンを変更して上記のステップを繰り返します。

API
  1. 管理アカウントの認証情報を使用して、次のコマンドを実行します。

    aws organizations enable-aws-service-access --service-principal malware-protection.guardduty.amazonaws.com
  2. オプション:委任管理者ではない管理アカウントに対して Malware Protection を有効にするには、管理アカウントで最初に GuardDuty Malware Protection のためのサービスにリンクされたロールの許可 を明示的に設定し、他のメンバーアカウントと同様に、委任管理者から Malware Protection を有効にする必要があります。

    aws iam create-service-linked-role --aws-service-name malware-protection.guardduty.amazonaws.com
  3. 現在選択されている AWS リージョンで委任された管理者を指定しました。あるリージョンでアカウントを委任された管理者に指定した場合、そのアカウントは他のすべてのリージョンで委任された管理者である必要があります。上記のステップを他のすべてのリージョンについて繰り返します。

組織のメンバーアカウントの Malware Protection を自動的に有効にする

注記

この機能は、AWS Organizations でメンバーを管理する GuardDuty 管理者だけが利用できます。

GuardDuty Malware Protection は、組織内のすべてのメンバーアカウントに対して有効にできます。

  1. https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。

  2. ナビゲーションペインで、[Settings] (設定) 内の Malware Protection を選択します。

  3. GuardDuty Malware Protection で、管理者アカウントとメンバーアカウントの GuardDuty Malware Protection の現在のステータスが表示されます。

  4. [Enable] (有効化) をクリックして、管理者アカウントでマルウェア対策サービスを開始します。

  5. [Enable all] (すべて有効化) を選択すると、すべてのメンバーアカウントに対してワンクリックで Malware Protection を有効にでき、選択が確定されます。コンソールには、正常に有効化されたメンバーアカウントの数が表示されます。

    有効化されると、左側のナビゲーションペインの [Account] (アカウント) でメンバーアカウントを管理できるようになります。

注記

この操作により、[Auto-enable] (自動有効化) 機能も有効になり、組織内の将来のメンバーアカウントに対して Malware Protection が自動的に有効になります。

メンバーアカウントで Malware Protection を選択的に有効または無効にする

注記

この機能は、AWS Organizations でメンバーを管理する GuardDuty 管理者だけが利用できます。

メンバーアカウントの Malware Protection を選択的に有効および無効にする手順については、以下のアクセス方法を選択してください。

Console
  1. https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。

  2. ナビゲーションペインで [Settings] (設定) の [Accounts] (アカウント) を選択します。

    注記

    [Account] (アカウント) のテーブルで、[Malware Protection] 列を確認します。緑のチェックマークアイコンは Malware Protection が有効になっていることを示し、青いダッシュアイコンはそれが無効になっていることを示します。この列が空白の場合、アカウントは Marware Protection の対象になっていません。[Enabled] (有効) または [Disabled] (無効) でフィルタリングすることもできます。

  3. Malware Protection を設定するアカウントを選択します。[Actions] (アクション) メニューから [Enable Malware Protection] (Malware Protection を有効にする) または [Disable Malware Protection] (Malware Protection を無効にする) のいずれかを選択し、選択内容を確認することで、選択したアカウントの設定を変更します。テーブルは自動的に更新され、変更点が表示されます。

API

メンバーアカウントの GuardDuty Malware Protection を選択的に有効または無効にするには、自身のディテクター ID を使用し、updateMemberDetectors API オペレーションを実行します。次の例では、単一のメンバーアカウントで Malware Protection を有効にする方法を示しています。無効にするには、truefalse に置き換えます。

https://console.aws.amazon.com/guardduty/ コンソールの [Settings] (設定) ページで、または ListDetectors API を使用して、現在のリージョンの detectorId を確認できます。

aws guardduty update-member-detectors --detector-id 12abc34d567e8fa901bc2d34e56789f0 --account-ids 123456789012 --data-sources '{"MalwareProtection":{"ScanEc2InstanceWithFindings":{"EbsVolumes":true}}}'
注記

スペースで区切られたアカウント ID のリストを渡すこともできます。

コードが正常に実行されると、UnprocessedAccounts の空のリストが返されます。アカウントのディテクター設定を変更する際に問題が発生した場合は、そのアカウント ID と問題の概要が表示されます。

組織に新しく追加されたアカウントに対する Malware Protection の設定

新しく追加されたメンバーアカウントに対しては、まず GuardDuty で [Enable] (有効化) を選択してから、Malware Protection で [Enable] (有効化) もしくは [Disable] (無効化) を選択する必要があります。詳細については、「ステップ 3 - 招待を受け入れる」を参照してください。

招待によって管理されるメンバーアカウントは、自分のアカウントに対して GuardDuty Malware Protection を手動で設定できます。アカウントの Malware Protection の現在のステータスを表示する方法については、以下のアクセス方法を選択してください。

Console
  1. https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。

  2. ナビゲーションペインで [Settings] (設定) の [Accounts] (アカウント) を選択します。

  3. [Auto-enable] (自動有効化) を選択して、Malware Protection のステータスを確認します。

  4. 新しいメンバーアカウントに対して Malware Protection の [Enable] (有効化) または [Disable] (無効化) を選択できます。

  5. [Update Settings] (設定の更新) を選択して、選択を確定します。

API
重要

新しいディテクターではデフォルトで Malware Protection が自動的に有効になっています。

GuardDuty 管理者が新しいアカウントで初めて GuardDuty を有効にしていて、Malware Protection をデフォルトで有効にしたくない場合は、オプションの dataSources オブジェクトで createDetector API オペレーションを変更することでこれを無効にすることができます。次の例では Malware Protection を無効にしたまま新しい GuardDuty ディテクターを有効にするために、AWS CLI を使用しています。

aws guardduty create-detector --enable --data-sources '{"MalwareProtection":{"ScanEc2InstanceWithFindings":{"EbsVolumes":false}}}'

招待によって管理されている組織内の既存のアカウントに対して Malware Protection を有効にする

メンバーアカウントで GuardDuty Malware Protection のサービスにリンクされたロール (SLR) が作成されている必要があります。AWS Organizations によって管理されていないメンバーアカウントでは、管理者が Malware Protection 機能を有効にすることはできません。

現在、https://console.aws.amazon.com/guardduty/ の GuardDuty コンソールから次の手順を実行して、既存のメンバーアカウントの Malware Protection を有効にすることができます。

Console
  1. https://console.aws.amazon.com/guardduty/ で GuardDuty コンソールを開きます。

  2. 管理者アカウントのナビゲーションペインで [Accounts] (アカウント) を選択します。

  3. Malware Protection を有効にするメンバーアカウントを選択し、[Actions] (アクション) を選択します。

  4. [Disassociate member] (メンバーの関連付けを解除する) を選択します。

  5. メンバーアカウントのナビゲーションペインで、[Settings] (設定) 内の [Malware Protection] (Malware Protection) を選択します。

  6. [Enable Malware Protection] (Malware Protection を有効にする) を選択します。GuardDuty でメンバーアカウントの SLR が作成されます。SLR の詳細については、「GuardDuty Malware Protection のためのサービスにリンクされたロールの許可」を参照してください。

  7. 管理者アカウントのナビゲーションペインで [Settings] (設定) 内の [Accounts] (アカウント) を選択します。

  8. 組織に追加し直す必要があるメンバーアカウントを選択します。

  9. [Actions] (アクション)、[Add member] (メンバーの追加) の順に選択します。

API
  1. 管理者アカウントを使用して Malware Protection を有効にするメンバーアカウントで DisassociateMembers API を実行します。

  2. メンバーアカウントを使って UpdateDetector を呼び出して、Malware Protection を有効にします。

    https://console.aws.amazon.com/guardduty/ コンソールの [Settings] (設定) ページで、または ListDetectors API を使用して、現在のリージョンの detectorId を確認できます。

    aws guardduty update-detector --detector-id 12abc34d567e8fa901bc2d34e56789f0 --data-sources '{"MalwareProtection":{"ScanEc2InstanceWithFindings":{"EbsVolumes":true}}}'
  3. 管理者アカウントを使用して CreateMembers API を実行して、メンバーを組織に追加し直します。

GuardDuty Malware Protection の検出タイプ

Malware Protection は、GuardDuty が検出した結果に応じて次の結果を生成します。このような検出結果は、Malware Protection を有効にしているアカウントに対してのみ生成できます。