怎么样查看电脑插u盘的记录(Windows下调查USB使用痕迹方法研究)
作为**单位,每回的**检查USB检查是重点,但是现在网上到处都是清除工具,而专业的检查工具又贵还不一定好用,为给各位检查人员提供点好用的工具。今天给大家贡献一下本人的观点。下一步做一个专业工具放出来共享。本文只代表个人观点,有意见的可以随时拍我。
USB是一种外部总线标准,,用于电脑与外部设备的连接和通讯。典型的USB设备主要包括U盘、移动硬盘、数码相机、扫描仪、图像设备、打印机、键盘和鼠标等。
目前大家都是利用UsbViewer工具抽取出的USB设备信息,主要包含有设备名称、设备类型、设备序列号、首次挂载时间及最近一次挂载时间等。此工具完全依赖注册表进行信息收集,在相关注册表项被删除(如UsbViewer即自带“清除痕迹”功能)的情况下就什么都找不到了。其实操作系统整体环境分析USB设备使用痕迹还是有很多手段的
Windows环境下调查USB使用痕迹
1.1基于注册表调查USB设备使用痕迹
注册表是USB设备使用痕迹最主要且最重要的来源。
HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX(CurrentControSetXXX)\Enum\USBHKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX(CurrentControSetXXX)\Enum\USBSTORHKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX(CurrentControSetXXX)\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b}HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX(CurrentControSetXXX)\Control\DeviceClasses\{a5dcbf10-6530-11d2-901f-00c04fb951ed}
其中ControlSetXXX和CurrentControlSetXXX表示的是注册表中的类似于ControlSet001、ControlSet002、CurrentControlSet这样的子键(CurrentControlSet子键一般只有一个,特殊情况下可能有CurrentControlSet001等多个,同样的ControlSet一般只有ControlSet001和ControlSet002这两个,特殊情况下可能会有多个),CurrentControlSet保存的是系统的当前的一些配置信息,而ControlSet001等则是对当前配置信息的备份,一般注册表都会有两个以上的备份,有的时候可能会有更多。在ControlSetXXX中的信息和CurrentControlSet中的信息一般都是一样的,所以在检测和删除USB存储设备信息时,不仅要检测CurrentControlSet子键,也要检测ControlSetXXX子键。Enum\下的USB表键使用VID_v(4)&PID_d(4)格式描述USB设备。其中,v(4)代表4个数字的销售商代码(由USB协会分配给各销售商);d(4)代表4个数字的产品代码(由销售商分配给其生产的产品)。USBSTOR表键则使用Disk&Ven_iManufacturer&Prod_iProduct&Rev_r(4)格式进行描述。iManufacturer表示制造厂商,iProduct表示设备类型,r(4)则为修正码。UsbViewer工具即基于USBSTOR表键进行信息抽取,因此获取到的序列号通常情况下并不完全准确。值得一提的是,如USB设备中未包含有序列号信息,Windows则会通过系统自动生成的字符串标识该设备。USB表键和USBSTOR表键均未包含挂载的时间信息,实际上此处时间信息是以属性形式进行存储的。选择以序列号为名称的子键,单击右键选择“导出”,并将“保存类型”选为“文本文件”,打开保存后的文本文件即可获得时间信息。还需要指出的是,USBSTOR表键下有一名为ParentIdPrefix键值,该键值数据通过关联MountedDevices表键可以指示出USB设备的盘符信息。MountedDevices表键下的信息只会存储最近一次挂载的ParentIdPrefix键值信息,无法追溯盘符分配的历史记录。Windows7注册表中则不再含有ParentIdPrefix键值,而是通过设备序列号与MountedDevices表键关联,以确定盘符。Windows7、10中最新设置的UMB表键为追踪USB设备提供了更大的便利[2]。该表项涵盖了USB和USBSTOR表键的重要信息,同时指示出USB设备被分配的盘符,弥补了MountedDevices表键的不足。对于Control\DeviceClasses来说,该子键下存储的是以GUID分类的设备信息,其中有几个是和USB设备有关的(它们在微软的USB和存储设备输入输出控制头文件USBIODEF.H和NTDDSTOR.H中定义,有兴趣自己到MSDN上去看):
{A5DCBF10-6530-11D2-901F-00C04FB951ED}GUID_DEVINTERFACE_USB_DEVICE{3ABF6F2D-71C4-462A-8A92-1E6861E6AF27}GUID_DEVINTERFACE_USB_HOST_CONTROLLER{F18A0E88-C30C-11D0-8815-00A0C906BED8}GUID_DEVINTERFACE_USB_HUB{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}GUID_DEVINTERFACE_DISK
1.2基于系统文件调查USB设备使用痕迹
Windows7、10系统分区下的\Windows\inf\Setupapi.dev.log文件(WindowsXP环境下则为\Windows\setupapi.log)包含有关设备更换、驱动程序更改和重要系统修改等数据。该文件记载有制造厂商、设备类型、设备序列号、首次挂载时间等详细的USB设备信息。基于该文件进行分析一般可以获得与注册表同样的效果
Windows7、10事件日志增加了对USB设备的审核。查询日志也可知道。日志检索是检查的最有效的手段。
为了方便计算机用户快速查找最近使用过的文件,Windows操作系统设置了Recent文件夹,该文件夹默认存放路径为\Users\UserName\AppData\Roaming\Microsoft\Windows\Recent(WindowsXP下则为\DocumentsandSettings\UserName\Recent)。Recent文件夹有隐藏属性,只有在文件夹选项中取消“隐藏受保护的操作系统文件”后,才能正常查看Recent文件夹。Recent文件夹下存放的实际是文件(或文件夹及应用程序)的快捷方式文件,其扩展名为lnk。此类快捷方式文件包含的有目标文件属性及用户操作信息,这些信息会跟随用户行为改变而发生改变。利用WFA(WindowsFileAnalyzer)工具解析出的内嵌于快捷方式文件中的目标文件信息,主要包括目标文件路径、创建时间、修改时间、访问时间等。
另外,Windows7以后为实现跳转列表功能而设置了扩展名为automaticDestinations-ms的文件(\Users\%username%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations文件夹下),利用此类文件同样可以分析出与Recent文件夹下快捷方式文件类似的痕迹信息。
IconCache.db是Windows操作系统用于缓存图标的文件,在Windows7系统中该文件位于C:\Users\Username\AppData\Local\文件夹下(在WindowsXP系统中该文件则存放在C:\DocumentandSettings\Username\LocalSettings\ApplicationData下)。IconCache.db是隐藏文件,需要在文件夹选项中显示所有文件和文件夹才能正常查看。Windows操作系统利用IconCache.db文件缓存图标信息,实现在特定文件夹下快速展现文件图标,以减轻系统重新解析所造成的负担。
用户使用Windows系统的过程中,系统会逐渐向IconCache.db文件添加文件图标、文件存储路径等信息。当用户把USB存储设备连接至计算机系统后,如果USB存储设备的根目录下包含可执行程序,无论它是否运行,其文件名称、图标、存储位置、USB设备盘符等信息就会自动添加至IconCache.db数据库中。此外,如果用户浏览的文件夹含有可执行程序,也会自动追加相应信息。基于IconCache.db文件分析USB设备使用痕迹的局限是需要对应文件夹下有可执行程序,并且只能分析出盘符信息。
当然这些操作,在结合数据恢复技术,基本上痕迹就很难藏得住了。