インシデントレスポンス — 事件が起きたら何をする
Detective調査、EventBridge自動化、EC2隔離・フォレンジックの手順を講義形式で解説
午前3時。あなたのスマートフォンにSlack通知が来る。「セキュリティアラート:未承認のIAMキー作成が検出されました」。心臓が止まります。さあ、どうする?
「検出から修復まで」のセキュリティオーケストレーションについて深掘りしていきます。
事件は現場で起こってる
GuardDutyが異常を検知しても、なぜ起きたのかまで調べるのは別の話ですよね。つまり、セキュリティは「検出」と「調査」と「対応」——三つの層に分かれてます。その中でも特に「調査」の部分が人力だと致命的に遅い。
ここで重要。言ってみれば Detective は 刑事です。GuardDuty が「容疑者らしい人を見つけた」って通報するなら、Detective が「この人、本当に悪いやつ?」って犯行現場のビデオから確認する。
Amazon Detective — ビヘイビアグラフの本質
Detective の核になるのが「ビヘイビアグラフ」。つまりね、CloudTrail と VPC Flow Logs と GuardDuty Finding を全部まぜて、その IAM ロールが普段何をしてるか という行動パターンを自動学習する機能です。
重要ポイント:ここで最大48時間の遅延が発生する可能性があるわけです。だから、「リアルタイムセキュリティ」には Detective 単体は向きません。その代わり EventBridge と組み合わせる——そこで初めて自動対応が可能になります。
CloudTrail は15~30分の遅延、VPC Flow Logs は3~5分、GuardDuty はほぼリアルタイム。全部の層のデータを集約して一つのグラフにするから、どうしても遅延が大きくなります。
Detective 調査フロー——4ステップ
一つ、Finding から Entity を特定する。EC2 インスタンスが疑わしい? では、そのインスタンスに紐付く IAM ロール、ネットワークカード、セキュリティグループを全部追跡する。
二つ、Timeline で時系列に追う。具体的には「2024年4月27日 14:30、DescribeInstances」「14:30:18、GetSecretValue」「14:30:22、CreateAccessKey」——操作を秒単位で見える化。
三つ、関連 Entity をたどる。この IAM ロール、どの EC2 インスタンスから実行されたのか? どの S3 バケットにアクセスしたのか? つまり、攻撃経路を点と線で図解する。
四つ、コンテキスト情報を収集。IP Reputation、First Seen フラグ、複数アカウント環境での関連性——つまり「背景知識」を全部集めます。
注意。Detective のビヘイビアグラフはリセットされません。12ヶ月の完全な履歴が保持されます。だから、新規アカウントを追加すると初期2週間はグラフが不完全です。
できないこと・制約
Detective は「調査ツール」であって「検出ツール」ではない。GuardDuty が Finding を生成しなきゃ、Detective には何も出現しない——ここ重要です。
データ保持期間が12ヶ月で完全削除されます。カスタマイズ不可。コンプライアンス要件で「5年保持」が必要な場合は、CloudTrail → S3 アーカイブを別途用意。
EventBridge — セキュリティイベント駆動自動化
ここから魔法が始まります。Detective は「後追い調査」ですが、EventBridge は「起きたら即座に対応」する仕組みです。
流れとしては:GuardDuty Finding → EventBridge ルール(マッチング判定)→ Lambda / SNS / SystemsManager(実行)
重要ポイント。EventBridge のイベント配信は通常 <1秒。ただしターゲット側の処理時間は別。Lambda の Cold Start で2~3秒かかるとか、そういう話。
セキュリティイベント駆動の4パターン
パターン1:GuardDuty Finding → EC2 自動隔離。Severity 7以上で自動トリガー、セキュリティグループを「隔離SG」に切り替え。元のセキュリティグループはタグに保存しておいて、後で復旧時に参照。
パターン2:Security Hub Finding → マルチチャネル通知。Critical・High の Finding が来たら同時に SNS メール、Lambda で Slack、SMS まで送信。つまり、通知の「多重化」です。
パターン3:Config Rule 非準拠 → Automation で自動修復。DLQ(Dead Letter Queue)を併設して、修復に失敗した場合は SQS メッセージで保留——セキュリティチームが後で手動確認。
パターン4:IAM Access Analyzer Finding → 権限削除。外部アクセスが検出されたら、すぐにポリシーを削除するか Deny を追加。
ルール設計の工夫
イベントパターンで「AND条件」を書きたい場合、JSON のネスト構造が自動的に AND になります。例えば、"source": ["aws.guardduty"] かつ "detail.severity": [7, 8, 9] かつ "detail.type": ["EC2/UnauthorizedAccess*"] という風に。
ワイルドカード(*)で接頭辞マッチも可能。つまり EC2/UnauthorizedAccess の配下にある全 Finding Type をカバー。
クロスアカウント・クロスリージョンイベント
企業規模だと複数アカウントがありますよね。その場合、Security Account に中央 EventBus を構成して、Workload Account から「このアカウントの GuardDuty Finding を中央に送ってくれ」という設定をします。
結果として、セキュリティチームは「複数アカウントの Finding を一箇所で監視」——つまり、スケーラビリティが確保できます。
自動修復パイプラインの設計
GuardDuty が EC2 に問題を検出。EventBridge が Severity >= 7 でマッチして Lambda を実行。
Lambda 内では:
- EC2 の現在のセキュリティグループをタグに記録
- セキュリティグループを「隔離SG」(全 Ingress 拒否)に切り替え
- CloudWatch Metrics に「EC2 Isolated」カウント
- SNS で通知(セキュリティチームに即報)
次に、Run Command で隔離確認。その後、EBS スナップショット取得(フォレンジック用)。
最後に、Detective で調査開始。Timeline を確認して「いつ、何が起きた」を把握。
フォレンジック用 VPC 設計
重要なのが「フォレンジック VPC は外の世界と通信禁止」。つまり、Air-gapped network。攻撃者がフォレンジック VPC にも侵入するリスクを排除するため、インターネットゲートウェイもVPC Peering も禁止。
セキュリティチーム用に固定 IP からの SSH のみ許可。それ以外の egress は S3(証拠保存用)へのみ。
試験で狙われるポイント
Detective のデータ遅延は「最大48時間」ってやつですね。リアルタイム対応には向きません。
EventBridge のルール数は最大300個(ソフト上限)。ターゲット数は ルール当たり 100個。
InputTransformer で Finding の JSON をカスタマイズして、Lambda に渡すペイロード形式を制御。
言ってみれば「検出 → 自動修復 → 調査 → 監査」のサイクルを EventBridge と Detective で組み立てる——ここが試験の骨です。
まとめ
結論としてですね、セキュリティインシデント対応は「並列処理」です。
自動修復は EventBridge で即座に。調査は Detective で後追い。監査証跡は CloudTrail で永久記録。
この三つを組み合わせることで初めて「エンタープライズグレード」のセキュリティ体制が成立するわけです。