Japan
サイト内の現在位置
USBデバイスの接続痕跡について
NECセキュリティブログ2024年10月11日
NECサイバーセキュリティ戦略統括部セキュリティ技術センターの山﨑です。
本ブログでは、「USBデバイスを使用したデータ持ち出し」という架空のシナリオを設定し、調査対象のマシンに残る痕跡を見ていきます。
目次
検証環境
VMware Workstation上で起動したWindows 11 Pro(バージョン23H2)で検証を行いました。使用したUSBデバイスは図 1の2つです。

図1の赤枠は、以降の調査で注目するベンダー名、製品名、シリアルナンバーが記載されている箇所です。
- USBデバイスA
- ベンダー名:SEAGATE
- 製品名:Expansion Portable Drive
- シリアルナンバー:2ABC88F2
- USBデバイスB
- ベンダー名:SanDisk
- 製品名:Extreme Portable SSD
- シリアルナンバー:2012D2405061
検証内容
「悪意ある従業員が、USBデバイスを使用して機密データを持ち出した」という架空のシナリオを設定します。具体的には、悪意ある従業員は表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 Explorer[1]でUSBキー配下を見ると、複数のサブキーが存在することが確認できます(図 2)。サブキーにVIDとPIDという文字列がある通り、ここからUSBデバイスのベンダー名と製品名が得られます。ここで、「VID_0E0F」から始まる複数のキーがありますが、これらはVMware社のものです。本検証はVMware Workstation上に起動したWindows 11上で行っているため、これらのキーが存在しています。したがって、今回はVIDが0E0F以外のキー(赤枠)に注目します。


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


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


上述のキーのうち“&0”の前までの文字列がUSBデバイスのS/Nである、という説明がされているWebサイトを複数見かけます。実際、図 1と比較するとUSBデバイスAはS/Nが「2ABC88F2」であり、図 4内の文字列と一致していることが確認できます。一方で、USBデバイスBのS/Nは「2012D2405061」であるため一致していません。本件について、SANSのKevin Ripa氏のブログでは、上述のキーに含まれる文字列はUSBデバイスのS/Nとは一致しないということが言及されています[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)。


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

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


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に変換)。


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

USBデバイスの初回接続日時については、以下のファイルからも確認できます。このファイルは、特定のデバイスが初めてマシンに接続されたときの詳細情報を記録します。
- C:\Windows\inf\setupapi.dev.log
- Microsoft-Windows-Partition/DiagnosticのイベントID1006




調査③ データ持ち出し有無の調査
ここまでの調査で、マシンに接続されたUSBデバイスと接続・切断日時が特定できました。調査③では、特定したUSBデバイスへのデータ持ち出しの有無を調査します。
このような目的の調査をデータ持ち出し元であるマシンを対象に行う場合、ShellBagsに手がかりとなる痕跡が残っている可能性があります。ShellBagsは、ユーザのフォルダ表示設定やアクセス履歴を含むレジストリのキーセットであり、各ユーザのNTUSER.datとUsrClass.datに記録されます。これらの記録には、USBデバイスやネットワークドライブ上のフォルダも含まれます。例えUSBデバイス切断後やフォルダ削除後であったとしても、システム上にフォルダが存在していたことを示す証跡として利用できます。
ShellBagsの解析には、ShellBags Explorer[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フォルダにもアクセスした痕跡が確認できます。


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

- SOFTWARE\Microsoft\Windows Potable Devices\Devices




調査④ データ持ち出先USBデバイスの調査
調査③で、Desktop上のkimitsuフォルダがEドライブ(USBデバイス)に持ち出された可能性があることが判明しました。ここまでの調査結果をタイムラインにすると、データが持ち出された可能性のあるUSBデバイスは、USBデバイスBであることは明らかです。この事実を明示的に確認するために、Eドライブ内のkimitsuフォルダにアクセスした2024/8/3 1:42:48時点で、Eドライブとして割り当てられていたUSBデバイスを調査します。
以下のレジストリキーを見ます。
- SOFTWARE\Microsoft\Windows Search\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は、前後の痕跡からコピーした可能性を考えることはできます)。

また、今回は一つの事象を明らかにするために、複数のアプローチで調査しました。複数のアプローチで調査を行うことは、調査の確度を上げるというだけでなく、解析妨害にも対応できる可能性があります。攻撃者や内部犯は、事実を隠蔽するために痕跡を削除することがあります。ある痕跡が削除されていたとしても、別のアプローチを取れば事実を明らかにすることができるかもしれません。
- ※本ブログのようなシナリオを調査する際には、他にも調査に有用なレジストリキーやイベントログが複数存在します。ブログで取り上げた痕跡は、その一部であることをご承知おきください。
参考文献
- [1]Eric Zimmerman’s tools
https://ericzimmerman.github.io/#!index.md
- [2]DEVICE HUNT
https://devicehunt.com/
- [3]The Truth About USB Device Serial Numbers – (and the lies your tools tell)
https://www.sans.org/blog/the-truth-about-usb-device-serial-numbers/
執筆者プロフィール
山﨑 泉樹(やまざき せんじゅ)
セキュリティ技術センター リスクハンティング・システムグループ
ペネトレーションテスト、インシデント対応に関する業務に従事。
CISSP、CCSP、RISS、GPEN、GCPN、GCFA、SANS FOR508メダルを保持。

執筆者の他の記事を読む
アクセスランキング