TaiwanHolyHigh - Windows Forensics - Windows檔案系統與還原
:::spoiler TOC [TOC] :::
Background
- What is cluster or sector?
基本磁碟結構 磁碟儲存最小單位為sector,每一個sector包含了512bytes的資訊內容。但用sector當單位來儲存效率會很差,一般不會以一個sector當作存取檔案的單位,而是以cluster為一基本檔案單位,每一個cluster是架構在sector的2次方倍數上。假定連續的8個sector所構成一個cluster,其大小就為512×8=4096bytes(4K),如此在存取資料時會以8個sector連續讀取而提升了相對效率。但並不是讓單位cluster越大越好,因為cluster越大相對的可能會浪費許多磁碟空間,例如設定以4K為一個cluster而要儲存的檔案內容只有1K,但這個小檔案還是佔用掉一個cluster的空間,其他3K就浪費掉了。所在考慮cluster的規劃時,需要同時考慮到檔案讀取的效能與檔案大小是否會浪費硬碟空間。
- File Slack
舉例來說如果一個檔案A,大小是4個sector(2048 bytes),現在將其刪除後又存入一個檔案B在同一位置,但其大小只有1.5個sector(768 bytes),則後面沒有被填滿的2.5個sector事實上還殘留檔案A的一些資訊,尚未填滿的該sector(Ram Slack)+完整的兩個sector(Disk/Residual Slack)就是file slack
會有一點小複雜,反正file slack就是一個完整cluster(如果按照中FAT16來格式化128MB來說就是4個sectors)沒有被填滿的部分就對了,而ran slack或是disk(residual) slack只是在區分這些沒有被填滿的區塊而已
- ==比較表格==
稍微解釋一下為甚麼FAT16是單一cluster的sector數量比較多,因為按照他自己的定義,最大的cluster數量不能超過65526,也就是說如果硬碟的容量變大,單一cluster所除下來的sector數量就越多,舉例: 若一張記憶卡的大小是128MB$\to$134217728 bytes,單一cluster最少需要4個sectors \(134217728/512/65526\approx 4\) 所以如果記憶卡大小是512MB$\to$,536870912 bytes,單一cluster最少需要16個sectors \(536870912/512/65526\approx 16\) 當然,這樣的空間使用率是很差的,因為一個cluster就意味著一間總統套房,若所有的檔案不分大小都住進總統套房,就會造成很多浪費,或甚至是有很多file slack產生,試想如果像512MB一樣,一個cluster有16個sector,代表該總統套房可以容納$16*512=8192 bytes$,如果電腦中都是小檔案居多(1kB之類的),那有很多空間就會浪費掉,但對於鑑識來說遺留的東西越多越能夠還原很多真相
- 以攻擊者或一般使用者來說,如何達到真正的毀屍滅跡?
- Encryption: 工具veracrypt
- File Wipe: 工具file shredder
- Partition Wipe: 工具 Windows Format
- Fast: 快速格式化
- Non-Fast: 完整格式化
差別就是
儲存檔案的時候, 除了在儲存區寫入檔案資料以外,也會在開頭一個小區塊的”檔案表”輸入相關資訊;快速格式化是只把開頭的檔案表重寫,真正儲存檔案資訊的部份則沒有更動,但是系統讀到檔案表顯示是”空白”,就會把這張片子當成是空片,就不管儲存區有沒有資料,直接覆蓋過去;換句話說,若是檔案表有標明某區存有某資料,則儲存時就會跳過這區不覆蓋 完整格式化會對格式化的區域進行讀寫測試,就是確定壞軌。快速格式化沒有
- Physical Destroy: 碎(記得敲碎一點才不容易在無塵室中還原) 燒 溶(不建議) 磁(消磁)
以攻擊者的角度來說,最少要做到第四步之前,才比較沒有那麼容易的透過鑑識還原資料