Amazon Detective でセキュリティインシデントを調査 - グラフ分析による根本原因の特定
Detective による GuardDuty 検出結果の調査、エンティティプロファイル、行動グラフの活用を解説します。
Detective の概要
Detective はセキュリティの検出結果を自動分析し、根本原因を調査するサービスです。GuardDuty が「不審な API 呼び出しを検出」と通知した後、「誰が、いつ、どこから、何をしたか」を深掘りする調査フェーズを支援します。CloudTrail、VPC Flow Logs、GuardDuty の検出結果、さらに EKS 監査ログや S3 データイベントを自動集約し、行動グラフで異常パターンを可視化します。Detective は ML モデルを内部に持ち、ベースラインからの逸脱度を自動スコアリングするため、セキュリティアナリストは膨大なログを手作業で突き合わせる必要がありません。
行動グラフとエンティティプロファイル
行動グラフは CloudTrail、VPC Flow Logs、GuardDuty の検出結果を自動集約し、エンティティ (IAM ユーザー、ロール、EC2、IP アドレス) 間の関連性をグラフデータベースに構築します。エンティティプロファイルは特定の IAM ユーザーや EC2 インスタンスの過去 12 か月の行動パターン (API 呼び出し頻度、通信先 IP、データ転送量) をベースラインとして保持し、異常な活動をハイライトします。GuardDuty の検出結果から Detective にピボットすると、関連するエンティティの行動タイムラインが表示され、不正アクセスの経路を追跡できます。グラフの構造はリージョン単位で構築され、Organizations 統合により最大 1200 アカウントのデータを 1 つの行動グラフに集約できます。
調査ワークフロー
Detective の調査ワークフローは GuardDuty の検出結果から開始します。検出結果をクリックすると、関連する IAM ロール、EC2 インスタンス、IP アドレスのエンティティプロファイルが表示されます。プロファイルには過去 12 か月の API コールパターン、ネットワーク接続、地理的な接続元が時系列で可視化されます。「このロールが通常アクセスしないサービスに突然アクセスした」「通常と異なる IP アドレスからの接続が増加した」といった異常パターンを視覚的に特定できます。Investigation 機能で調査の範囲を自動的に拡大し、関連するエンティティを芋づる式に追跡します。Finding Group 機能は関連する複数の GuardDuty 検出結果を 1 つの攻撃シナリオにまとめ、調査すべき優先度をスコアで示します。 セキュリティ調査に関する詳しい解説はAmazon の関連書籍でも確認できます。
Detective の料金
Detective の料金は取り込んだデータ量で課金されます。CloudTrail 管理イベントは 1 GB あたり約 2 ドル、VPC Flow Logs は 1 GB あたり約 0.75 ドルです。最初の 30 日間は無料トライアルで、実際のコストを事前に見積もれます。Organizations との統合で全アカウントのデータを集約する場合、データ量が大きくなるため、コストを事前に確認します。GuardDuty のデータを主要なソースとして使用し、VPC Flow Logs の取り込みはセキュリティ要件に応じて有効化します。無料トライアル中にコンソールで推定月額が表示されるため、本番有効化前に確認します。
GuardDuty・Security Hub との連携と使い分け
Detective は GuardDuty および Security Hub と密接に連携しますが、各サービスの役割は明確に異なります。GuardDuty は脅威の検出 (「何が起きたか」の通知) を担い、Security Hub は検出結果の集約と優先度付け (「どれが重要か」の判断) を担います。Detective はその先の調査 (「なぜ起きたか、影響範囲はどこまでか」の分析) を担当します。Security Hub のコンソールから直接 Detective にピボットでき、GuardDuty の検出結果に対して「Investigate in Detective」ボタン 1 つで調査を開始できます。一方、Detective 単独では検出はできません。GuardDuty を事前に有効化していなければ、Detective が分析するソースデータが不足します。実務上は GuardDuty を全リージョン・全アカウントで有効化し、検出結果を Security Hub に集約した上で、重要なアラートに対して Detective で深掘り調査する流れが標準的です。
調査のベストプラクティスと落とし穴
Detective を実務で活用する際の重要なポイントがあります。まず、有効化直後は行動グラフが十分に構築されていないため、ベースラインの精度が低くなります。有効化後 2 週間程度で正常行動のプロファイルが蓄積され始め、誤検知が減少します。次に、Investigation 機能で検出された不審なエンティティについて、即座にアクセスキーの無効化や IAM ロールの権限剥奪といったインシデント対応を実行する場合は、Detective から直接対応はできないため、Systems Manager Automation ランブックや Step Functions と連携させるアーキテクチャが推奨されます。落とし穴として、Detective はリージョン単位で行動グラフを構築するため、複数リージョンで運用している場合は攻撃者がリージョンを跨いで行動していても 1 つのグラフに統合されません。マルチリージョン環境では各リージョンの Detective を個別に確認する運用が必要です。
まとめ
Detective は行動グラフとエンティティプロファイルでセキュリティインシデントの根本原因を調査するサービスです。GuardDuty の検出結果から調査を開始し、CloudTrail と VPC Flow Logs のデータを自動集約して、過去 12 か月の API コールパターンやネットワーク接続の異常を時系列で可視化します。GuardDuty が「検出」、Security Hub が「優先度付け」、Detective が「調査」と明確に役割が分かれており、三者を組み合わせることでインシデント対応サイクルを効率化できます。