侵害されたEC2インスタンスへの対応 EBSスナップショットによる証拠保全と分析

目次

概要

インシデントレスポンスの全体フローで解説した5フェーズのうち、この記事では分析(Analysis)フェーズにおけるEBSスナップショットを使った証拠保全と、フォレンジクス専用環境での分析方法について詳しく解説します。

あわせて読みたい
侵害されたEC2インスタンスへの対応 インシデントレスポンスの全体像  概要 EC2インスタンスが侵害された場合、「まず何をするか」が調査の成否を左右します。 AWSはセキュリティインシデントへの対応として、NISTのフレームワークに...

侵害されたEC2インスタンスのディスク内容を調査する際、侵害済みのインスタンスに直接ログインすると、ファイルシステムへの書き込みが発生し証拠が汚染されるリスクがあります。この問題を避けるために、AWSではEBSスナップショットを取得して別環境にアタッチするというアプローチが推奨されています。

 この記事のメリット

  • EBSスナップショットがフォレンジクスに適している理由を理解できる
  • フォレンジクス専用アカウントにスナップショットをコピーすべき理由がわかる
  • コンソールを使ったスナップショット取得・共有・アタッチの手順を習得できる
  • SCS試験の「証拠保全・調査フェーズ」の問いに正確に答えられるようになる

 技術解説

 EBSスナップショットの仕組み

EBSスナップショットはボリュームのある時点の状態をS3に保存する機能です。フォレンジクスの文脈での重要な特性は以下の通りです。

  • インスタンスを停止・終了しても消えない: スナップショットはS3に保存されるため、元のインスタンスの状態に左右されません
  • 読み取り専用での利用が可能: スナップショットから新しいボリュームを作成してアタッチすることで、元のデータを変更せずに参照できます
  • アカウントをまたいでコピーできる: 別のAWSアカウントにスナップショットを共有・コピーできます

 なぜフォレンジクス専用アカウントが必要か

侵害されたアカウント内にスナップショットを保管したままにすると、以下のリスクがあります。

  • 攻撃者がまだアカウントへのアクセスを持っている場合、スナップショットを削除・改ざんされる可能性がある
  • インシデント対応中に誤操作でスナップショットを削除してしまうリスクがある
  • 本番環境と同じアカウントで分析を行うと、分析作業が本番環境に影響を与える可能性がある

フォレンジクス専用アカウントにスナップショットをコピーすることで、これらのリスクを切り離せます。

 フォレンジクス環境でのアタッチの仕組み

スナップショットから新しいEBSボリュームを作成し、フォレンジクス用のEC2インスタンスにアタッチします。

フォレンジクスEC2インスタンスはアタッチされたボリュームをマウントして読み取り専用で参照できます。分析ツール(ファイルシステム解析・ログ解析など)はフォレンジクスインスタンス上で実行するため、元のボリュームのデータは変更されません。

 実践

ここでは、コンソールを使ったスナップショットの取得からフォレンジクス環境へのアタッチまでの手順を説明します。

 前提条件

  • リージョン: ap-northeast-1(東京)
  • 本番アカウント: 侵害されたEC2インスタンスが1台起動済みの状態
  • フォレンジクスアカウント: フォレンジクス分析用のEC2インスタンスが1台起動済みの状態
  • 両アカウントのAWSアカウントIDを把握していること
リソース種別リソース名(例)アカウント用途
EC2インスタンスincident-response-lab-instance本番アカウント侵害されたインスタンス
EBSスナップショットforensic-YYYYMMDD-i-xxxxxxxxxxxxxxxxx本番アカウント → フォレンジクスアカウントへコピー証拠保全
EBSボリュームスナップショットから作成フォレンジクスアカウント分析用ボリューム
EC2インスタンスforensic-instanceフォレンジクスアカウント分析用インスタンス

 手順1: EBSスナップショットの取得(本番アカウント)

  • AWSマネジメントコンソールに本番アカウントでログインし、右上のリージョンが「アジアパシフィック(東京) ap-northeast-1」であることを確認します。
  • 上部の検索バーに EC2 と入力し、表示された「EC2」を選択します。
  • 左側ナビゲーションの「インスタンス」→「インスタンス」を選択します。
  • 侵害されたインスタンス(例: incident-response-lab-instance)のチェックボックスを選択します。
  • 画面下部の「ストレージ」タブを選択します。
  • 「ブロックデバイス」セクションに表示されているボリュームID(例: vol-xxxxxxxxxxxxxxxxx)のリンクをクリックします。
  • ボリューム詳細ページに遷移します。対象ボリュームのチェックボックスを選択します。
  • 画面上部の「アクション」をクリックし、「スナップショットの作成」を選択します。
  • 「スナップショットの作成」画面で以下を入力します。
    • 説明: forensic-YYYYMMDD-i-xxxxxxxxxxxxxxxxx(日付とインスタンスIDを含めて識別しやすくします)
    • タグ: 「タグを追加」をクリックし、キー: Purpose、値: forensic-investigation と入力します(任意ですが、フォレンジクス用であることを明示しておくと管理しやすくなります)
    • その他の項目はデフォルトのままにします

暗号化されたボリュームのスナップショットは自動的に同じKMSキーで暗号化されます。暗号化の設定は変更できません。

  • 「スナップショットの作成」をクリックします。
  • 画面上部に「スナップショットの作成リクエストが成功しました」というメッセージが表示されます。表示されたスナップショットIDのリンクをクリックして、スナップショットの詳細画面に移動します。
  • 「ステータス」が「保留中」から「完了済み」に変わることを確認します。変更されたデータのS3への転送が完了するまで、ボリュームサイズによって数分から数時間かかる場合があります。

 手順2: フォレンジクスアカウントへのスナップショット共有(本番アカウント)

AWSマネージドキー(aws/ebs)で暗号化されたスナップショットは他のアカウントと共有できません。その場合は、カスタマーマネージドキーで暗号化したスナップショットのコピーを作成してから共有してください。

  • ナップショットの詳細画面上部の「アクション」をクリックし、「スナップショットの設定」→「アクセス権限を変更」を選択します。
  • 「アクセス権限を変更」画面で以下を設定します。
    • スナップショットの共有: 「プライベート」が選択されていることを確認します
    • 「AWSアカウント番号」の入力欄にフォレンジクスアカウントの12桁のAWSアカウントID(ハイフンなし)を入力します
    • 「追加」をクリックします
  • 入力したアカウントIDが「共有アカウント」の一覧に表示されていることを確認します。
  • 「アクセス許可を変更」をクリックします。

変更が完了するまで待機します。

 手順3: フォレンジクスアカウントでスナップショットをコピー(フォレンジクスアカウント)

フォレンジクスアカウントに切り替えて操作します。

  • AWSマネジメントコンソールにフォレンジクスアカウントでログインし、右上のリージョンが「アジアパシフィック(東京) ap-northeast-1」であることを確認します。
  • EC2のコンソール画面から左側ナビゲーションの「Elastic Block Store」→「スナップショット」を選択します。
  • スナップショット一覧の上部にあるフィルターで「プライベートスナップショット」を選択します。
  • 本番アカウントから共有されたスナップショットが一覧に表示されます。対象のスナップショットのチェックボックスを選択します。
  • 画面上部の「アクション」をクリックし、「スナップショットのコピー」を選択します。
  • 「スナップショットのコピー」画面で以下を設定します。
    • 送信先リージョン: ap-northeast-1 が選択されていることを確認します
    • 説明: 必要に応じて説明を入力します(例: forensic-copy-YYYYMMDD
    • その他の項目はデフォルトのままにします
  • 「スナップショットをコピー」をクリックします。
  • スナップショット一覧画面に戻り、フィルターを「自己所有のスナップショット」に切り替えます。コピーされたスナップショットが作成されていることを確認します。

共有されたスナップショットをそのまま使わずコピーすることが重要です。コピーはフォレンジクスアカウントが所有する一意のリソースIDを持つ独立したリソースとなり、本番アカウント側でスナップショットの共有解除や削除が行われても影響を受けません。暗号化されたスナップショットをコピーする場合は、フォレンジクスアカウントが所有するKMSキーで再暗号化してコピーすることが推奨されます。

 手順4: ボリュームの作成とフォレンジクスインスタンスへのアタッチ(フォレンジクスアカウント)

  • コピーしたスナップショットのチェックボックスを選択します。
  • 画面上部の「アクション」をクリックし、「スナップショットからボリュームを作成」を選択します。
  • 「ボリュームの作成」画面で以下を設定します。
    • ボリュームタイプ: デフォルトのままにします
    • サイズ: デフォルトのままにします(スナップショット元のボリュームサイズが自動入力されます)
    • アベイラビリティゾーン: フォレンジクス用EC2インスタンス(forensic-instance)と同じアベイラビリティゾーンを選択します(例: ap-northeast-1a
    • その他の項目はデフォルトのままにします
  • 「ボリュームの作成」をクリックします。
  • 画面上部に「ボリュームが正常に作成されました」というメッセージが表示されます。表示されたボリュームIDのリンクをクリックして、ボリュームの詳細画面に移動します。
  • 「ボリュームの状態」が「使用可能」になっていることを確認します。
  • 画面上部の「アクション」をクリックし、「ボリュームのアタッチ」を選択します。
  • 「ボリュームのアタッチ」画面で以下を設定します。
    • インスタンス: フォレンジクス用EC2インスタンス(forensic-instance)を選択します
    • デバイス名: 自動入力されたデバイス名(例: /dev/sdf)を確認します
  • 「ボリュームのアタッチ」をクリックします。
  • ボリュームが追加されていることを確認します。

 手順5: フォレンジクスインスタンスでの読み取り専用マウント(フォレンジクスアカウント)

フォレンジクス用EC2インスタンスにSSH(またはSSM Session Manager)でログインし、アタッチされたボリュームを読み取り専用でマウントします。

  • フォレンジクス用EC2インスタンスにログインします。
  • 以下のコマンドを実行し、アタッチされたデバイスが認識されていることを確認します。
lsblk

出力例:

NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
└─xvda1 202:1    0   8G  0 part /
xvdf    202:80   0   8G  0 disk
└─xvdf1 202:81   0   8G  0 part

xvdf がアタッチされたフォレンジクス対象のボリュームです。

  • マウント先のディレクトリを作成します。
sudo mkdir -p /mnt/forensic
  • 読み取り専用でマウントします。-o ro オプションにより、ファイルシステムへの書き込みが禁止されます。
sudo mount -o ro /dev/xvdf1 /mnt/forensic
  • マウントされたことを確認し、必要な調査を行います。
df -h /mnt/forensic
実行例

 まとめ

EBSスナップショットを使ったフォレンジクスの手順は以下の流れになります。

手順操作ポイント
スナップショット取得本番アカウントでボリュームのスナップショットを作成侵害時点のディスク状態を保全
アカウント間共有フォレンジクスアカウントへ共有・コピー証拠の改ざんリスクを本番環境から切り離す
ボリューム作成スナップショットからボリュームを作成してアタッチ元のデータを変更しない
読み取り専用マウント-o ro オプションでマウント分析中の誤変更を防ぐ

SCS試験では「フォレンジクス調査において適切な手順はどれか」という問いで、「侵害されたインスタンスに直接ログインして調査する」ではなくスナップショットを取得して別環境で分析するという点が問われます。また、フォレンジクス専用アカウントへのコピーが推奨される理由(証拠保全・改ざん防止)も押さえておきましょう。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社Luxy(https://luxy-inc.com)の代表取締役.

2018年〜インフラエンジニアとしてキャリアをスタートし、オンプレミスのネットワーク・サーバ環境で3年半、クラウド環境で4年半の8年間エンジニアとして従事。
2021年に佐藤氏の創業した会社を引き継ぎ、代表に就任。

目次