Пароль к шифрованию FileVault2 хранится в памяти Mac на одном и том же участке, причем в текстовом виде. Его можно добыть с помощью атаки прямого доступа к памяти во время загрузки macOS. Для этого достаточно собрать специальный прибор, воспользовавшись инструкцией в интернете.

Изобретение Фриска

Уязвимость в фирменной системе шифрования файлов FileVault2, которое используется в macOS, позволяет хакерам быстро добыть пароль к шифру и получить таким образом доступ ко всем файлам на компьютере. Для этого к «спящему» или заблокированному Mac достаточно подключить самодельное устройство под названием PCILeech общей стоимостью в $300, созданное шведским исследователем Ульфом Фриском (Ulf Frisk).

PCILeech подключается к Mac через порт Thunderbolt, после чего командой ctrl+cmd+power запускается принудительная перезагрузка, в ходе которой извлекается пароль. Пароль позволит разблокировать Mac и получить доступ ко всем находящимся на нем данным. Атака занимает менее 30 секунд, утверждает Фриск.

Чтобы защитить компьютер, нужно установить патчи от 13 декабря 2016 г. версии macOS 10.12.2. Apple создала их после того, как в августе 2016 г. исследователь сообщил компании о проделанной работе.

Уязвимость доступа к памяти

По словам Фриска, шифрование FileVault2 имеет две уязвимости, использованные им при создании PCILeech. Первая заключается в том, что Mac не защищен от атак прямого доступа к памяти (DMA). Вернее, такая защита есть, но она активна только во время работы macOS, а во время ее загрузки память может быть прочитана и переписана посторонними устройствами.

Подключение прибора становится возможным потому, что расширяемый интерфейс прошивки (EFI) в macOS приводит порт Thunderbolt в рабочее состояние до того, как система полностью загружена.

Уязвимое хранение пароля

Вторая уязвимость заключается в том, что пароль к FileVault2 хранится в виде простого текста в формате Unicode и остается в памяти после возобновления работы, лишь незначительно меняя свое расположение. Предположив, что пароль составлен по таблице ASCII, Фриск пришел к выводу, что каждый четный байт в нем обозначен нулем. Это помогло найти нужную фразу в памяти.

Например, придумав пароль «eerrbbnn», исследователь быстро обнаружил его в виде «6500650072007200620062006e006e». Для локализации пароля в памяти и просмотра локализованного участка и был создан PCILeech.

Если пароль содержит символы, которых нет в ASCII, атака может обернуться неудачей. В этом случае Фриск рекомендует сохранить снимок информации о состоянии системы (дамп памяти), чтобы позднее найти пароль вручную.

Как собрать прибор

PCILeech – это прибор для проведения DMA-атак на 64-битные системы, в том числе Linux, FreeBSD, macOS и Windows. Для описанной выше атаки на macOS Фриск разработал версию устройства PCILeech 1.3.

Для создания прибора Фриск использовал чип USB3380 стоимостью порядка $15. Однако исследователь советует воспользоваться макетной платой USB3380-EVB mini-PCIe или PP3380-AB PCIe с предустановленным чипом.

Плату можно найти на ресурсах eBay или AliExpress. При этом плата ExpressCard EC3380-AB не подходит, но можно использовать разработки компании BPlus Technology. PCILeech работает через порт Thunderbolt 2. На новых Mac, где есть только USB-C, Фриск его не проверял.

ПО, необходимое для работы устройства на Windows 7 и Windows 10 PC, можно найти на ресурсе GitHub. Там же находится полный список компонентов и руководство по производству PCILeech.

Read Full Article