文章來源:http://www.360doc.com/content/10/1229/10/2171437_82236486.shtml
一、磁盤如何儲存資料
要了解如何恢複已删除的資料,首先要搞清楚磁盤如何儲存資料。硬碟驅動器裡面有一組盤片,資料就儲存在盤片的磁道(Track)上,磁道在盤片上呈同心圓分布,讀/寫磁頭在盤片的表面移動通路硬碟的各個區域,是以檔案可以随機地分布到磁盤的各個位置,同一檔案的各個部分不一定要順序存放。
存放在磁盤上的資料以簇為配置設定機關,簇的大小因作業系統和邏輯卷大小的不同而不同。如果一個硬碟的簇大小是4 K,那麼儲存1 K的檔案也要占用4 K的磁盤空間。大的檔案可能占用多達數千、數萬的簇,分散到整個磁盤上,作業系統的檔案子系統負責各個部分的組織和管理。
目前,Windows支援的硬碟檔案系統共有三種。第一種是FAT,即所謂的檔案配置設定表(File Allocation Table),它是最古老的檔案系統,從DOS時代開始就已經有了。Windows 95引入了第二種檔案系統,即FAT 32,Windows NT 4.0則引入了第三種檔案系統NTFS。這三種檔案系統的基本原理都一樣,都用一個類似目錄的結構來組織檔案,目錄結構包含一個指向檔案首簇的指針,首簇的FAT入口又包含一個指向下一簇位址的指針,依此類推,直至出現檔案的結束标記為止。
二、Windows不能真正清除檔案
在Windows中,如果我們用正常的辦法删除一個檔案,檔案本身并未被真正清除。例如,如果我們在Windows資料總管中删除一個檔案,Windows會把檔案放入資源回收筒,即使我們清空了資源回收筒(或者不啟動資源回收筒功能),作業系統也不會真正清除檔案的資料。
Windows所謂的删除實際上隻是把檔案名稱的第一個字母改成一個特殊字元,然後把該檔案占用的簇标記為空閑狀态,但檔案包含的資料仍在磁盤上,下次将新的檔案儲存到磁盤時,這些簇可能被新的檔案使用,進而覆寫原來的資料。是以,隻要不儲存新的檔案,被删除檔案的資料實際上仍舊完整無缺地儲存在磁盤上。
是以,我們可以用工具軟體繞過作業系統,直接操作磁盤,恢複被删除的檔案。這類工具軟體很多,EasyRecovery就是其中的佼佼者。
如果不小心删除了某個重要檔案,想要恢複,這時千萬不要覆寫它。立即停用計算機,不要再向磁盤儲存任何檔案,包括不要把恢複工具安裝到已删除檔案所在的硬碟,因為任何寫入磁盤的内容都有可能覆寫已删除檔案釋放的磁盤簇。如果必須安裝恢複工具,可以安裝到其他硬碟分區、軟碟,或者幹脆拆下硬碟到另一台機器上去恢複。
三、覆寫七次才能清除的蛛絲馬迹
如果資料已經覆寫,用通常的恢複工具就無能為力了,但這并不意味着我們絕對不能挽救丢失的資料。讀取硬碟上被覆寫的資料通常有兩種辦法。
讀/寫磁頭向磁盤寫入資料時,它會将磁化資料位的信号調整到某個适當的強度,但信号不是越強越好,不應超出一定的界限,以免影響相鄰的資料位。由于信号強度不足以使存儲媒介達到飽和的磁化狀态,是以實際記錄在媒介上的信号受到以前儲存在同一位置的信号的影響,例如,如果原來記錄的資料位是0,現在被一個1覆寫,那麼實際記錄在磁盤媒介上的信号強度肯定不如原來資料位是1的強度。
專用的硬體裝置能夠精确地檢測出信号強度的實際值,将這個值減去目前資料位的标準強度,就得到了被覆寫資料的副本。理論上,這個過程可以向前遞推七次,是以如果要徹底清除檔案,必須反複覆寫資料七次以上,每次都用随機生成的資料覆寫。
第二種資料恢複技術的依據是,磁頭每次讀/寫資料時,不可能絕對精确地定位在同一個點上,寫入新資料的位置不會剛好覆寫在原來的資料上。原有資料總是會留下一些痕迹,利用專用的裝置可以分析出原有資料的副本--稱為影子資料。當然,如果我們反複執行覆寫操作,原有資料的痕迹也會越來越弱。
● 影子資料:被覆寫的資料總是與新寫入的不離左右,就象人的影子總是緊跟着人,是以被覆寫的資料就稱為影子資料。英文功力好的讀者可以參見這篇專著:http://www.forensics-intl.com/art15.html。
通常而言,能夠恢複已删除、覆寫的資料應該算是一件好事,當然,某些必須徹底清除資料的場合除外。這方面最為著名的标準是美國國防部訂立的磁盤清洗規範,它要求資料必須覆寫三次:第一次用一個8位的字元覆寫,第二次用該字元的補碼(0和1全反轉的字元)覆寫,最後用一個随機字元覆寫。不過這個清洗方法不适用于包含高度機密資訊的媒介,這類媒介必須進行消磁處理,或者銷毀其實體載體。當然,對于大多數場合來說,簡單的覆寫處理已經足夠。
四、被遺忘的角落
删除和覆寫檔案還不能清除硬碟上的所有敏感資料,因為資料可能隐藏在某些意料之外的地方,是以檔案占用的每一個扇區都必須徹底清除所謂扇區,就是大小為512位元組的資料片斷,每個簇包含多個扇區。
向磁盤寫入檔案時,檔案的最後一部分通常不會恰好填滿最後一個扇區,這時作業系統就會随機地提取一些記憶體資料來填充空餘區域。從記憶體擷取的資料稱為RAM Slack(記憶體渣滓),它可能是計算機啟動之後建立、通路、修改的任何資料。另外,最後一個簇中沒有用到的扇區就原封不動,即保留原來的資料,稱為Drive Slack(磁盤渣滓)。問題在于許多号稱安全删除檔案的工具不會正确清除記憶體渣滓和磁盤渣滓,而這些被稱為渣滓的地方卻可能包含大量的敏感資訊。
在NTFS檔案系統中,每個檔案包含多個流,其中一個流用來儲存通路權限之類的資訊,另一個流用來儲存真正的檔案資料。除此之外,NTFS還允許額外的資料流,即ADS(Alternative Data Stream),ADS可以用來儲存任何資訊,最常見的用途是儲存圖形檔案的縮略圖。由于許多安全删除檔案的工具不能清除ADS,是以即使存放檔案實際資料的流已經清除,但縮略圖仍可能洩露機密。微軟知識庫文章319300(http://support.microsoft.com)介紹了如何防止系統建立縮略圖使用的流,即删除注冊鍵HKEY_LOCAL_MACHINE/System/Currentcontrolset/Control/Contentindex/FilterTrackers。
●ADS:ADS這個縮寫詞經常用來表示活動目錄服務(Active Directory Services),不過本文中ADS是指“可選數字流”,是檔案主體資料之外的附屬資訊存儲區域。就象你的公文包,包裡面是正式存放物品的主空間,但包的外面還會有一二個附屬小口袋便于快速取用物品,這些小口袋就相當于ADS。
ADS已是人們熟知的隐藏資料和病毒之地,經常被計算機犯罪分子利用。但除此之外,硬碟上還有其他可以隐藏資料的區域。
扇區是在低級格式化期間建立的,通常由硬碟制造廠完成。低級格式化工具會标記出損壞的扇區,進而避免磁盤控制器向損壞的區域寫入資料。簇包含多個扇區,由進階格式化工具建立,如Windows或DOS的format指令。如果進階格式化期間發現壞扇區,整個簇被标記為壞簇,但是,壞簇裡面還有好的扇區,有些人就利用這些扇區來隐藏資料。
在老式磁盤上,資料還可以隐藏在稱為扇區縫隙的地方。老式磁盤的每一個磁道都有數量相同的扇區,但外圈的磁道顯然要比内圈的磁道長,有些人就利用外圈磁道上扇區之間的縫隙來儲存資料。新型磁盤利用一種稱為分區記錄(Zoned Recording)的技術避免了這種空間浪費,它能夠根據磁道的位置調整每個磁道的扇區數量。
要通路磁盤上的這類隐藏區域,必須使用繞過作業系統磁盤通路功能的工具。搜尋一下網絡,可以看到正規的專業工具都很昂貴,例如EnCase Forensic Edition(www.guidancesoftware.com)要2000多美元;Directory Snoop可能最便宜,也要29美元,但它不支援NTFS。
綜上所述,我們可以說恢複資料實際上要比徹底清除資料簡單。如果你不小心删除了某個重要的檔案(誰都會遇到這類事情),恢複工具就是救命的稻草。反之,如果你想出售二手機或二手磁盤,應當考慮一下是否有必要徹底地清洗一下硬碟。