張輝
摘要:伴隨著固態(tài)硬盤的廣泛應(yīng)用,越來越多的網(wǎng)絡(luò)犯罪現(xiàn)場會面對固態(tài)硬盤電子數(shù)據(jù)取證問題。通常來說,固態(tài)硬盤數(shù)據(jù)一旦被刪除,利用目前的取證工具幾乎無法恢復(fù),但也存在特定情況。通過實驗對TRIM指令在固態(tài)硬盤數(shù)據(jù)刪除與恢復(fù)中的作用進(jìn)行了驗證分析,實驗表明,在TRIM指令特定設(shè)定與取證時間及時的情況下,可以完成SSD盤數(shù)據(jù)刪除后的恢復(fù)與取證。
關(guān)鍵詞:固態(tài)硬盤;TRIM指令;取證分析
中圖分類號:TP399 文獻(xiàn)標(biāo)志碼:A
文章編號:1009-3044(2020)18-0218-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
固態(tài)硬盤( Solid State Drives),簡稱SSD盤,是目前計算機(jī)中常用的一種電子存儲設(shè)備,與通常的機(jī)械硬盤相比具有讀寫速度快、功能損耗低、運(yùn)行噪音小、抗震抗干擾性強(qiáng)等特點(diǎn),廣泛應(yīng)用于軍事、工業(yè)、醫(yī)療等多個計算機(jī)領(lǐng)域中。伴隨著固態(tài)硬盤的廣泛應(yīng)用,越來越多的網(wǎng)絡(luò)犯罪現(xiàn)場會面對SSD盤電子數(shù)據(jù)取證問題,探索SSD盤數(shù)據(jù)被刪除后的恢復(fù),一直是困擾電子數(shù)據(jù)取證人員的一個難題。通常來說,SSD盤數(shù)據(jù)被刪除后很難進(jìn)行恢復(fù),但在特定情況下仍然可以進(jìn)行,這與一個關(guān)鍵的指令有關(guān),這個指令就是TRIM指令。我們通過實驗驗證分析TRIM指令在SSD盤數(shù)據(jù)刪除與恢復(fù)中的作用。
1 SSD盤的刪除數(shù)據(jù)機(jī)制
SSD盤與機(jī)械硬盤寫入及刪除數(shù)據(jù)的機(jī)制是不同的。
機(jī)械硬盤刪除數(shù)據(jù)時,Windows僅對被刪除文件的文件頭進(jìn)行十六進(jìn)制的改寫以做標(biāo)記,等到真正要寫人數(shù)據(jù)時再來刪除,所以機(jī)械硬盤常見的三種刪除方式,即刪除到回收站、shift+delete徹底刪除以及快速格式化,完成刪除操作后,實際的文件數(shù)據(jù)依然存在,我們可以利用很多的文件分析軟件或者電子取證工具完成大部分的數(shù)據(jù)恢復(fù)。
SSD盤在進(jìn)行數(shù)據(jù)清除時,系統(tǒng)首先需要識別到SSD盤并確認(rèn)TRIM指令。如果TRIM指令是開啟狀態(tài),SSD盤在刪除數(shù)據(jù)時使用Volume Bitmap來記住數(shù)據(jù)已經(jīng)刪除。Volume Bitmap是NTFS系統(tǒng)的文件快照,當(dāng)再次寫入數(shù)據(jù)時,可以根據(jù)VolumBitmap情況,向快照中已刪除的區(qū)塊寫入新的數(shù)據(jù),而不用花時間去擦除原本的數(shù)據(jù)。SSD盤的數(shù)據(jù)被刪除后幾乎不能進(jìn)行數(shù)據(jù)恢復(fù)。
2 TRIM指令
Trim,又叫Disable Delete Notify,本意是禁用刪除通知。SSD盤支持Trim指令的最大優(yōu)勢是避免SSD在垃圾回收時將無用數(shù)據(jù)當(dāng)成有用數(shù)據(jù)來搬運(yùn),從而起到延長SSD壽命的作用,且SSD不會隨著使用時間越長速度就越慢。SSD支持Trim最大的劣勢就是SSD在清空數(shù)據(jù)后無法恢復(fù)數(shù)據(jù)。
Trim指令原始狀態(tài)可以利用管理員身份進(jìn)行查看,也可以重新進(jìn)行設(shè)置。SSD盤的TRIM指令默認(rèn)為0即Trim開啟狀態(tài)。在一些網(wǎng)絡(luò)犯罪中,嫌疑人為了增大SSD取證的難度會自行進(jìn)行設(shè)置,這種情況比較少見,但依然存在,本文我們通過三個實驗驗證Trim指令在SSD盤數(shù)據(jù)刪除中的不用效果。
3 固態(tài)磁盤數(shù)據(jù)刪除與恢復(fù)中TRIM指令作用的不同
(1)Trim指令原始狀態(tài)的查看
利用管理員權(quán)限來查看SSD盤的Trim狀態(tài)(0為Trim打開,1為Trim關(guān)閉),其利用指令為fsutil behavior query disable-deletenotify NTFS。
在WINDOWS搜索區(qū)域內(nèi)輸入CMD,并同時按shift+ctrl+回車鍵,即以管理員身份啟動CMD命令窗口,可以輸入相應(yīng)指令進(jìn)行查看Trim狀態(tài),如圖:
此圖命令返回值為‘0,此為系統(tǒng)TRIM指令已開啟狀態(tài),也是SSD盤默認(rèn)狀態(tài)。
(2)利用CMD窗口設(shè)置Trim狀態(tài)
在管理員身份啟動的CMD命令窗口中,可以利用SET命令設(shè)置Trim指令的狀態(tài),設(shè)置為0為Trim指令打開狀態(tài),設(shè)置為1為Trim指令關(guān)閉狀態(tài)。如圖:
實驗-:Trim指令為“0”,即已開啟狀態(tài)下SSD盤數(shù)據(jù)刪除過程及查看。
實驗用軟件為X-ways Forensics 19.9版本。X-ways Foren-SICS是由德國X-ways出品的一個法證分析軟件,也是目前最為常用的電子數(shù)據(jù)取證軟件之一,其提供了強(qiáng)大的磁盤和文件的分析功能。
具體過程為首先利用X-ways Forensics加載C盤,C盤是固態(tài)硬盤,且Trim指令已開啟狀態(tài)。我們首先查看一個doc文檔的存儲空間,確認(rèn)該文件在SSD上的存儲是否為一個連續(xù)的數(shù)據(jù)塊,為了便于利用X-ways Forensics進(jìn)行文件解析,設(shè)定的實驗文件存儲在一個連續(xù)的磁盤空間中,查看該文檔的文件頭與文件尾所在的扇區(qū)并記錄下來。如圖1,當(dāng)前文檔的塊首與塊尾所在的扇區(qū)分別為“932400”及“932471”。
在記錄下待刪除文件在SSD所存儲的具體扇區(qū)后,回到C盤目錄中,將該文件shift+delete刪除,再重新在X-ways Foren-SICS下加載該SSD分區(qū),查找到上面文件頭所在的扇區(qū),此時發(fā)現(xiàn)該扇區(qū)數(shù)據(jù)已全部為零,如下圖:
實驗結(jié)論:當(dāng)啟用Trim指令時(SSD默認(rèn)狀態(tài)),刪除數(shù)據(jù)后隨即清空待刪除無效數(shù)據(jù),而不是等到,要寫新數(shù)據(jù)時才開始清空,所以在這種情況下,已刪除數(shù)據(jù)取證很難恢復(fù)。
實驗二:Trim指令為“1”,即關(guān)閉狀態(tài)下SSD盤數(shù)據(jù)刪除過程及查看。
重復(fù)進(jìn)行實驗一的具體步驟:打開X-ways Forensics取證工具,加載C盤(SSD盤),確認(rèn)待刪除文件的文件頭與文件尾所在的扇區(qū)并記錄下來。
回到指定盤,將該文件shift+delete徹底刪除,再重新加載C盤(SSD盤)分區(qū),找到指定的扇區(qū),此時發(fā)現(xiàn)該扇區(qū)所在的十六進(jìn)制數(shù)據(jù)依然全部存在。我們可以選中文件塊首與文件塊尾,利用“編輯”功能,“導(dǎo)出新的文件”后再進(jìn)行查看,這時發(fā)現(xiàn),數(shù)據(jù)恢復(fù)是完全可以進(jìn)行的。