【入門編】 メモリフォレンジックにおけるタイムライン分析の自動化 – インシデントレスポンス & フォレンジック(DFIR)防御ガイド

「PCの中の防犯カメラ」を巻き戻そう!メモリフォレンジックで攻撃者の足跡を追う方法

こんにちは!セキュリティ現場の最前線で、日々泥臭く「犯人」を追いかけているSOCアナリストです。

さて、皆さんは家を出る時、鍵をかけますよね?もし家に泥棒が入ったとしても、最近は玄関に防犯カメラがあって「いつ、誰が、何をしたか」が後から確認できます。

でも、パソコンの中の世界はどうでしょう?攻撃者は痕跡を消すのが非常に上手です。ログを消したり、ファイルを隠したり……。そんな時、私たちが最後の砦として頼りにするのが「メモリフォレンジック」という技術です。

今日は、メモリという「PCの脳みそ(一時的な記憶領域)」に残された断片的な記憶から、攻撃者の活動を時系列で浮かび上がらせる「タイムライン分析」の魔法についてお話しします。

—

1. なぜ「メモリ」を見るのか?(泥棒の足跡は脳に残る)

PCのストレージ(HDDやSSD)は、いわば「本棚」です。ここにはファイルが整理されて置かれていますが、攻撃者はここを改ざんしたり、ログを消したりします。

一方、「メモリ(RAM)」は、PCが今まさに処理している「作業机の上」です。攻撃者がどんなプログラムを実行し、どのサイトにアクセスし、どんなコマンドを打ったか……その「生きた動き」は、メモリの中に一時的に、かつ消しきれない形で残ることがあります。

このメモリのダンプ(スナップショット)を解析して、まるで防犯カメラの映像を巻き戻すように「時系列」で可視化するのが、今回のテーマであるtimelinerというツールです。

—

2. Volatilityの「timeliner」で何が見えるのか

メモリ解析のデファクトスタンダードである「Volatility」には、timelinerという機能があります。これは、メモリ上に存在する全てのプロセスやファイル操作、ネットワーク接続情報から「タイムスタンプ(日時)」を引っ張り出し、時系列順に並べ替えてくれるものです。

攻撃者は、システムに侵入した直後、まず「自分の存在を隠すためのツール」をダウンロードし、次に「管理者の権限を奪うためのプログラム」を動かします。timelinerを使えば、これらの断片的な「点」を繋いで、「線」として攻撃の全貌を見ることができるんです。

—

3. 早速やってみよう!分析の実践例

まずは、メモリダンプファイル(memdump.rawとします)からタイムラインを抽出するコマンドを見てみましょう。

# Volatility 3を使用したタイムライン抽出の例
# -f でメモリファイルを指定し、windows.timelinerプラグインを実行します
# 抽出結果をcsvファイルに出力して、後でExcelなどで見やすくします
python3 vol.py -f memdump.raw windows.timeliner > timeline_report.csv

このコマンドを実行すると、以下のようなデータがずらりと出てきます(イメージ)。

| 日時 | タイプ | 内容 |
| :— | :— | :— |
| 2023-10-27 10:00:01 | Process | powershell.exe が起動されました |
| 2023-10-27 10:00:05 | Network | 外部IPへ通信が発生しました |
| 2023-10-27 10:00:10 | File | evil_script.ps1 が作成されました |

「おや?powershell.exeが起動した直後に、怪しいスクリプトが作られているぞ?」……こんな風に、「何かが起きた前後の文脈」が見えてくるのが、この分析の醍醐味です。

—

4. 現場のアナリストが教える「盲点」

教科書には載っていない、現場の知見を少しだけお教えしますね。

1. 「時間が飛んでいる場所」を探せ!
攻撃者は自分の痕跡を消すために、特定の期間のログを削除したり、システム時間を偽装したりすることがあります。タイムラインが急に空白になっている場所や、時間が逆行している場所は、攻撃者が「何かを隠そうとした場所」である可能性が高いです。
2. 「正当なツール」の悪用を見逃すな!
最近の攻撃者は、powershell.exeやcmd.exeといったWindows標準のツールを悪用します。これらはPCを動かすために必要なものなので、動いていても驚くことはありません。でも、「いつ、どんな引数で動いたか」をタイムラインで見ると、明らかに怪しい動き(外部への通信を試みるようなコマンドなど)が浮き彫りになります。

—

5. 一歩ずつ対策を学んでいきましょう!

初めてこの作業を行うと、あまりの情報の多さに圧倒されるかもしれません。「どこを見ればいいの?」と迷うのは当然です。

最初は、以下の3つに絞って眺めてみてください。

  • 通信が発生した時間(外部と何かが繋がった瞬間)
  • 新しいプロセスが生まれた時間(見慣れない名前のプログラムが動き出した瞬間)
  • ファイルが作成された時間(ダウンロードしたばかりの怪しいファイル)

これらを繋ぎ合わせるだけで、皆さんはもう立派な「デジタル探偵」です。

セキュリティは、一度に完璧を目指す必要はありません。まずは「怪しい動きに気づく」という第一歩から始めてみてください。PCの中で何が起きているのか、その裏側を少し覗いてみるだけで、皆さんの開発環境やサーバーの守りは格段に強固になりますよ!

もしまた分からないことがあれば、いつでも相談してくださいね。一緒に一つずつ解明していきましょう!

コメント

タイトルとURLをコピーしました