Атаки на VeraCrypt, як витягти ключі шифрування з оперативної пам’яті?

31.07.2024 1 хвилин Автор: Cyber Witcher

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

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

Атаки на VeraCrypt, шифрування ОЗУ

Як розшифровують контейнери VeraCrypt, TrueCrypt та BitLocker? Чи можливо витягти з дампа оперативної пам’яті майстер-ключі для розшифрування цих контейнерів? Чи врятує апаратне або програмне шифрування оперативної пам’яті? Які існують способи додаткового захисту?

Спеціальний криміналістичний софт дозволяє робити дампи оперативної пам’яті, витягати з них ключі шифрування та використовувати ці ключі для розшифрування криптоконтейнерів VeraCrypt, BitLocker, TrueCrypt та інших. Це єдине програмне забезпечення на ринку, яке пропонує такі можливості; кращих платних рішень немає.

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

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

Другий спосіб – це перезавантаження. Деякі материнські плати і планки дозволяють зберегти пам’ять при перезавантаженні, що дозволяє знімати дамп пам’яті з ключами шифрування, які зберігаються в оперативній пам’яті, запустивши Linux-дистрибутив з попередньо встановленим софтом для дампа пам’яті.

Слід розуміти, що правоохоронці розуміють важливість доступу до незаблокованого комп’ютера. Вони можуть проводити спеціальні заходи, щоб потрапити в квартиру, де комп’ютер відкритий і криптоконтейнери примонтовані. Це може статися, коли хтось із членів родини заходить у квартиру або приходить технік для ремонту. У такій ситуації першочерговим завданням є зняття дампа оперативної пам’яті до будь-яких інших дій на цьому комп’ютері.

Існує софт для створення дампа оперативної пам’яті, який в деяких випадках викликає синій екран і очищає пам’ять. У разі використання програмного шифрування ключів в оперативній пам’яті, продуктивність системи може знизитися на 15-20%.

Крім програмного шифрування, є ще апаратне шифрування оперативної пам’яті, яке підтримується деякими процесорами і налаштовується через BIOS. Цей метод ускладнює роботу з дампами оперативної пам’яті, але також не завжди є надійним.

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

Другий спосіб – це перезавантаження. Деякі материнські плати та модулі оперативної пам’яті дозволяють зберегти вміст пам’яті під час перезавантаження, що дає можливість знімати дамп пам’яті з ключами шифрування, використовуючи Linux-дистрибутив із попередньо встановленим програмним забезпеченням для дампа пам’яті.

Слід розуміти, що правоохоронні органи знають важливість доступу до незаблокованого комп’ютера. Вони можуть проводити спеціальні операції, щоб увійти до приміщення, де комп’ютер відкритий і криптоконтейнери примонтовані. Це може статися внаслідок раптового входу співробітників поліції разом із членом родини, техніком або доставщиком, що заходять у квартиру. При правильній підготовці ймовірність успішної операції досить висока.

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

Завданням співробітників у такій ситуації є зняття дампу оперативної пам’яті до будь-яких інших дій на комп’ютері, щоб не видалити важливу інформацію з пам’яті. Першочергово знімається дамп оперативної пам’яті на сторонній пристрій, щоб потім шукати ключі шифрування PGP, BitLocker, VeraCrypt, TrueCrypt тощо.

Не всі співробітники діють за інструкціями або правильно. Були випадки, коли співробітники заходили в офіси з відкритими і розблокованими комп’ютерами та просто вимикали світло на лічильнику. В результаті всі розблоковані комп’ютери з встановленим VeraCrypt втрачали будь-які шанси на відновлення даних. Деякі співробітники, не знаючи пароля Windows, видаляли встановлений користувачем пароль без створення резервної копії, що було критичною помилкою, оскільки без пароля неможливо було отримати доступ до паролів, збережених, наприклад, у браузері Chrome. Таким чином, вони, можна сказати, допомагали злочинцям.

Не варто думати, що всі співробітники будуть діяти правильно щодо вас. Однак є ті, хто діятиме розумно. Цікаво, що у VeraCrypt є функція, яка при підключенні нового пристрою змушує систему перезавантажитися, повністю очищаючи оперативну пам’ять і викликаючи синій екран. Якщо ця функція не увімкнена, програмне забезпечення, таке як Elcomsoft Forensic Disk Decryptor, може бути використано для зняття дампу оперативної пам’яті.

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

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

https://blog.elcomsoft.com/2021/06/breaking-veracrypt-obtaining-and-extracting-on-the-fly-encryption-keys/

Функція шифрування ключів у VeraCrypt спеціально не вмикалася, програма просто була встановлена і створений контейнер. Після цього, при створенні дампу фізичної пам’яті, обиралося будь-яке місце для збереження, наприклад, флешка, і натискалася кнопка “Старт”. Програма повідомляла про недостатнє місце на флешці, після чого обирався шлях на комп’ютер і знову натискалася “Старт”. Виявилося, що VeraCrypt має власний драйвер, який захищає оперативну пам’ять від втручання. При спробі створення дампу оперативної пам’яті вона очищається і з’являється синій екран.

Якби це була поліцейська операція, виникла б складність, оскільки вся робота виявилася б марною – комп’ютер знову зашифрований. Існують способи зняти дамп оперативної пам’яті, незважаючи на цей драйвер. Програма за 700 доларів з просунутими можливостями зняття дампу оперативної пам’яті не здатна це зробити, навіть якщо вимкнути захисну функцію в VeraCrypt. Перезавантаження комп’ютера зводить нанівець корисність цієї програми. Навіть після вимкнення захисної функції програма Elcomsoft все одно не може зняти дамп оперативної пам’яті, оскільки драйвер VeraCrypt навіть після видалення програми не дозволяє це зробити і викликає синій екран при спробі дампу.

FTK Imager – це теж спеціальна криміналістична програма, яку можна завантажити безкоштовно, але вона також не може створити дамп оперативної пам’яті. Врешті-решт, вдалося зняти дамп оперативної пам’яті, незважаючи на захист.

На практиці були змонтовані VeraCrypt і TrueCrypt, щоб в оперативній пам’яті були ключі. Наразі примонтований BitLocker.

Як же все-таки зробити дамп оперативної пам’яті при стандартних налаштуваннях? Використовувалися стандартні налаштування VeraCrypt: галочка “Вимкнути захист пам’яті” не була встановлена, шифрування ключів в ОЗУ також не було включене. У TrueCrypt теж були стандартні налаштування. Спеціалізований дорогий софт Elcomsoft Forensic Disk Decryptor, який використовувався раніше, при спробі створити дамп ОЗУ викликав синій екран. Цей спеціалізований софт не зміг зняти дамп оперативної пам’яті. Але є безкоштовне рішення – DumpIT.

Запускається DumpIT, надаються права адміністратора, підтверджується дія, і створюється дамп ОЗУ. Програма починає процес дампінгу. Після завершення дампу, використовується Elcomsoft Forensic Disk Decryptor для витягнення ключів з образу. Вказується шлях до ключів, обирається дамп на 32 ГБ, який щойно був створений. Вимикаються опції PGP, залишаються лише VeraCrypt і BitLocker, щоб не перевантажувати систему, і натискається “Next”.

Процес пішов досить швидко. Після паузи, коли все завершилося, софт повідомив, що знайдено майстер-ключ від TrueCrypt і BitLocker. Ключ для VeraCrypt не був знайдений.

Зберігаються ці ключі у файл “keys”. Цікаво, що RamCapture від BelkaSoft також може робити дамп оперативної пам’яті, на відміну від деякого спеціалізованого софту. Розглядається можливість розшифрування контейнерів. Розмонтовуються всі контейнери. Якщо є доступ до комп’ютера, можна просто натиснути “архівувати ключ”. Це не обов’язково робити через витягування з оперативної пам’яті, хоча іноді це єдиний спосіб.

Далі розглядається TrueCrypt і VeraCrypt. Спочатку вказується шлях до контейнера TrueCrypt. З TrueCrypt все працює добре. Вказується memory dump і збережені ключі. Введення збережених ключів та натискання “Mount”. Диск успішно примонтовано. Контейнер TrueCrypt працює відмінно, після чого його розмонтовують.

Наступний крок – спроба з VeraCrypt. З VeraCrypt не працює, хоча шифрування пам’яті не було увімкнене. Можливо, ключі VeraCrypt зберігаються в певній області, або в зашифрованій області, або драйвер не дає доступу софту, який робить дамп ОЗУ, до цих ключів. В результаті, навіть маючи дамп оперативної пам’яті, примонтувати VeraCrypt не вдається.

Звертається увага на те, чому за замовчуванням не включена опція шифрування ключів в ОЗУ.

Це пов’язано з тим, що при ввімкненні цієї функції оперативна пам’ять уповільнюється на 15-20%. Тому ця функція за замовчуванням не включена. Як показано на прикладі, навіть платні рішення, які використовуються експертами, не допомагають.

Відтак, будуть проведені подальші тести на TrueCrypt, оскільки ключ TrueCrypt був знайдений. Тепер розглядається BitLocker. Як видно, дорогий і популярний софт, не хочу сильно критикувати, оскільки інших рішень немає, але при спробі вказати шлях до зашифрованого диска BitLocker, навіть якщо він розблокований, софт аварійно завершується. Тобто ключ знайдений в оперативній пам’яті, але софт виходить з ладу.

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

Можна завантажити як диск, можна вказати контейнер. Зараз створюється образ для демонстрації. FTK Imager – чудовий безкоштовний софт для створення образів дисків, дампів оперативної пам’яті та монтування цих образів.

Він підтримує формати E01 (повна побітова копія з стисненням) і DD/RAW (побітова копія без стиснення). Використовується формат DD/RAW, щоб софт краще його сприймав.

Створюється образ. Після завершення видно, що софт все одно виходить з ладу. Єдине, що можна розшифрувати за допомогою цього софту з коробки, – це TrueCrypt. Тепер вмикається апаратне шифрування на жорсткому диску і перевіряється, наскільки воно може захистити оперативну пам’ять від таких атак.

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

Софт добре справляється з TrueCrypt і витягує ключі. Вмикається шифрування оперативної пам’яті в процесорі і перевіряється, наскільки це захищає оперативну пам’ять від таких атак.

Шифрування оперативної пам’яті за замовчуванням має бути вимкнене, і не кожен процесор його підтримує. Для його увімкнення необхідно зайти в налаштування BIOS, потім у розділ DDR Security, і увімкнути відповідні функції, які відповідають за шифрування оперативної пам’яті та Scrambling. Це ускладнює роботу з дампами оперативної пам’яті. Перевіряється, як це працює насправді.

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

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

Дамп успішно завершено. Запускається пошук ключів TrueCrypt. Аналіз триває набагато довше, ніж у нешифрованому дампі ОЗП. Можливо, це через апаратне шифрування. Поки йде аналіз, спробуємо знайти текстові дані в дампі.

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

Для аналізу використовується FTK Imager. Вибирається файл образу і вказується шлях до дампу. Натискається “Finish”, і образ відкривається. Тут можна виконати пошук. Починається пошук за початковим текстом, натискається “Find”. Результат знайдено. Незважаючи на те, що оперативна пам’ять зашифрована апаратним способом, буфер обміну все-таки був виявлений.

Спробуємо знайти пароль, яким відкривали контейнер. Пошук також успішний, знайдено “123”. Можливо, це збіг, оскільки пароль занадто короткий. Давайте спробуємо знайти довший текст. Пошук російською мовою не виконується коректно, тому додаємо новий текст у буфер обміну для тесту.

Вставляються наступні тексти в буфер обміну по черзі:

  • тест 1

  • тест 2

  • тест 3

Ці тексти повинні зберігатися в оперативній пам’яті. Знімається дамп і спробуємо знайти ці тексти вручну. Створюється новий образ оперативної пам’яті, додається в FTK Imager і шукається інформація за ключовими словами.

Пробуємо шукати “тест 1”. Як бачимо, текст знайдено. Потім шукаємо “тест 2” і “тест 3”. Всі тексти знайдені, хоча вони трохи перемішані.

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

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

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

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

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

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

Крім того, VeraCrypt має налаштування очищення оперативної пам’яті при підключенні нового пристрою. Якщо вставляється невідомий пристрій, пам’ять очищається, і система переходить у синій екран. На даний момент немає готових продуктів, здатних отримати майстер-ключ VeraCrypt з оперативної пам’яті.

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

Підписатися
Сповістити про
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.