Възстановяване на изтрити файлове от NTFS: какво наистина работи и капанът на SSD TRIM
Alexander Sverdlov
Анализатор по сигурността

Изтриването на файл рядко го унищожава. В NTFS натискането на Shift+Delete или изпразването на Кошчето прави две малки счетоводни неща: маркира записа на файла в Master File Table (MFT) като свободен и изчиства битовете в битовата карта на тома, които са резервирали клъстерите на файла. Реалните байтове на вашия документ стоят недокоснати на диска, докато нещо друго не се случи да преизползва тези клъстери. Този интервал между "маркиран като свободен" и "физически презаписан" е цялата основа на възстановяването на файлове.
Как наистина работи изтриването в NTFS


Всеки файл на NTFS том има MFT запис, който го описва: неговото име, родителската папка, времевите маркери и къде живеят данните му. Малките файлове се съхраняват резидентно, изцяло вътре в самия MFT запис. По-големите файлове са нерезидентни, като записът сочи към поредици от клъстери другаде на диска. Когато изтриете файл, записът се маркира като вече неизползван, но не се изтрива веднага, а поредиците от данни не се нулират. Докато операционната система не разпредели този MFT слот на нов файл или не запише нови данни в тези клъстери, оригиналът подлежи на възстановяване.
Затова първото правило на възстановяването е да спрете да използвате диска. Всеки запис, всяко обновяване на кеша на браузъра, всяка фонова задача на Windows е шанс да попадне върху клъстерите, които искате обратно.
Цял, частичен или изгубен


Не всяко възстановяване е равностойно, а инструмент, който просто изброява имена на изтрити файлове, без да ви каже състоянието им, ви прави лоша услуга. Има три изхода:
- Цял. MFT записът все още сочи към клъстерите си и никой от тях не е преизползван. Това е чисто, пълно възстановяване.
- Частично презаписан. Някои от оригиналните клъстери на файла са преразпределени на други файлове. Можете да възстановите оцелелите фрагменти, но файлът е непълен и трябва да го знаете.
- Изгубен. Клъстерите са презаписани или на SSD напълно отхвърлени. Името може още да се появява в MFT, но съдържанието е невъзстановимо.
Честното маркиране на целостта е разликата между доказателство, на което можете да разчитате, и фалшиво усещане за успех.
Капанът на SSD TRIM


Всичко по-горе предполага твърд диск, където изтритите данни се задържат, докато не бъдат презаписани. Твърдотелните дискове разрушиха това предположение. За да останат бързи, SSD дисковете трябва да знаят кои блокове са свободни, за да ги изтрият предварително, и операционната система им казва с командата TRIM. Когато изтриете файл на SSD с включен TRIM, Windows уведомява диска, че тези блокове вече не са нужни, и контролерът на SSD ги изтрива или освобождава, често в рамките на секунди. Последващо четене на тези блокове връща нули, по дизайн и на хардуерно ниво.
Практическата последица е директна: на модерен SSD с включен TRIM съдържанието на изтрит файл често изчезва почти веднага, независимо колко бързо реагирате или какъв софтуер използвате. Инструментите за възстановяване не могат да отменят хардуерно отхвърляне. Това не е ограничение на конкретен продукт; това е физика плюс фърмуер. Честният ход е да се открие и да се каже, вместо да се представя празно или нулирано "възстановяване" като успех.
Възстановяване на папка безплатно с AtlantImage
AtlantImage включва насочено NTFS възстановяване, което връща файлове от конкретна папка, без да снема целия диск. Сканира MFT за изтрити записи, принадлежащи на избраната от вас папка и нейните подпапки, възстановява както цели, така и частично презаписани файлове, и маркира всеки по цялост, така че никога да не бъдете подведени какво наистина се е върнало. Важно е, че проверява битовата карта на тома и флагира съдържание, което вече е презаписано или отхвърлено от SSD TRIM, така че възстановеният списък отразява реалността, а не пожелателно мислене. Възстановените файлове се записват заедно с CSV манифест с хешове за всеки от тях.
От командния ред това е една насочена операция:
AtlantImage undelete --volume C: --path "Users\alex\Documents" --out .\recovered
За реакция при инциденти същият инструмент също извлича NTFS триаж артефакти на живо, $MFT, $LogFile и $UsnJrnl:$J, директно от суровия том, когато пълното снемане не е практично, всеки хеширан и записан с манифест.
Какво да направите в момента, в който файл има значение
- Спрете да пишете на диска. Затворете приложенията, а ако е системният диск, обмислете снемане от друга машина.
- На твърд диск шансовете ви са добри; действайте бързо, но спокойно.
- На SSD разберете, че TRIM може вече да е отхвърлил данните, и проверете, вместо да предполагате.
- Възстановявайте на различен диск от източника и пазете хешираните манифести с възстановените файлове.
Възстановяването е надпревара с преизползването. Знанието как се държат NTFS и вашият носител ви казва, честно, дали тази надпревара може да бъде спечелена.
AtlantImage е безплатен. Изтеглете AtlantImage (един преносим изпълним файл, без инсталатор, без регистрация). За пълно форензично снемане и декриптиране на BitLocker същият изпълним файл се справя със снемане и проверка. Свържете се с нас, ако искате нашият екип да помогне.

Александър Свердлов
Основател на Atlant Security. Автор на 2 книги за информационна сигурност, лектор по киберсигурност на най-големите конференции по киберсигурност в Азия и панелист на конференция на ООН. Бивш член на екипа за консултации по сигурността на Microsoft, външен консултант по киберсигурност в Емиратската корпорация за ядрена енергия.