USN ジャーナルでデータ流出と USB コピーを検出する

大量のファイルコピー、USB への投下、ステージング用ディレクトリは、いずれも $UsnJrnl:$J に識別可能な形跡を残します。フィルタすべきパターンと実例を解説します。

著者: 約 2 分で読了

ランサムウェアに次いで二番目によく出る DFIR の質問は、「何かここから外に出たか?」の何らかのバリエーションです。USN ジャーナルはその答え探しを始めるのに最も安い場所の一つです。あらゆる USB コピー、あらゆるクラウド同期アップロード、そしてテンポラリフォルダにすべてを投げ込んでから ZIP する手口は、$J に識別可能な形跡を残します。二つのフィルタと親パスでのピボットだけで、候補となる流出ウィンドウを 20 分以内にトリアージできるくらいに識別可能です。

本記事は、それらのパターンを流出チャネル別に見つけるためのプレイブックです。

USB ドライブは最も明瞭な痕跡を残す

ユーザがリムーバブルボリュームを接続すると、Windows はドライブレターを割り当て、ボリュームが NTFS なら、そのデバイス自身の $UsnJrnl を持ちます。USB に 対する ファイルコピーは、書き込み先のジャーナルに FileCreate | Close と一連の DataExtend | Close レコードとして残ります。ソースディスク から のコピーはソース側にはより緩やかな痕跡を残します。open と close のイベントが残り、AV スキャンと読み込み後のファイルシステムキャッシュによって BasicInfoChange | Close がよく生成されます。

実際の案件で通常手元にあるもの:

  • ソースディスクのジャーナル。何が開かれたか、作成されたテンポラリやアーカイブファイル、ユーザが片付けたなら最後の削除掃きが見えます。
  • レジストリハイブSYSTEM\MountedDevicesSYSTEM\CurrentControlSet\Enum\USBSTORNTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2setupapi.dev.log を合わせれば、どの物理デバイスがいつ接続されたかが分かります。registry parser でパースします。
  • 書き込み先ボリュームのジャーナル。USB イメージがあるなら、ここに実際のファイル書き込みが存在します。

ソース側の決定的なシグナルは、コピー前のアーカイブパターンです。隠したいことのあるユーザのほとんどは、ドライブを持ち出す前に 7-Zip かエクスプローラ内蔵の圧縮に手を伸ばします。テンポラリパスでの .7z.zip.rar、あるいはランダム名のファイルの FileCreate の後、最終サイズに達するまで持続的な DataExtend | Close レコードが続きます。パスは通常 \Users\<u>\AppData\Local\Temp\\Users\<u>\Desktop\、またはユーザプロファイルのルートです。

USB 識別側では、ジャーナル中のタイムスタンプを Microsoft-Windows-DriverFrameworks-UserMode%4Operational.evtx の接続/切断イベントと相互参照してください。EVTX パーサ で数クリックです。\Users\<u>\AppData\Roaming\Microsoft\Windows\Recent\ 配下の LNK ファイルジャンプリスト を組み合わせれば、ユーザが USB から明示的に開いた証拠が得られます。

古典的なステージング→アーカイブのパターン

MITRE ATT&CK の T1074 Data Staged に対応し、ディスク上では次のように見えます。

FileCreate | Close   C:\Users\bob\AppData\Local\Temp\sales_q3\
FileCreate | Close   C:\Users\bob\AppData\Local\Temp\sales_q3\report.xlsx
DataExtend | Close   C:\Users\bob\AppData\Local\Temp\sales_q3\report.xlsx
FileCreate | Close   C:\Users\bob\AppData\Local\Temp\sales_q3\customers.csv
DataExtend | Close   ...
...
FileCreate | Close   C:\Users\bob\AppData\Local\Temp\sales_q3.zip
DataExtend | Close   ...           ← 多数、ファイルが大きく成長
FileDelete | Close   C:\Users\bob\AppData\Local\Temp\sales_q3\*  (片付け)

三つのシグナルが順に現れます。

  1. 一つのステージングディレクトリ内での FileCreate のバースト。
  2. 続いて発生する単一アーカイブに対する FileCreate と継続的な DataExtend。最終サイズはステージング対象ファイルの合計と概ね一致します。
  3. アーカイブクローズの直後に発生する、ステージングディレクトリの削除掃き。

個別のシグナルはどれもノイジーです。組み合わせれば診断的になります。\AppData\Local\Temp\\Users\Public\\Downloads\ などユーザツリー内の書き込み可能領域における FileCreate をフィルタし、親ディレクトリでクラスタリングして 60 秒以内に 50 件超の作成を探します。このリズムでインサイダー窃取のステージングや大半の infostealer ワークロードを捉えられます。既知のビルドパス (node_modules\target\Debug\Release\obj\.next\dist\) はフィルタから除外してください。これらは同じ形のバーストを生成し、除外しないと結果を支配してしまいます。

クラウド同期によるステージング

OneDrive、Dropbox、Google Drive、Box はいずれもローカル同期フォルダを維持し、エージェントが拾い上げた瞬間に中身をすべて押し出します。ジャーナルは二つの診断的パターンを露呈します。

同期フォルダへの大量 RenameNewName 新しい親が \Users\<u>\OneDrive\\Users\<u>\Dropbox\\Users\<u>\Google Drive\\Users\<u>\Box\ であり、古い親が Desktop\Documents\Downloads\ です。リネームの片割れにはファイルの元の親参照が保存されるため、ファイルが消えた後でも由来を証明できます。

ユーザアプリ由来の FileCreate を伴わない、同期フォルダ内ファイルの DataExtend | Close これはエージェント自身による書き込みで、クラウド側からローカル副本へのダウンロードです。アップロード方向に欲しいのは 作成 イベントです。OneDrive.exeDropbox.exe などのバックグラウンド同期エージェントは AppData\Local\ 配下のサブディレクトリにログファイルも書き込むため、リネーム証拠が乏しい場合に活動範囲を区切るもう一つの手がかりになります。

頻度は低いですが知っておく価値があるのは、クラウドフォルダを指すジャンクションやシンボリックリンクに対して Copy-Item をスクリプトする手口で、リネームのペアに加えて ReparsePointChange レコードが発生します。

BITS、ネイティブなアップロードツール、Living-off-the-land 流出

最近のランサムウェア案件でより頻繁に見かけるパターンとして、オペレータが bitsadmin.exe や PowerShell の Start-BitsTransfer を使ってファイルを押し出すことがあり、ときには有効な証明書を持つ攻撃者管理のクラウドストレージへ送ります。ジャーナルには次が見えます。

  • \ProgramData\Microsoft\Network\Downloader\ 配下の BITS ジョブ状態ファイルの FileCreate (qmgr.dbqmgr0.datqmgr1.dat に該当)。
  • アップロードの場合、転送直前に \Users\<u>\AppData\Local\Microsoft\BITS\ にステージングされた送信元ファイル。

Microsoft-Windows-Bits-Client%4Operational.evtx のイベント ID 59 (ジョブ作成)、60 (ジョブ転送済)、61 (ジョブ完了) と組み合わせます。BITS 流出に対する EVTX ブリッジは、利用可能な相関のうち最もクリーンなものの一つです。

rclone.exeMEGAsync.exe も同様です。これらはアプリディレクトリとログファイルに予測可能な FileCreate のシグネチャを生み、\Users\<u>\AppData\Roaming\rclone\ で宛先を列挙する設定を確認できます。

実戦で役に立つヒューリスティック

十分な案件経験を経て、実際の流出を一貫してフラグしてくれるヒューリスティック:

create のバースト。 T 秒以内に一つのディレクトリで N 件超の FileCreate。ベースラインに合わせて調整してください。デスクトップホストでは N=50, T=60 が出発点です。

バースト後のアーカイブ。 create バーストから数分以内に、.zip.7z.rar.tar.gz.tar.zst.iso のいずれかの拡張子を持つ単一の FileCreate、続いて数 MB 規模まで累積する DataExtend。アーカイブサイズはステージング済みファイルの累積サイズと概ね一致します。

ディレクトリ境界を越える大量リネーム。 新しい親パスが古いそれと構造的に異なる RenameNewName レコード。Documents\ から OneDrive\Desktop\ から Users\Public\Downloads\ から \AppData\Local\Microsoft\BITS\ など。MFT 解決済みのフルパスに対する正規表現として簡単に表現できます。

業務時間外のバースト。 上記のいずれかが、ユーザの通常業務時間外に発生したもの。実際のセッション境界は Security.evtx4624 ログオンで相互参照します。

アーカイブ後の削除掃き。 アーカイブがクローズした後のステージングディレクトリに対する FileDelete クラスタ。ユーザが片付けようとしている形跡です。多数のファイルが数秒以内に削除され、すべてが親を共有するというクラスタ形状は、開発/ビルドのワークフロー以外では珍しいものです。

本ページのパーサは時間ウィンドウと reason ごとのフィルタを公開しており、バースト検出やリネームクラスタリングがそれぞれ一クリックで行えます。業務時間外の分析には CSV にエクスポートして時刻別でピボットしてください。

$UsnJrnl に現れないもの

実際の流出手法の中には、有用な USN シグナルを残さないものがあります。

  • ブラウザの POST、変数からの Invoke-WebRequest -InFileGet-Content をパイプする curl による メモリからの直接アップロード。ディスクには何も落ちません。
  • ソース側が所有していない ネットワーク共有からの読み出し。ファイルがそこに存在しなかったため、ホストのジャーナルには何もありません。
  • 画面キャプチャによる流出。スクリーンショットファイルだけがディスクに落ちます。実際のデータはレンダリングされた画像経由で出ていきます。
  • 印刷\Windows\System32\spool\PRINTERS\ の活動だけを残します。これはこれで独自のフォレンジック痕跡です。
  • DNS や ICMP のトンネリング。ディスクには何も触れません。ネットワークキャプチャと Sysmon のイベント 3 に切り替えてください。

これらについては、EVTX、Sysmon のネットワーク接続 (イベント 3)、ブラウザ履歴、プロセス別のネットワークバイトを見るための SRUMRAM ダンプ、または PRINTERS スプールアーティファクトに切り替えてください。MITRE ATT&CK の Exfiltration 戦術ページ では、各手法と実際に残る痕跡の場所が列挙されています。

実例

実際の案件で流出を示すためにエクスポートしそうな CSV の例:

時刻Reasonsパス備考
19:42:11FileCreate Close\Users\b\Temp\q3\新規フォルダ
19:42:13–14FileCreate × 84\Users\b\Temp\q3\*.xlsxバースト
19:44:08FileCreate Close\Users\b\Temp\q3.zipアーカイブ
19:44:08–22DataExtend × ~40\Users\b\Temp\q3.zip187 MB まで成長
19:44:45RenameNewName Close\Users\b\OneDrive\q3.zip同期へ移動
19:45:11FileDelete × 84\Users\b\Temp\q3\*片付け

このタイムラインはほぼ動かしようのない証拠です。ジャーナルがなければレジストリ、Prefetch、シャドウコピー、OneDrive 自身のログから再構築する必要があり、5 倍の労力で、信頼度は半分になります。

参考資料

  • MITRE ATT&CK — 全体の分類は Exfiltration 戦術T1074 Data Staged を参照。
  • CISA、インサイダー脅威に関する資料 — ベースラインとなる前提と検出しきい値は、実際の企業環境で通用するものに近いです。
  • The DFIR Report — 流出→暗号化のパターンをタイムライン中の USN 証拠と共に段階的に記録した、長文の侵入分析が複数公開されています。これらのパターンが実運用でどう見えるかについて、公的なグラウンドトゥルースに最も近い資料です。