Amazon GuardDuty
Amazon Guard Duty ユーザーガイド

Amazon GuardDutyの結果

AWS 環境で、潜在的に悪意のある予期しないアクティビティを検出すると、Amazon GuardDuty によって結果が生成されます。GuardDuty の結果は、GuardDuty コンソールの [Findings] ページ、GuardDuty の CLI や API オペレーションを使用して表示および管理できます。GuardDuty の結果は、Amazon CloudWatch イベントを使用して表示することもできます。詳細については、「Amazon CloudWatch Events を使用した Amazon GuardDuty 結果のモニタリング」を参照してください。

このトピックには次の情報を説明しています。

GuardDuty 結果の検索と分析

GuardDuty の結果を表示および分析するには、次の手順を使用します。

  1. GuardDuty コンソール (https://console.aws.amazon.com/guardduty) を開き、[Findings] を選択します。

  2. 特定の結果を選択して、詳細を表示します。

    詳細ペインが表示され、次の情報を確認できます。

    • 結果の概要セクション。次の情報が含まれます。

      • 検索タイプ – セキュリティ上の潜在的な問題の簡潔で読みやすい説明。詳細については、「GuardDuty の結果タイプの形式」を参照してください。

      • 重大度 – 結果には重大度 (高、中、低) が割り当てられています。詳細については、「GuardDuty 結果の重要度」を参照してください。

      • リージョン – 結果が作成された AWS リージョン。

        注記

        サポートされるリージョンの詳細については、「Amazon GuardDuty でサポートされているリージョン」を参照してください。

      • カウント – AWS アカウントで GuardDuty を有効にした後で GuardDuty で結果が生成された回数。

      • アカウント ID – この結果の生成を GuardDuty に求めるアクティビティを実行した AWS アカウントの ID。

      • リソース ID – この結果の生成を GuardDuty に求めるアクティビティを実行した AWS リソースの ID。

      • 脅威リスト名 - この結果の生成を GuardDuty に求めるアクティビティに関する IP アドレスまたはドメイン名が含まれている脅威リストの名前。

      • 最終アクセス – この結果の生成を GuardDuty に求めるアクティビティが発生した時間。

        注記

        GuardDuty コンソールの結果のタイムスタンプはローカルタイムゾーンで表示されます。一方、JSON エクスポートおよび CLI 出力では UTC でタイムスタンプが表示されます。

    • 結果の [Resource affected] セクション。次の情報が含まれます。

      • リソースロール – 該当のリソースは攻撃対象となる可能性があるため、この値は通常 Target に設定されます。

      • リソースタイプ – 該当するリソースのタイプ。この値は、AccessKey または Instance のいずれかです。現在、サポートされている結果タイプは EC2 インスタンスまたは AWS 認証情報のいずれかに対する悪意のあるアクティビティの可能性を示します。詳細については、「GuardDuty によって検出されたセキュリティ問題の修復」を参照してください。

      • インスタンス ID – 結果の生成を GuardDuty に求めるアクティビティを行った EC2 インスタンスの ID。

      • ポート – GuardDuty に結果の生成を求めるアクティビティ中に使用された接続のポート番号。

      • アクセスキー ID 結果の生成を GuardDuty に求めるアクティビティを行ったユーザーの – アクセスキー ID。

      • プリンシパル ID – 結果の生成を GuardDuty に求めるアクティビティを行ったユーザーのプリンシパル ID。

      • ユーザー型 – 結果の生成を GuardDuty に求めるアクティビティを行ったユーザーのタイプ。詳細については、CloudTrail userIdentity 要素を参照してください。

      • ユーザー名 – 結果の生成を GuardDuty に求めるアクティビティを行ったユーザーの名前。

    • 結果の [Action] セクション。次のような情報が含まれます。

      • アクションタイプ – 結果アクティビティのタイプ。次のいずれかの値を指定できます: NETWORK_CONNECTION、AWS_API_CALL、PORT_PROBE、または DNS_REQUEST。NETWORK_CONNECTION は、トラフィックが識別済み EC2 インスタンスとリモートホスト間で交わされたことを示します。AWS_API_CALL は AWS API が呼び出されたことを示します。DNS_REQUEST は、識別済みの EC2 インスタンスがドメイン名を照会したことを示します。PORT_PROBE は、リモートホストが複数の開かれているポートで識別済みの EC2 インスタンスを調査したことを示します。

      • API – 呼び出されたため、GuardDuty にこの結果の生成を求める API オペレーションの名前。

        注記

        これらのオペレーションは、CloudTrail によってキャプチャした API 以外のイベントを含めることもできます。詳細については、「CloudTrail によってキャプチャされる API 以外のイベント」を参照してください。

      • サービス名 – この結果を生成した AWS のサービス (GuardDuty) の名前。

      • 接続方向 – 結果の生成を GuardDuty に求めるアクティビティで確認されたネットワーク接続方向。値は INBOUND、OUTBOUND、および UNKNOWN です。INBOUND は、リモートホストがお客様のアカウントの識別済み EC2 インスタンスのローカルポートへの接続を開始したことを示します。OUTBOUND は、識別済み EC2 インスタンスがリモートホストへの接続を開始したことを示します。UNKNOWN は、GuardDuty が接続の方向を判別できなかったことを示します。

      • プロトコル – 結果の生成を GuardDuty に求めるアクティビティで確認されたネットワーク接続プロトコル。

    • 結果の [Actor] セクション。次のような情報が含まれます。

      • 場所 – 結果の生成を GuardDuty に求めるアクティビティが行われた IP アドレスの位置情報。

      • 組織名 – 結果の生成を GuardDuty に求めるアクティビティが行われた IP アドレスの ISP 組織情報。

      • IP アドレス – 結果の生成を GuardDuty に求めるアクティビティが行われた IP アドレス。

      • ポート – 結果の生成を GuardDuty に求めるアクティビティが行われたポート番号。

      • ドメイン – 結果の生成を GuardDuty に求めるアクティビティが行われたドメイン。

    • 結果の [Additional information] セクション。次のような情報が含まれます。

      • 脅威リスト名 – この結果の生成を GuardDuty に求めるアクティビティに関する IP アドレスまたはドメイン名が含まれている脅威リストの名前。

      • サンプル – 結果サンプルかどうかを示します。

      • 異常 – 履歴で確認されていないアクティビティの詳細。これらには、通常とは異なる (以前に確認されていない) ユーザー、場所、時間などが含まれます。

      • 異常プロトコル – GuardDuty に結果の生成を求めるアクティビティが行われたネットワーク接続プロトコル。

GuardDuty 結果のアーカイブ、エクスポート、およびフィードバックの提供

以下の手順で、結果をアーカイブするか最新のものとしてマークし、GuardDuty の結果にフィードバックを提供します

  1. 検索結果をアーカイブまたはエクスポートするには、検索結果のリストから検索結果を選択し、[アクション] メニューを選択します。次に、[Archive] (アーカイブ) または [エクスポート] をクリックします。結果をエクスポートすると、完全な JSON ドキュメントが表示されます。

    注記

    現時点の GuardDuty では、GuardDuty のメンバーアカウントのユーザーが結果をアーカイブすることはできません。

    注記

    GuardDuty 結果の信頼度が 0 に設定されている場合のみ、[信頼度] フィールドが完全な結果の JSON に表示されます。0 に設定された [信頼度] フィールドがあることは、この GuardDuty 結果が誤検出であることを示します。

  2. 結果を有用または無用とマークしてフィードバックを提供するには、結果のなかから選んで、その後上向きの親指ボタンまたは下向きの親指ボタンを選択します。

  3. アーカイブされたまたは現在の結果を表示するには、結果のリストの上にあるフィルタアイコンを選択し、[Archived (アーカイブ)] または [Current (現在)] チェックボックスをオンにします。

重要

上記の手順を使用して検索結果を手動でアーカイブする場合は、この検索後に発生した結果 (アーカイブ完了後に生成された結果) はすべて、現在の検索結果のリストに追加されます。現在のリストにこの結果を表示しない場合は、自動アーカイブすることができます。詳細については、「GuardDuty 結果のフィルタリングと自動アーカイブ」を参照してください。

GuardDuty 結果のフィルタリングと自動アーカイブ

以下の手順を使用して、GuardDuty 結果の日付フィールドのフィルタを作成します。

  1. GuardDuty 結果の [Add filter criteria (フィルタ条件の追加)] バーを選択します。

  2. 展開された属性のリストで、フィルタの条件として指定する属性を選択します。たとえば、アカウント ID または アクションの種類です。特定のフィルタの条件として、1 つの属性または最大 50 の属性を指定できます。

    フィルタ条件として指定できる属性の詳細なリストについては、CreateFilter の filterCriteria プロパティの詳細を参照してください。

  3. 表示されたテキストフィールドで選択された各属性の値を指定し、[適用] を選択します。

    注記

    特定のフィルタでは、属性値 (例: アカウント ID) に適用する「等しい」条件または「等しくない」条件を使用する属性の場合、最大 50 まで値を指定できます。

  4. 指定された属性とその値 (フィルタ条件) をフィルタとして保存するには、[保存] の順に選択します。フィルタの名前と説明を入力し、[Auto-archive] (自動アーカイブ) チェックボックスを使用して、このフィルタに一致する検索結果を自動的にアーカイブするかどうかを指定します。次に、[完了] を選択します。詳細については、「自動アーカイブ」を参照してください。

重要

検索結果が自動アーカイブ (上記ステップ 4 を参照) されている場合は、この検索後に発生した結果 (アーカイブ完了後に生成された結果) はすべて、アーカイブ済みの検索結果のリストに追加されます。

GuardDuty 結果の重要度

GuardDuty の結果ごとに重要度レベルと値が割り当てられます。これにより、結果相互を優先順位付けする必要性が減り、結果が示すセキュリティ問題の可能性に対するレスポンスを決定できます。重大度の値は 0.1 ~ 8.9 の範囲内のいずれかです。

注記

値 0 と 9.0 から 10.0 が将来使用するために現在予約されています。

GuardDuty の結果で現在定義されている重要度レベルと値を次に示します。

  • (GetFindings レスポンスの severity パラメータの値は 7.0〜8.9 の範囲になります) – 該当するリソース (EC2 インスタンス、または IAM ユーザー認証情報のセット) は侵害されており、承認されていない目的に活発に使用されています。このセキュリティ問題は優先事項として対応し、直ちに修正措置を講じることをお勧めします。たとえば、EC2 インスタンスをクリーンアップまたは終了するか、IAM 認証情報を更新します。

  • (GetFindings レスポンスの severity パラメータの値は 4.0〜6.9 の範囲になります) – 不審なアクティビティを示します。たとえば、大量のトラフィックが返されている先のリモートホストが Tor ネットワークの背後に隠れていたり、アクティビティが通常確認されている動作から逸脱していたりします。できるだけ早く、関連するリソースを調査することをお勧めします。いくつかの修正手順を次に示します。

    • 未承認のユーザーがインストールした新しいソフトウェアでリソースの動作が変更されていないか確認してください。たとえば、通常より高いトラフィックが許可されている場合や、新しいポートの通信が有効化されている場合などがあります。

    • 承認済ユーザーによって、コントロールパネル設定が変更されていないか (例: セキュリティグループ設定の変更) を確認します。

    • 該当するリソースでアンチウィルススキャンを実行し、未承認のソフトウェアを検出します。

    • 該当する IAM ロール、ユーザー、グループ、または認証情報セットにアタッチされているアクセス許可を検証します。以下のアクセス許可を変更または更新する必要がある場合があります。

  • (GetFindings レスポンスの severity パラメータの値は 0.1〜3.9 の範囲になります) – リソースが侵害される前にブロックした不審なアクティビティまたは悪意のあるアクティビティを示します。直ちに推奨されるアクションはありませんが、今後対応する上で参考にしてください。

GuardDuty 結果サンプルの生成

結果サンプルを使用して、GuardDuty が生成するさまざまな検索タイプを視覚化し、分析することができます。結果のサンプルを生成すると、GuardDuty によって最新の結果リストにデータが入力され、サポートされている検索タイプごとに 1 つの結果サンプルが強調表示されます。GuardDuty の結果タイプの詳細については、「GuardDuty のアクティブな結果タイプ」を参照してください。

サンプル結果を生成するには、次の手順を使用します。

  1. コンソール (https://console.aws.amazon.com/guarddutyGuardDuty) を開きます。

  2. ナビゲーションペインで [Settings] の [General] を選択します。

  3. [Settings] ページで、[Sample findings] の [Generate sample findings] を選択します。

  4. ナビゲーションペインで [Findings] の [Current] を選択します。サンプル結果が [Current findings] ページに表示されます。結果サンプルのタイトルは必ず [SAMPLE] から始まります。特定のサンプル結果を選択して、詳細を表示します。

PoC (実証支援) - 複数の一般的な結果と GuardDuty 結果の自動生成

次のスクリプトを使用して、いくつかの一般的な Amazon GuardDuty 検索結果を自動的に生成することができます。guardduty-tester.template では、AWS CloudFormation を使用して、踏み台ホスト、ssh 接続できるテスター EC2 インスタンス、および 2 つのターゲット EC2 インスタンスを持つ独立した環境を作成します。次に、テスター EC2 インスタンス、ターゲット Windows EC2 インスタンス、ターゲット Linux EC2 インスタンス間のインタラクションを開始する guardduty_tester.sh を実行して、GuardDuty が生成した結果を検出し通知する一般的な攻撃タイプの 5 つをシミュレートします。

  1. 前提条件として、guardduty-tester.templateguardduty_tester.sh を実行するアカウントとリージョンで GuardDuty を有効にする必要があります。GuardDuty の有効化の詳細については「Amazon GuardDuty をセットアップする」をご覧ください。

    スクリプトを実行する各リージョンで、新規に生成するか既存の EC2 キーペアを使用する必要があります。この EC2 キーペアは新しい CloudFormation スタックの作成時に、guardduty-tester.template スクリプトでパラメータとして使用されます。EC2 キーペア生成の詳細については https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html を参照してください。

  2. guardduty-tester.template を使用して新しい CloudFormation スタックを作成します。スタック作成の詳細については https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html を参照してください。guardduty-tester.template を実行する前に、新しいスタックを識別するためのスタックの名前、スタックを実行するアベイラビリティーゾーン、EC2 インスタンスの起動に使用するキーペアのパラメータ値を変更します。次に、対応するプライベートキーを使用して、EC2 インスタンスで SSH 接続を行います。

    guardduty-tester.template の実行と完了の所要時間は約 10 分です。環境を作成しテスター EC2 インスタンスに guardduty_tester.sh をコピーします。

  3. AWS CloudFormation コンソールで、新しく実行している CloudFormation スタックの横にあるチェックボックスを選択します。表示されている一連のタブで [出力] タブを選択します。踏み台ホストとテスター EC2 インスタンスに割り当てられている IP アドレスに注意します。テスター EC2 インスタンスで SSH 接続を行うには、両方の IP アドレスが必要になります。

  4. 踏み台ホストからインスタンスにログインするため、~/.ssh/config ファイルで次のエントリを作成します。

    Host bastion HostName {Elastic IP Address of Bastion} User ec2-user IdentityFile ~/.ssh/{your-ssh-key.pem} Host tester ForwardAgent yes HostName {Local IP Address of RedTeam Instance} User ec2-user IdentityFile ~/.ssh/{your-ssh-key.pem} ProxyCommand ssh bastion nc %h %p ServerAliveInterval 240

    これで、$ ssh テスターを呼び出しターゲット EC2 インスタンスにログインできます。踏み台ホストを介して EC2 インスタンスの設定や接続を行う場合の詳細情報については https://aws.amazon.com/blogs/security/securely-connect-to-linux-instances-running-in-a-private-amazon-vpc/ を参照してください。

  5. テスター EC2 インスタンスに接続したら guardduty_tester.sh を実行して、テスターとターゲット EC2 インスタンス間のインタラクションの開始、攻撃のシミュレート、GuardDuty の結果を生成します。