Як працює відновлення даних за сигнатурами (Data Carving)

Ця публікація продовжує серію статей про внутрішні механізми сучасних засобів відновлення даних.

У статті «Як працює відновлення даних» ми розглянули, як засоби відновлення файлів можуть відновлювати видалені файли за допомогою файлової системи. Але що робити, якщо файл було видалено давно, а запис про нього у файловій системі більше не існує? Або якщо диск було відформатовано чи перерозподілено, унаслідок чого файлова система спорожніла або зникла? І нарешті, що робити, якщо файлову систему було перезаписано іншою файловою системою — наприклад, тією, яку використовують Linux або Ubuntu, якщо ви експериментували з альтернативною ОС? У таких випадках традиційні засоби відновлення файлів не зможуть нічого відновити.

Як працює відновлення даних за сигнатурами (Data Carving)

Для відновлення інформації в подібних ситуаціях розробники засобів відновлення даних створили набір так званих алгоритмів «карвінгу», заснованих на пошуку сигнатур. На відміну від традиційних методів відновлення файлів, які покладаються на файлову систему, карвінг передбачає читання всієї поверхні жорсткого диска (або сканування всього вмісту флеш-носія). Під час сканування диска алгоритми карвінгу шукають характерні сигнатури (звідси й назва «пошук за сигнатурами»), що дають змогу ідентифікувати відомі формати файлів. Це дуже схоже на принцип роботи антивірусних засобів: вони сканують файли та шукають у коді характерні шаблони, щоб виявити віруси.

Наприклад, файли ZIP зазвичай починаються з «PK», за яким ідуть двійкові дані у визначеному форматі. Аналізуючи ці двійкові дані, алгоритм карвінгу може визначити, чи означає «PK» початок ZIP-файлу (якщо всі числові значення відповідають очікуваним), чи це лише «PK», набране в документі, подібному до цього.

Якщо підтверджено, що сигнатура належить справжньому файлу, алгоритм починає аналізувати заголовок файлу. На основі заголовка програма відновлення даних може обчислити початковий розмір файлу. Знаючи початкову адресу файлу на диску та його розмір, засіб відновлення може точно визначити, які сектори містять дані цього файлу, зчитати їх і відновити початковий файл.

Карвінг файлів: труднощі та проблеми

Чи не помітно тут проблеми? Насправді їх щонайменше дві. По-перше, без файлової системи неможливо дізнатися початкове ім’я файлу. Відновлені файли зберігаються під назвами «image0001.jpg» або «document012.jpg», а не під своїми справжніми іменами. Інша проблема пов’язана з фрагментацією диска. Якщо файл зберігається не суцільним блоком (що типово для великих файлів), карвінг не зможе відновити його повністю.

Щоб розв’язати цю проблему, розробники поєднують інформацію, отриману з файлової системи, з даними, виявленими за допомогою алгоритмів карвінгу. Такий підхід поєднує переваги обох методів: забезпечує надійне відновлення файлів із початковими іменами незалежно від рівня фрагментації диска.

Залишити коментар