Japan

関連リンク

関連リンク

関連リンク

関連リンク

サイト内の現在位置

USBデバイスの接続痕跡について

NECセキュリティブログ

2024年10月11日

NECサイバーセキュリティ戦略統括部セキュリティ技術センターの山﨑です。
本ブログでは、「USBデバイスを使用したデータ持ち出し」という架空のシナリオを設定し、調査対象のマシンに残る痕跡を見ていきます。

目次

検証環境

VMware Workstation上で起動したWindows 11 Pro(バージョン23H2)で検証を行いました。使用したUSBデバイスは図 1の2つです。

図 1 検証に使用したUSBデバイス

図1の赤枠は、以降の調査で注目するベンダー名、製品名、シリアルナンバーが記載されている箇所です。

  • USBデバイスA
    • ベンダー名:SEAGATE
    • 製品名:Expansion Portable Drive
    • シリアルナンバー:2ABC88F2
  • USBデバイスB
    • ベンダー名:SanDisk
    • 製品名:Extreme Portable SSD
    • シリアルナンバー:2012D2405061

検証内容

「悪意ある従業員が、USBデバイスを使用して機密データを持ち出した」という架空のシナリオを設定します。具体的には、悪意ある従業員は表1の操作を実施したとします(この操作は筆者が実施)。

表 1 操作のタイムライン
操作 日時(JST) 内容
1 2024/7/27 23:10 USBデバイスAを接続
2 2024/7/27 23:13 USBデバイスAを切断
3 2024/8/3 1:29 デスクトップ上のkimitsuフォルダにアクセス
4 2024/8/3 1:34 USBデバイスBを接続
5 2024/8/3 1:36
~2024/8/3 1:40
デスクトップ上のkimitsuフォルダをUSBデバイスBにコピー(約6.47GB)
6 2024/8/3 1:42 USBデバイスB上のkimitsuフォルダにアクセス
7 2024/8/3 1:43 USBデバイスBを切断
8 2024/8/5 14:35 USBデバイスBを接続
9 2024/8/5 14:36
~2024/8/5 14:41
デスクトップ上のkimitsu-archive.zipファイルをUSBデバイスBにコピー(約6.32GB)
10 2023/8/5 14:43 USBデバイスBを切断

このような事案の調査の第一歩は、マシンに残された痕跡からデータが持ち出された可能性のあるUSBデバイスを特定することです。その後、被疑USBデバイスの調査を行います。しかし、既に廃棄されている場合なども考慮すると、必ずしも被疑USBデバイスを回収できるとは限りません。そこで本ブログでは、「被疑USBデバイスの回収ができなかった」という前提のもとで、マシンの調査から表1の操作の痕跡がどこに残るのか(または残らないのか)を検証します。操作10が完了した段階でマシンから調査データを収集し、以下4つの観点で調査を行います。

調査① マシンに接続されたUSBデバイスの調査
調査② USBデバイスの接続・切断日時の調査
調査③ データ持ち出し有無の調査
調査④ データ持ち出し先USBデバイスの調査

調査① マシンに接続されたUSBデバイスの調査

USBデバイスにはベンダーID(VID)とプロダクトID(PID)が割り当てられています。また、多くのUSBデバイスは、デバイスを一意に識別可能なシリアルナンバー(S/N)も持っています。これらの情報から、マシンに接続されたUSBデバイスを特定します。

はじめに、以下のレジストリキーを調査します。

  • SYSTEM\ControlSet001\Enum\USB(USBキー)
  • SYSTEM\ControlSet001\Enum\USBSTOR(USBSTORキー)

Registry Explorernew window[1]でUSBキー配下を見ると、複数のサブキーが存在することが確認できます(図 2)。サブキーにVIDとPIDという文字列がある通り、ここからUSBデバイスのベンダー名と製品名が得られます。ここで、「VID_0E0F」から始まる複数のキーがありますが、これらはVMware社のものです。本検証はVMware Workstation上に起動したWindows 11上で行っているため、これらのキーが存在しています。したがって、今回はVIDが0E0F以外のキー(赤枠)に注目します。

zoom拡大する
図 2 USBキー

赤枠内のVIDとPIDをDEVICE HUNTnew window[2] で検索した結果、本検証で使用したUSBデバイスとベンダー名、製品名が一致していることが確認できました(図 3)。

zoom拡大する
図 3 DEVICE HUNTでの検索結果

続いて、USBデバイスのS/Nを特定するためにUSBSTORキーを見ていきます。USBSTORキーのサブキーにも、Ven(Vendor)やProd(Product)という文字列があり、ここからもベンダー名や製品名が得られます(図 4)。また、これらのキーにはそれぞれ「323031…&0」、「000000002ABC…&0」という名前のサブキーが存在します。

zoom拡大する
図 4 USBSTORキー

上述のキーのうち“&0”の前までの文字列がUSBデバイスのS/Nである、という説明がされているWebサイトを複数見かけます。実際、図 1と比較するとUSBデバイスAはS/Nが「2ABC88F2」であり、図 4内の文字列と一致していることが確認できます。一方で、USBデバイスBのS/Nは「2012D2405061」であるため一致していません。本件について、SANSのKevin Ripa氏のブログでは、上述のキーに含まれる文字列はUSBデバイスのS/Nとは一致しないということが言及されていますnew window[3]。つまり、USBデバイスのS/Nを特定するためには、レジストリの調査だけでなく他のアプローチも必要になるということです。そこで、USBデバイスの接続に関するイベントが記録される以下のWindowsイベントログを調査します。

  • Microsoft-Windows-StorageSpaces-Driver/OperationalのイベントID207
  • Microsoft-Windows-Partition/DiagnosticのイベントID1006
  • Microsoft-Windows-Storsvc/DiagnosticのイベントID1001
  • Microsoft-Windows-DeviceSetupManager/AdminのイベントID112

これらのイベントログからは、USBデバイスに関する以下の情報が得られます(図 5)。

zoom拡大する
図 5 イベントログに記録されるUSBデバイス関連の情報

例として、表 1の操作8に該当するイベントとして記録されたMicrosoft-Windows-StorageSpaces-Driver/OperationalのイベントID207を見てみます(図 6)。イベントログに記録されているS/Nが、USBデバイスBのS/Nと一致していることが確認できます。

図 6 Microsoft-Windows-StorageSpaces-Driver/OperationalのイベントID207

調査② USBデバイスの接続・切断日時の調査

調査①で特定したUSBデバイスの接続・切断日時を調査します。はじめに、調査①で確認したイベントログが記録された日時を整理すると、2024/7/27にUSBデバイスAが、2024/8/3と8/5にUSBデバイスBが接続されていることが確認できます(図 7)。それぞれの日時も表 1と一致しており、USBデバイスの接続・切断日時が特定できました。

zoom拡大する
図 7 イベントログが記録された日時

USBデバイスの接続・切断日時に関する情報は、レジストリからも得られます。ここでは、USBSTORキー配下のキーを見ていきます({}部分は、USBデバイス毎に異なります)。

  • SYSTEM\ControlSet001\Enum\USBSTOR\{USBdeviceInfo1}\{USBdeviceInfo2}\Properties\{83da6326-97a6-4088-9453-a1923f573b29}

上記キーのサブキーである「0064」、「0066」、「0067」キーにそれぞれUSBデバイスの初回接続日時、最終接続日時、最終切断日時が記録されています。例えば、USBデバイスAの初回接続日時は、図 8から2024/7/27 23:10:11であることが確認できます(Registry Explorerの日時はUTCで表記されているため、JSTに変換)。

zoom拡大する
図 8 USBデバイスAの初回接続日時

同様に、USBデバイス毎にそれぞれのキーの値を確認した結果が図 9です。イベントログで確認した時刻と一致しています(誤差は許容)。

図 9 USBデバイスの接続・切断日時のレジストリ調査結果

USBデバイスの初回接続日時については、以下のファイルからも確認できます。このファイルは、特定のデバイスが初めてマシンに接続されたときの詳細情報を記録します。

  • C:\Windows\inf\setupapi.dev.log
図 10より、2024/7/27 23:10:13と2024/8/3 1:34:15に「Device Install (Hardware initiated)」のセクションが記録されていることが分かります。赤枠で囲んでいるランダムな文字列は、USBSTORキー配下のPartmgrキーにDiskIdとして記録されています(図 11)。以下のイベントログではRegistryIdとして記録されています。
  • Microsoft-Windows-Partition/DiagnosticのイベントID1006

zoom拡大する
図 10 setupapi.dev.log
zoom拡大する
図 11 USBデバイスAのDiskId

調査③ データ持ち出し有無の調査

ここまでの調査で、マシンに接続されたUSBデバイスと接続・切断日時が特定できました。調査③では、特定したUSBデバイスへのデータ持ち出しの有無を調査します。
このような目的の調査をデータ持ち出し元であるマシンを対象に行う場合、ShellBagsに手がかりとなる痕跡が残っている可能性があります。ShellBagsは、ユーザのフォルダ表示設定やアクセス履歴を含むレジストリのキーセットであり、各ユーザのNTUSER.datとUsrClass.datに記録されます。これらの記録には、USBデバイスやネットワークドライブ上のフォルダも含まれます。例えUSBデバイス切断後やフォルダ削除後であったとしても、システム上にフォルダが存在していたことを示す証跡として利用できます。
ShellBagsの解析には、ShellBags Explorernew window[1]を使います。ShellBags Explorerでs-yamazakiユーザのUsrClass.datを指定します。2024/8/3 1:42:48にEドライブ(FAT file system)上のkimitsuフォルダにアクセスした痕跡が確認できます(図 12)。同様に、この痕跡の約13分前である2024/8/3 1:29:42に、Desktop配下にあるkimitsuフォルダにもアクセスした痕跡が確認できます。

zoom拡大する
図 12 ShellBagsの調査結果

ShellBagsの調査結果から、「①s-yamazakiユーザがDesktop上のkimitsuフォルダにアクセス。②その後kimitsuフォルダをEドライブ(USBデバイス)にコピーし、③コピー先であるEドライブのkimitsuフォルダにアクセスした」というシナリオが考えられます。
上記シナリオが有力ではあるものの、以下のような可能性もあるため、これらの痕跡だけではDesktop上のkimitsuフォルダをUSBデバイスへコピーしたという事を示す明示的な痕跡にはならないと考えます。

  • 元々(たまたま)Eドライブ内にkimitsuという名前のフォルダがあり、悪意ある従業員がこのフォルダにアクセスした(アクセスしたkimitsuフォルダは、Desktop上からコピーしたkimitsuフォルダではない)。
  • マシン上にある別のフォルダをEドライブ上にコピー。その後、当該フォルダをkimitsuという名前にリネームし、アクセスした(つまりDesktop上のkimitsuフォルダ以外のフォルダをコピーしたということ)。

また、ShellBagsにEドライブ内のkimitsuフォルダへのアクセスの痕跡が残ったのは、表 1の操作6を行ったためです(ちゃんとUSBデバイスにkimitsuフォルダごとコピーができたかを確認する目的 ※私の癖?です)。この操作を行わなかった場合、ShellBagsには痕跡が残りません。

■補足

表 1には含まれていませんが、USBデバイス内のファイルにアクセスしていた場合には、以下のフォルダに、アクセスしたファイルのLNKファイルが生成されます。

  • %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent
LNKファイルをLECmdnew window[1]で解析した結果が図 13です。kimitsuフォルダ内のsecret-file1.txtにアクセスしていることが分かります。Desktop上のkimitsuフォルダにも同じ名前のファイルが含まれていた場合は(MFTやUSN Journalで確認可)、マシンからデータを持ち出された確度が高くなると考えます。また、LNKファイルの解析では、Volume Labelとして「Extreme SSD」という情報も取得できます。この情報は、以下のレジストリキーのサブキーで確認できる、Friendly Nameと一致しています(図 14)。
  • SOFTWARE\Microsoft\Windows Potable Devices\Devices

zoom拡大する
図 13 LNKファイルの解析結果
zoom拡大する
図 14 Friendly Name

調査④ データ持ち出先USBデバイスの調査

調査③で、Desktop上のkimitsuフォルダがEドライブ(USBデバイス)に持ち出された可能性があることが判明しました。ここまでの調査結果をタイムラインにすると、データが持ち出された可能性のあるUSBデバイスは、USBデバイスBであることは明らかです。この事実を明示的に確認するために、Eドライブ内のkimitsuフォルダにアクセスした2024/8/3 1:42:48時点で、Eドライブとして割り当てられていたUSBデバイスを調査します。

以下のレジストリキーを見ます。

  • SOFTWARE\Microsoft\Windows Search\VolumeInfoCache

zoom拡大する
図 15 VolumeInfoCacheキーの確認結果

図 15より、2024/8/3 1:34:14にEドライブがExtreme SSD(USBデバイスB)と紐づいたことが確認できます。この日時は、上記キーのサブキー「E:」の最終更新日時に該当します。つまり、この日時以降はExtreme SSD以外のUSBデバイスがEドライブと紐づいていなかったことを示します。よって、2024/8/3 1:42:48時点でEドライブとして割り当てられていたUSBデバイスは、USBデバイスBと特定できました。

まとめ

「USBデバイスを使用したデータ持ち出し」というシナリオを設定し、各操作の痕跡がマシン上のどこに残るかを検証しました。痕跡が確認できた調査を図 16に示します。
本検証では、操作5と操作9の痕跡が確認できませんでした(操作5は、前後の痕跡からコピーした可能性を考えることはできます)。

図 16 検証結果

また、今回は一つの事象を明らかにするために、複数のアプローチで調査しました。複数のアプローチで調査を行うことは、調査の確度を上げるというだけでなく、解析妨害にも対応できる可能性があります。攻撃者や内部犯は、事実を隠蔽するために痕跡を削除することがあります。ある痕跡が削除されていたとしても、別のアプローチを取れば事実を明らかにすることができるかもしれません。

  • 本ブログのようなシナリオを調査する際には、他にも調査に有用なレジストリキーやイベントログが複数存在します。ブログで取り上げた痕跡は、その一部であることをご承知おきください。

参考文献

執筆者プロフィール

山﨑 泉樹(やまざき せんじゅ)
セキュリティ技術センター リスクハンティング・システムグループ

ペネトレーションテスト、インシデント対応に関する業務に従事。
CISSP、CCSP、RISS、GPEN、GCPN、GCFA、SANS FOR508メダルを保持。

執筆者の他の記事を読む

アクセスランキング

Escキーで閉じる 閉じる