本文由金恒源同学编译,由陈裕铭、Roe校对,转载请注明。
固态硬盘自毁
当今固态硬盘自我销毁对证据自毁的过程可以称为“自腐蚀自毁”。在大多数现代固态硬盘中作为后台进程运行的垃圾回收机制,会将标记为删除的数据进行永久性地清除,使其在标记为删除后的几分钟内永远消失。通过将磁盘移动到另一台PC或将其连接到只读设备来阻止垃圾回收机制是不可能的。防止固态硬盘自我腐蚀自毁的唯一方法是将硬盘主控与存储数据的闪存芯片进行物理分离,然后通过定制硬件直接访问芯片。[请参阅“SSD取证硬件”]。
TRIM机制:谬见与现实
一个常见的误解是固态硬盘的废弃块会立即被删除,。但通常情况并非如此。相反,TRIM命令的执行方式是先将被丢弃块的内容标记为“待定”(即“不在乎”状态),直到这些块被一个独立的后台进程(即垃圾回收器)物理擦除。换而言之,TRIM命令不会自行擦除丢弃块的内容。相反,而是将它们添加到一个挂起块的队列中,供垃圾回收器删除。
TRIM机制
图片来自
http://www.corsair.com/us/blog/how-to-check-that-trim-is-active/
例外情况
如果TRIM命令没有被发出,或者TRIM不被任何环节所支持,那么上文“无法恢复”中所提到的规则就不适用。在这种情况下,从固态硬盘中恢复信息的方式与从传统硬盘中恢复信息的方式基本相同[8][9]。
以下任一条件下,TRIM机制将被禁用,或完全不被支持:
· 旧驱动器
旧的固态硬盘不支持TRIM命令。例如,英特尔开始生产支持TRIM的固态硬盘时,其硬盘的光刻工艺为34nm(G2);基于50nm工艺制作的固态硬盘便不支持TRIM机制。[10](译者注:此处的“G2”应指的是intel公司曾发布的“Intel X25-M G2”固态硬盘,该固态硬盘基于34nm制程工艺。基于50nm制程工艺的固态硬盘应为“Intel X25-M G1”)
· 早期版本的Windows系统
在Windows Vista及更早的版本中,不支持TRIM协议,也不发出TRIM命令。
可能出现的例外:类似于TRIM的功能可以通过某些第三方解决方案来启用(例如英特尔SSD优化器,英特尔SSD工具箱的一部分)。
· 早期版本的macOS系统
macOS X从10.6.8版本开始支持苹果提供的固态硬盘的TRIM命令。旧版的macOS X不支持TRIM。此外,非苹果公司提供的用户安装的固态硬盘也不支持TRIM。
· (Windows) File systems other than NTFS/NTFS以外的文件系统
目前,只有NTFS格式的分区在Windows中得到完全的TRIM支持。格式化为FAT、FAT32或其他文件系统的卷不包括在内。
· 外置硬盘、USB硬盘盒和NAS
在SATA接口(包括eSATA)上完全支持TRIM命令,还可以通过SCSI接口支持UNMAP命令(译者注:在SCSI接口设备中,与TRIM命令具有类似功能的命令是UNMAP命令)。如果固态硬盘用于USB硬盘盒或安装在某些类型的NAS存储中,则不会通过不支持的接口进行通信。
· PCI-Express固态硬盘
有趣的是,对于占用PCI Express插槽的高性能固态硬盘,任何版本的Windows都不支持TRIM命令。
可能出现的例外:类似于TRIM的功能可以通过某些第三方解决方案来启用(例如英特尔SSD优化器,英特尔SSD工具箱的一部分)。
· RAID
截至目前,TRIM命令一般不支持RAID配置(除了少数非常罕见的例外)[10]。可以对作为RAID阵列一部分的固态硬盘进行分析。
· 逻辑损坏
令人惊讶的是,具有损坏的系统区域(损坏的分区表,偏移的文件系统等)的固态硬盘比健康的驱动器更容易恢复。TRIM命令不会在损坏的区域上发布执行[11],因为文件不会被正确删除;它们只是变得不可见或无法被操作系统访问。许多商业化数据恢复工具(例如,带有Intel® SSD Optimizer的Intel® Solid-State Drive Toolbox,OCZ SSD Toolbox)能够可靠地从逻辑损坏的固态硬盘中提取信息。
· 加密卷
从某些类型的加密卷(BitLocker、TrueCrypt、PGP和其他容器的某些配置)中删除的信息可能更容易恢复,因为它可能不受TRIM命令的影响。如果调查员知道加密卷的原始密码或二进制解密密钥,那么从此类加密卷中恢复删除的文件是可行的(除非它们被用户特别清除)。
加密卷
由于上述磨损平衡和性能的问题,加密卷和固态硬盘不能很好地协调配合。在许多配置中,加密容器将对驱动器上的整个空间进行加密,包括空闲空间。这使得该磁盘上的每一次写入都变成了一次重写,这大大降低了固态硬盘的写入性能。加密容器的制造商认识到了这个问题,并引入了一些方法(如各种配置和高级选项),通过将未使用的空间释放回固态硬盘主控的方法来缓解这个问题,这反过来又削弱了整体的安全性(因为未加密的空闲扇区很容易被发现)。
如果创建了一个固定大小的加密卷,默认的操作也是对加密卷文件本身的全部内容进行加密,这将使TRIM命令对加密卷的内容失去作用。
需要专门的研究来调查这些选项。目前,有一点是明确的:在许多配置中,包括默认配置,从加密卷中删除的文件不会受到TRIM命令的影响。这就引出了一个问题:如何正确地获取带有加密卷的电脑?
正确的取证方法
获得带有加密容器的PC数据的正确方法可以用下面的句子来描述:“如果它正在运行,请不要关闭。如果已关闭,请不要打开。”事实上,原始解密密钥缓存在计算机的内存中,并且可以通过FireWire攻击,从运行中的计算机获得的实时的内存镜像。这些密钥也可以包含在page files和hibernation files中。Elcomsoft Forensic Disk Decryptor等工具可以从内存转储和页面/休眠文件中提取解密文件,对加密卷的内容进行解密。
参考文献
[1] Solid State Drives: The Beginning of the End for Current Practice in Digital Forensic Recovery? http://www.jdfsl.org/subscriptions/JDFSL-V5N3-Bell.pdf
[2] http://en.wikipedia.org/wiki/Schr%C3%B6dinger's_cat
[3] Wear Leveling http://en.wikipedia.org/wiki/Wear_leveling
[4] Reliably Erasing Data From Flash-Based Solid State Drives http://www.usenix.org/events/fast11/tech/full_papers/Wei.pdf
[5] SSD Data Wiping: Sanitize or Secure Erase SSDs? http://www.kingston.com/us/community/articletype/articleview/articleid/202/ssd-data-wiping-sanitize-or-secure-erase-ssds.aspx
[6] TRIM http://en.wikipedia.org/wiki/TRIM
[7] Modern SSDs self-destroy court evidence http://www.ssdfreaks.com/content/612/modern-ssds-self-destroy-court-evidence
[8] Retrieving Digital Evidence: Methods, Techniques and Issues https://belkasoft.com/en/retrieving-digital-evidence-methods-techniques-and-issues
[9] Belkasoft Evidence Center 2012 Help: Carving https://belkasoft.com/en/bec/en/Carving.asp
[10] Intel SSD, TRIM support http://www.intel.com/support/ssdc/hpssd/sb/CS-031846.htm
[11] Recovering Information from SSD Drives: Myths and Reality http://hetmanrecovery.com/recovery_news/vosstanovlenie-informacii-s-ssd-nakopit.htm
[12] Solid state drives and forensic troubles http://tech.wiredpig.us/post/12292126487/solid-state-drives-and-forensic-troubles
[13] Intel 320-series SSD and FDE (Full Disk Encryption) questions... http://communities.intel.com/thread/20537
参考链接:
https://belkasoft.com/why-ssd-destroy-court-evidence