Amazon GuardDuty の設定と運用について教えてください

2023.03.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていること

現在、弊社保有の AWS アカウント内において他社へ開発業務を委託しています。委託するにあたり、EC2 作成 IAM ユーザーの作成などが開発期間中に行われる作業の想定です。
そのため上記を Amazon GuardDuty の監視対象にする場合、正規作業不正作業なのか判断がつかない通知(誤検出)があり、運用負荷が上昇するのではないかと懸念しています。 どの様に運用すればよいか教えてください。

どう対応すればいいの?

  • 全てのリージョンで Amazon GuardDuty を有効にする
  • 検出結果を除外しない
  • 抑制ルールを使用する

Amazon GuardDuty の機能について簡単に説明すると、通常と異なる IP アドレスからのアクセスや通常使用していないリージョンへのリソースのデプロイといった操作を検知可能なサービスです。

アカウントの侵害: アカウントの侵害を示す一般的なパターンには、異常な地理的位置または匿名にするプロキシからの API コール、AWS CloudTrail のログ記録を無効にする試み、アカウントのパスワードポリシーを弱める変更、異常なインスタンスまたはインフラストラクチャの起動、通常ではないリージョンへのインフラストラクチャのデプロイ、悪意のある既知の IP アドレスからの API コールが含まれます。

運用において、AWS では ドキュメント 記載の通り 全てのリージョンで Amazon GuardDuty を有効にすることを強くお勧めしています。

AWS は、サポートされているすべてのリージョンで GuardDuty を有効にすることを強くお勧めします。このように設定することで、GuardDuty はアクティブに使用されていないリージョンでも、許可されていないアクティビティや異常なアクティビティに関する検出結果を生成できます。また、これにより GuardDuty が有効となり、IAM などのグローバルな AWS のサービスのための AWS CloudTrail イベントのモニタリングが可能となります。GuardDuty がサポートされているすべてのリージョンで有効になっていない場合、グローバルサービスに関連するアクティビティを検出する機能は低下します。

誤検出と抑制ルール

参考資料 (P53~)においても誤検出は発生し得るものとして紹介しています。

一方で、運用の負荷軽減のために「EC2 などの作成・起動、IAM ユーザーの作成・削除」に関する検出結果をすべて除外してしまうと、不正な動作であっても検出できなくなってしまいます。
所属する会社の運用方針次第であることは前提ですが、AWS Well-Architected フレームワークのセキュリティ においても疑わしい挙動調査の自動化に GuardDuty は有用であると記載があることから、先ずは検出結果を除外しないように運用することをお勧めします。

ベストプラクティス:
(中略)
● イベントへの応答を自動化する: 自動化を使用してイベントを調査および修正することで、人為的な労力やエラーが軽減され、調査機能をスケールできます。定期的なレビューは、自動化ツールを調整するのに役立ちます。継続して繰り返し行います。例えば、最初の調査ステップを自動化して Amazon GuardDuty イベントへの応答を自動化し、同様の作業を繰り返して、人間の労力を徐々に排除します。

イベントへの応答を自動化する
● Amazon GuardDuty で自動アラートを実装する: Amazon GuardDuty は脅威検出サービスです。悪意のある動作や不正な動作を継続的にモニタリングし、AWS のアカウントとワークロードを保護できるようにします。GuardDuty を有効にし、自動アラートを設定します。

以上を踏まえ、検出可能にしたうえで検出結果に対して調査を実施、誤検出かどうかの判断してください。
また、誤検出が発生しうる場合は 抑制ルール を利用して特定の対象での検出をフィルタリングする等弊社ブログ も参考にご対応ください。

抑制ルールは、フィルター属性と値の組み合わせで構成される基準のセットで、指定した条件に一致する新しい検出結果を自動的にアーカイブして検出結果をフィルタリングするために使用する条件のセットのことです。抑制ルールを使用して、重要ではない検出結果、誤検出の検出結果、対応を行わない脅威をフィルタリングすることにより、環境に最も影響があるセキュリティの脅威を認識しやすくなります。

参考資料