Amazon GuardDuty で実現する脅威検出 - ML ベースの異常検知とインシデント対応
GuardDuty による脅威検出の仕組み、検出結果の分類、Security Hub との統合によるインシデント対応を解説します。
GuardDuty の概要
GuardDuty は AWS アカウントとワークロードの脅威を継続的に検出するサービスで、200 種類以上の脅威パターンを識別します。CloudTrail イベント、VPC Flow Logs、DNS クエリログを自動的に分析し、不正な API 呼び出し、暗号通貨マイニング、C&C サーバーとの通信、ブルートフォース攻撃などを検出します。有効化はワンクリックで、既存のログ設定を変更する必要がありません。GuardDuty は独自にログを取得するため、ユーザーが VPC Flow Logs や CloudTrail を手動で有効にしている必要はありません。検出エンジンは AWS が管理する脅威インテリジェンスフィード (既知の悪意ある IP アドレス、ドメインリスト) と、アカウント固有の行動ベースライン ML モデルの 2 つを組み合わせています。
検出結果と対応
検出結果は Recon (偵察)、UnauthorizedAccess (不正アクセス)、CryptoCurrency (暗号通貨マイニング)、Trojan (トロイの木馬) などのタイプに分類されます。重要度 High の検出結果は即座に対応が必要で、EventBridge ルールで Lambda を起動し、侵害された IAM 認証情報の無効化や EC2 インスタンスの隔離を自動実行できます。Security Hub との統合で GuardDuty の検出結果を他のセキュリティサービスの結果と統合し、セキュリティ態勢を一元管理できます。実践的な自動修復アーキテクチャとしては、GuardDuty が High severity の UnauthorizedAccess:IAMUser 検出結果を生成 → EventBridge → Lambda が該当 IAM ユーザーの全アクセスキーを無効化し、強制的に MFA リセットを要求 → SNS で運用チームに通知、という一連のフローが代表的です。
保護プランと Organizations 統合
GuardDuty の保護プランは基本的な脅威検出に加え、S3 Protection (S3 データイベントの分析)、EKS Protection (Kubernetes 監査ログの分析)、Malware Protection (EC2 と ECS のマルウェアスキャン)、RDS Protection (RDS ログインアクティビティの分析)、Lambda Protection (Lambda のネットワークアクティビティの分析)、Runtime Monitoring (EC2/ECS/EKS のランタイム脅威検出) を提供します。Organizations の委任管理者で全アカウントの GuardDuty を一元管理し、新規アカウントの自動有効化を設定します。検出結果は Security Hub に自動集約されます。Runtime Monitoring は GuardDuty エージェントをホストまたはコンテナに配置し、ファイルアクセス、プロセス実行、ネットワーク接続をカーネルレベルで監視します。これにより既存のネットワークレベル検出では見逃すプロセスインジェクションやリバースシェルなどのランタイム脅威を捕捉します。 GuardDuty について体系的に学びたい方は、関連書籍 (Amazon)も参考になります。
GuardDuty の料金最適化
GuardDuty の基本料金は CloudTrail 管理イベントと VPC Flow Logs の分析量で課金されます。CloudTrail イベントは 100 万イベントあたり約 4 ドル、VPC Flow Logs は 1 GB あたり約 1 ドルです。各保護プランは追加料金が発生し、S3 Protection は S3 データイベント 100 万イベントあたり約 0.80 ドルです。30 日間の無料トライアルで実際のコストを確認してから有効化を判断します。Malware Protection はスキャン対象のデータ量で課金されるため、スキャン対象を重要なワークロードに限定してコストを管理します。利用開始後に料金が予想以上に高い場合は、GuardDuty コンソールの Usage ページでデータソース別のコスト内訳を確認し、不要な保護プランを無効化するか、S3 保護のイベント頻度が高い場合は対象バケットのアクセスパターンを見直します。
検出精度チューニングと誤検知対策
GuardDuty を有効化した直後は誤検知 (false positive) が発生しやすいため、運用安定化には適切なチューニングが必要です。信頼済みの IP リスト (Trusted IP Lists) に社内のグローバル IP や VPN 出口 IP を登録すると、これらからのアクセスに対する検出結果が自動的に抑制されます。同様に、脅威 IP リスト (Threat IP Lists) に独自の脅威インテリジェンスを追加して検出精度を強化することもできます。特定のリソースに対する反復的な検出結果は Suppression Rules で非表示にできますが、安易に広範囲のルールを設定すると本物の脅威を見落とすリスクがあるため、条件はできるだけ狭く (特定のアカウント ID + 特定のリソース ARN + 特定の検出タイプ) 設定すべきです。検出結果を Amazon Detective に連携すれば、GuardDuty が「何が起きたか」を示し、Detective が「なぜ・どのように起きたか」を IP アドレスの行動履歴や API コールのタイムラインで可視化するため、調査と誤検知判定が大幅に効率化されます。
他のセキュリティサービスとの役割分担
AWS のセキュリティサービスは検出対象と目的が異なるため、GuardDuty を中心に複数サービスを組み合わせる多層防御が効果的です。GuardDuty はアカウント行動とネットワーク通信の異常を「継続的に」検出するのが主目的で、事後調査には Amazon Detective、脆弱性スキャンには Amazon Inspector、IAM ポリシーの設定不備には IAM Access Analyzer をそれぞれ使い分けます。Security Hub がこれらの検出結果を一元集約するハブとなり、AWS Foundational Security Best Practices 等のスタンダードに基づくコンプライアンスチェックも提供します。GuardDuty を先に有効化し、検出結果が発生してから Detective や Inspector を追加有効化する段階的アプローチが、コスト管理の観点でも合理的です。マルチアカウント環境では、セキュリティアカウントを委任管理者として指定し、全メンバーアカウントの GuardDuty 検出結果をこのアカウントに集約するアーキテクチャが AWS Well-Architected Security Pillar で推奨されています。
まとめ
GuardDuty は ML と脅威インテリジェンスで AWS 環境の脅威を自動検出するサービスです。S3、EKS、Lambda、RDS、Runtime Monitoring の保護プランで多層的な脅威検出を提供し、Organizations 統合で全アカウントのセキュリティを一元管理します。EventBridge 連携で検出結果に対する自動修復アクションを構築し、セキュリティ運用を自動化します。信頼済み IP リストと Suppression Rules で誤検知を制御し、Detective との連携で調査効率を高めることが、実運用での安定稼働の鍵です。