Як ми тестували відновлення даних із VeraCrypt: контейнери, приховані томи та видалені розділи

💡 Усі статті, обговорення, новини про тестування — в одному місці. Приєднуйтесь до QA спільноти!

Нещодавно ми тестували відновлення даних із носіїв і контейнерів, зашифрованих VeraCrypt. Нас цікавив не просто доступ до справного зашифрованого тому, а сценарії, з якими можна зіткнутися після втрати даних: видалення файлів усередині контейнера, робота з прихованим томом і видалення зашифрованого розділу з диску.

Для тестування підготували кілька конфігурацій VeraCrypt і послідовно перевірили, чи можна після втрати даних визначити зашифрований том, розблокувати його та вже після цього проаналізувати файлову систему.

Тестове середовище

Для тестів використовували Windows, VeraCrypt, USB-накопичувач і файловий контейнер VeraCrypt. Відновлення виконували за допомогою Hetman Partition Recovery — фактично перевіряли реалізовану нами підтримку VeraCrypt на кількох практичних сценаріях.

Підготували:

  • файловий контейнер VeraCrypt з розширенням .hc;
  • зашифрований розділ USB-накопичувача;
  • звичайний том VeraCrypt із прихованим томом усередині;
  • варіанти доступу за паролем, а також із використанням PIM і ключового файла;
  • накопичувач, на якому після запису тестових даних видалили розмітку командою diskpart clean.

У VeraCrypt пароль може використовуватися разом із PIM і файлом ключем. Якщо ці параметри були задані під час створення тому, вони необхідні й для його подальшого розблокування. Окремо VeraCrypt підтримує приховані томи: вони розміщуються всередині зовнішнього зашифрованого тому, але відкриваються іншим паролем.

Основне питання тесту було таким: що ми зможемо побачити та відновити після розблокування VeraCrypt, якщо сама файлова система або структура розділів уже зазнала змін?

Сценарій 1. Видалення файлів із контейнера VeraCrypt

У першому тесті створили файловий контейнер VeraCrypt, записали до нього тестові дані, а потім частину файлів видалили. Для блокування контейнера вказали пароль, PIM та файл ключа.

Під час відновлення файл контейнера додали до програми як окремий RAW-диск. До розблокування ми фактично маємо лише зашифрований масив даних — аналізувати файлову систему всередині нього без правильних параметрів доступу неможливо.

Результат

Після розблокування VeraCrypt-контейнера вдалося отримати доступ до файлової системи та знайти видалені файли. Результат перевіряли не лише за назвами файлів і структурою каталогів. Для нас важливо було переконатися, що знайдені файли дійсно містять коректні дані, тому їх перевіряли через попередній перегляд.

Цей тест показав важливу послідовність:

контейнер → розблокування VeraCrypt → файлова система → аналіз → відновлення файлів.

Саме шифрування тут є окремим рівнем. Пошук видалених записів файлової системи починається вже після того, як вдалося отримати розшифроване представлення тому.

Сценарій 2. Звичайний і прихований томи VeraCrypt

Другий тест був цікавішим. На USB-накопичувачі створили зашифрований том VeraCrypt, усередині якого додатково створили прихований том. У зовнішнього та прихованого томів були різні паролі.

Це суттєво відрізняється від двох звичайних розділів диска. Прихований том не відображається як ще один очевидний розділ у таблиці розділів. Який саме том буде відкрито, залежить від введених параметрів доступу.

Спочатку ми використали пароль зовнішнього тому. Після розблокування отримали його логічне представлення, визначили файлову систему та виконали аналіз. Потім повернулися до того самого зашифрованого розділу і повторили розблокування, але вже з паролем прихованого тому.

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

Результат

У результаті нам вдалося окремо розблокувати зовнішній і прихований томи VeraCrypt, провести сканування файлових систем і отримати доступ до даних на обох томах. Після розшифрування програма коректно визначила файлові системи, дозволила проаналізувати їхню структуру та отримати доступ як до поточних, так і до видалених файлів.

Сценарій 3. Видалення зашифрованих розділів

У третьому тесті вирішили змоделювати серйознішу втрату структури диска. Після підготовки VeraCrypt-томів і запису даних виконали команду: diskpart clean.

У результаті записи про розділи були видалені, а Windows бачила накопичувач як нерозмічений. При цьому ми не створювали нові розділи й не записували поверх них нові дані. Це важлива умова: видалення розмітки диска та фізичне перезаписування секторів, це різні речі.

У перших двох сценаріях у нас уже був об’єкт, який можна було передати модулю VeraCrypt для розблокування. Після diskpart clean запису про такий розділ більше немає. Тому спочатку потрібно було відтворити його межі. У нашому пз ми створили віртуальне представлення втраченого розділу та вказали його початковий сектор. Для використаної розмітки диску початком був сектор 2048.

Тут важливо уточнити: 2048 — не універсальна адреса початку VeraCrypt-розділу. Це типовий зсув для багатьох сучасних схем розмітки. У реальному випадку потрібно визначати фактичні межі втраченого розділу за допомогою HEX редактору.

Результат

Навіть після видалення розмітки диска вдалося визначити межі зашифрованого розділу, розблокувати його та перейти до аналізу файлової системи. Окремо вдалося отримати доступ до зовнішнього та прихованого томів.

У цьому сценарії для нас найбільш показовим було те, що правильного пароля VeraCrypt самого по собі недостатньо. Програма повинна спочатку «знати», яку саме ділянку фізичного накопичувача потрібно розшифровувати. Якщо інформація про розділ втрачена, його межі доводиться визначити або реконструювати до етапу розблокування.

Відео з демонстрацією тесту

Весь сценарій створення томів, роботу зі звичайним і прихованим томами, видалення розділів та подальше відновлення файлів записали на відео:

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter