TRIM指令在固态磁盘数据删除与恢复中的作用
2020-10-09张辉
张辉
摘要:伴随着固态硬盘的广泛应用,越来越多的网络犯罪现场会面对固态硬盘电子数据取证问题。通常来说,固态硬盘数据一旦被删除,利用目前的取证工具几乎无法恢复,但也存在特定情况。通过实验对TRIM指令在固态硬盘数据删除与恢复中的作用進行了验证分析,实验表明,在TRIM指令特定设定与取证时间及时的情况下,可以完成SSD盘数据删除后的恢复与取证。
关键词:固态硬盘;TRIM指令;取证分析
中图分类号:TP399 文献标志码:A
文章编号:1009-3044(2020)18-0218-03
开放科学(资源服务)标识码(OSID):
固态硬盘( Solid State Drives),简称SSD盘,是目前计算机中常用的一种电子存储设备,与通常的机械硬盘相比具有读写速度快、功能损耗低、运行噪音小、抗震抗干扰性强等特点,广泛应用于军事、工业、医疗等多个计算机领域中。伴随着固态硬盘的广泛应用,越来越多的网络犯罪现场会面对SSD盘电子数据取证问题,探索SSD盘数据被删除后的恢复,一直是困扰电子数据取证人员的一个难题。通常来说,SSD盘数据被删除后很难进行恢复,但在特定情况下仍然可以进行,这与一个关键的指令有关,这个指令就是TRIM指令。我们通过实验验证分析TRIM指令在SSD盘数据删除与恢复中的作用。
1 SSD盘的删除数据机制
SSD盘与机械硬盘写入及删除数据的机制是不同的。
机械硬盘删除数据时,Windows仅对被删除文件的文件头进行十六进制的改写以做标记,等到真正要写人数据时再来删除,所以机械硬盘常见的三种删除方式,即删除到回收站、shift+delete彻底删除以及快速格式化,完成删除操作后,实际的文件数据依然存在,我们可以利用很多的文件分析软件或者电子取证工具完成大部分的数据恢复。
SSD盘在进行数据清除时,系统首先需要识别到SSD盘并确认TRIM指令。如果TRIM指令是开启状态,SSD盘在删除数据时使用Volume Bitmap来记住数据已经删除。Volume Bitmap是NTFS系统的文件快照,当再次写入数据时,可以根据VolumBitmap情况,向快照中已删除的区块写入新的数据,而不用花时间去擦除原本的数据。SSD盘的数据被删除后几乎不能进行数据恢复。
2 TRIM指令
Trim,又叫Disable Delete Notify,本意是禁用删除通知。SSD盘支持Trim指令的最大优势是避免SSD在垃圾回收时将无用数据当成有用数据来搬运,从而起到延长SSD寿命的作用,且SSD不会随着使用时间越长速度就越慢。SSD支持Trim最大的劣势就是SSD在清空数据后无法恢复数据。
Trim指令原始状态可以利用管理员身份进行查看,也可以重新进行设置。SSD盘的TRIM指令默认为0即Trim开启状态。在一些网络犯罪中,嫌疑人为了增大SSD取证的难度会自行进行设置,这种情况比较少见,但依然存在,本文我们通过三个实验验证Trim指令在SSD盘数据删除中的不用效果。
3 固态磁盘数据删除与恢复中TRIM指令作用的不同
(1)Trim指令原始状态的查看
利用管理员权限来查看SSD盘的Trim状态(0为Trim打开,1为Trim关闭),其利用指令为fsutil behavior query disable-deletenotify NTFS。
在WINDOWS搜索区域内输入CMD,并同时按shift+ctrl+回车键,即以管理员身份启动CMD命令窗口,可以输入相应指令进行查看Trim状态,如图:
此图命令返回值为‘0,此为系统TRIM指令已开启状态,也是SSD盘默认状态。
(2)利用CMD窗口设置Trim状态
在管理员身份启动的CMD命令窗口中,可以利用SET命令设置Trim指令的状态,设置为0为Trim指令打开状态,设置为1为Trim指令关闭状态。如图:
实验-:Trim指令为“0”,即已开启状态下SSD盘数据删除过程及查看。
实验用软件为X-ways Forensics 19.9版本。X-ways Foren-SICS是由德国X-ways出品的一个法证分析软件,也是目前最为常用的电子数据取证软件之一,其提供了强大的磁盘和文件的分析功能。
具体过程为首先利用X-ways Forensics加载C盘,C盘是固态硬盘,且Trim指令已开启状态。我们首先查看一个doc文档的存储空间,确认该文件在SSD上的存储是否为一个连续的数据块,为了便于利用X-ways Forensics进行文件解析,设定的实验文件存储在一个连续的磁盘空间中,查看该文档的文件头与文件尾所在的扇区并记录下来。如图1,当前文档的块首与块尾所在的扇区分别为“932400”及“932471”。
在记录下待删除文件在SSD所存储的具体扇区后,回到C盘目录中,将该文件shift+delete删除,再重新在X-ways Foren-SICS下加载该SSD分区,查找到上面文件头所在的扇区,此时发现该扇区数据已全部为零,如下图:
实验结论:当启用Trim指令时(SSD默认状态),删除数据后随即清空待删除无效数据,而不是等到,要写新数据时才开始清空,所以在这种情况下,已删除数据取证很难恢复。
实验二:Trim指令为“1”,即关闭状态下SSD盘数据删除过程及查看。
重复进行实验一的具体步骤:打开X-ways Forensics取证工具,加载C盘(SSD盘),确认待删除文件的文件头与文件尾所在的扇区并记录下来。
回到指定盘,将该文件shift+delete彻底删除,再重新加载C盘(SSD盘)分区,找到指定的扇区,此时发现该扇区所在的十六进制数据依然全部存在。我们可以选中文件块首与文件块尾,利用“编辑”功能,“导出新的文件”后再进行查看,这时发现,数据恢复是完全可以进行的。