レジストリは内部セキュリティ監査と証跡検証にとっては宝の山といえる存在です。ただ、レジストリの効果と動作について詳しい人は少ないでしょう。レジストリを解析することで、システムのイベントや発生日時、前後の文脈を把握できます。さながら鍼治療のように、ツボであるレジストリはOSの正常動作と安定性を一手に担うと同時に、制御の仕組みにおけるOSとアプリケーション、ハードルへの関連や影響すべてに関わります。例えば悪意プログラムの感染、意図しないマイニングソフトウェア常駐、アンチウイルスソフトシャットダウン、悪意ある権限引き上げ、制御回避など、すべてレジストリから実施できます。
Windowsレジストリ構造を認識する
レジストリはWindows OS、ユーザ、ハードウェア、アプリケーション配置情報を保存するデータベースです。レジストリはWindowsのシステム配置のために生まれたものですが、それを逆手にとって、ユーザ活動、システムのデバイス、アプリケーションの実行日時把握などに活用できます。これらの情報を運用すれば、セキュリティ監査と証跡取得でインシデントが悪意によるものか事故かを判別できます。

レジストリには5つのルート (root)があり、それぞれ巣箱状のデータベースになり蜂巣とも呼ばれています。
- HKEY_CLASSES_ROOT
主にOLEとファイルに対応した配置情報。Windowsが認識できるファイルタイプの詳細一覧と関連するプログラムの対応データが保存されている。
- HKEY_CURRECT_USER
ユーザに関連するシステムとプログラムの「設定値」「キー値」が保存されている。簡単に言うと現在のユーザ設定の情報で、例えばカラー配置、タイトル、デスクトップ配置など。
- HKEY_LOCAL_MACHINE
端末とドライバー、他システム設定の詳細が保存されていて、端末マシンの説明情報にあたる。基本はインストールしたハードウェア種類、ポート関係、ソフトウェア構成などが含まれている。これらの情報は端末で運用されるもので、ユーザ向けのものではないが、ひと昔前のソフトウェアクラックではよくこの場所が利用されていた。
• HKEY_USERS
端末に登録されている全ユーザの環境情報が含まれている。各ユーザデータはすべてここに保存されている。新規登録したユーザにはデフォルトサンプル環境情報設定も提供している
• HKEY_CURRECT_CONFIG
端末が実際に接続しているハードウェア設定が記録されていて、端末マシンの現在のハードウェア構成情報。使用するための複数の構成がある。データはHKEY_LOCAL_MACHINEの構成情報からコピーしたものである。
内部監査と証跡取得におけるレジストリの価値
基本的にレジストリからはユーザが最後にシステムを使用した日時、最近使用したアプリケーション(グリーンウェア以外)、端末にマウントしたデバイス(USBデバイス、スマートフォン、HDD、キーボード、マウス関連の識別情報)、接続したWi-Fiのアクセスポイント、アクセスまたは変更されたシステム環境を把握できます。
以下は実例を使って説明します。
| Wi-Fi 証跡取得鑑識 | • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles |
| 最近使用したファイルリスト | • HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs • HKEY_CURRENT_USER\Software\Microsoft\Office.0\Word*\File MRU • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\ OpenSavePidlMRU • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\ LastVisitedPidlMRU** • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit |
| URL証跡取得鑑識 | • HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs |
| ユーザが接続したIPデータ取得 | • HKEY_LOCAL_MACHINE\System\Services\CurrentControlSet\services\Tcpip\Parameters\Interfaces |
| USB 接続データ取得 | • HK_Local_Machine\System\ControlSet00x\Enum\USBSTOR • HKEY_LOCAL_MACHINE\SYSTEM\MountedDevice • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 • HKEY_LOCAL_MACHINE\SYSTEM\Currentcontrolset\Enum\Usb • \Windows\inf\setupapi.dev.log for Windows Vista, 7, and 8, & at \Windows\inf\setupapi.upgrade.log for Windows 10. |
| 起動時に自動起動される疑わしい項目 | • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run |
| 端末のサービス起動証跡 | • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services |
| 端末のハードウェアマウント証跡 | • HKEY_LOCAL_MACHINE\System\MountedDevices |
| 削除したアプリケーションの残留情報検索 | • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ |
| 性能向上、メモリに使用されていないDLLファイルを削除 | • HKKEY_LOCAL_MACHINE]–[SOFTWARE]–[Microsoft]–[Windows]–[CurrentVersion],[Explorer]1に1項目追加[AlwaysUnloadDLL],設定値は1 |
| ネットワーク証跡 | • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Cache\Intranet • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\ Wireless* • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\ Signatures\Unmanaged** • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\ Profiles*** |
| Windows Shutdown Time | • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows |
| UserAssist Forensics | • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist |
| Printer Registry Information | • HKEY_CURRENT_USER\Printers • HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Print |
結論
端末デバイスにとって、レジストリ制御は重要な管制ポイントです。DLPや新世代のEDRにとっても重要な警告と防御のポイントです。レジストリはWindowsのコアとも見なされ、Windowsユーザの全操作は間接的にレジストリに保存されているので、Windowsレジストリはまさに重要な証跡ソースであり、デジタル鑑識や調査にとっては貴重な情報源です。

