泥棒が「隠したメモ」を見つけ出す技術:ページファイルとハイバネーションファイルの裏側
こんにちは!現場でインシデント対応をしていると、よく「メモリダンプを取れば全て解決する」という夢を見ている人に出会います。でも現実はそう甘くありません。攻撃者は、メモリという「現在進行形の脳みそ」を巧みに隠したり、消去したりするからです。
今回は、物理メモリだけでは足りない時、あるいは攻撃者が痕跡を消そうとした時に、「あえてゴミ箱や裏庭を探す」という少し泥臭い、でも非常に強力なメモリフォレンジックの手法についてお話しします。
—
「家」に例えるメモリとストレージ
まず、パソコンを「家」に例えてみましょう。
- 物理メモリ(RAM): あなたが今まさに作業をしている「机の上」です。広ければ広いほど仕事が捗りますが、電源を切ると(=家に帰ると)机の上は片付けられて真っ白になります。
- ページファイル(pagefile.sys): 机が散らかって乗り切らなくなった時に、一時的に棚に押し込んだ「書きかけのメモ」です。
- ハイバネーションファイル(hiberfil.sys): 「明日また続きからやりたい!」と、机の上の状態をそのまま箱に詰め込んで、玄関の隅に置いておく「緊急時の避難ボックス」です。
攻撃者は、わざわざ机の上(メモリ)に重要な証拠を残しません。でも、彼らが去った後、「玄関の隅(ハイバネーションファイル)」や「棚の奥(ページファイル)」を調べれば、彼らが何をしていたのかの断片が必ず見つかるのです。
—
なぜこれが「宝の山」なのか?
攻撃者が侵入した際、彼らは自分の痕跡を消すために、実行中の悪意あるプロセスを終了させたり、メモリ上のデータをクリアしようとします。しかし、Windowsは自動的にバックグラウンドでページファイルや休止状態ファイルにデータを書き込んでいます。
つまり、「犯人は証拠を消したつもりでも、OSという名の真面目な秘書が、勝手にコピーを棚の奥に保管してくれていた」という状態なのです。これを使わない手はありませんよね。
—
実際にどうやって「証拠」を掘り起こすのか?
現場では、Volatility という強力なツールを使います。ただ、このツールを動かすには少しコツがいります。まずは「ページファイル」を抽出する際のイメージを持っておきましょう。
1. ページファイルの抽出(Volatility の例)
物理メモリのダンプだけでなく、pagefile.sys をフォレンジックツールで解析可能な形式に変換する必要があります。
# 現場での作業イメージ:ページファイルをスキャンするコマンド
# vol.py は Volatility 3 の実行ファイル
# -f で対象ファイルを指定し、メモリの断片からプロセス情報を抽出します
python3 vol.py -f memory_dump.raw windows.memmap --pid 1234 --dump
# 解説:特定のプロセス(PID: 1234)がページファイルに書き出した残骸を抽出します。
# 攻撃者が隠した「パスワード」や「通信先URL」がここから出てくることが多いです。
2. ハイバネーションファイルの解析
休止状態ファイル(hiberfil.sys)は、PCをシャットダウンする直前のメモリそのものです。これがある場合、PCの電源が落ちていても、まるで「時間が止まった瞬間のメモリ」を解析するのと同じことができます。
- 注意点: ファイルを解析する際は、必ず「書き込み禁止」の状態(リードオンリー)でマウントしてください。証拠に触れた瞬間にタイムスタンプが変わってしまうと、裁判や報告書で「証拠能力がない」と突っ込まれてしまいますからね。
—
私たちIT担当者ができる「守りの一手」
「解析する側」の話をしましたが、「守る側」としても知っておくべきことがあります。
1. ページファイルの肥大化を監視する:
もし急激にページファイルが書き換わっていたら、それは攻撃者が大量のデータをメモリ上で処理している証拠かもしれません。ログ監視ツールで、pagefile.sys への異常なアクセス頻度をチェックしておくのは非常に有効な防犯対策です。
2. ハイバネーションを無効にする(セキュリティ要件による):
極めて機密性の高い端末では、hiberfil.sys にパスワードや暗号鍵が残るリスクを避けるため、休止状態を無効化する設定も検討してください。
# Windowsで休止状態を無効化するコマンド(管理者権限で実行)
powercfg -h off
# 解説:これで玄関の隅に避難ボックス(ハイバネーションファイル)が作られなくなります。
# 重要なデータを扱う端末では、セキュリティポリシーに合わせて使い分けましょう。
—
最後に:泥臭い調査の先にあるもの
メモリフォレンジックは、まるで推理小説のようです。一見、何もないように見えるメモリダンプの中から、ページファイルの断片を繋ぎ合わせ、攻撃者が打ったコマンドを復元した時の達成感は、何物にも代えられません。
皆さんも、もしインシデントに遭遇したら、まずは「机の上(メモリ)」だけを見て諦めないでください。「棚の奥」や「玄関の隅」には、犯人が残した尻尾が必ず隠れています。
一歩ずつ、技術の深淵を覗いていきましょう。また現場でお会いしましょう!
コメント