Пароль до шифрування FileVault2 зберігається в пам'яті Mac на одному і тому ж ділянці, причому в текстовому вигляді. Його можна добути за допомогою атаки прямого доступу до пам'яті під час завантаження macOS. Для цього досить зібрати спеціальний прилад, скориставшись інструкцією в інтернеті.
винахід Фріска.
Уразливість в фірмовій системі шифрування файлів FileVault2, яке використовується в macOS, дозволяє хакерам швидко добути пароль до шифру і отримати таким чином доступ до всіх файлів на комп'ютері. Для цього до «сплячому» або заблокованого Mac досить підключити саморобний пристрій під назвою PCILeech загальною вартістю в $ 300, створене шведським дослідником Ульфом Фріске (Ulf Frisk).
PCILeech підключається до Mac через порт Thunderbolt, після чого командою ctrl + cmd + power запускається примусове перезавантаження, в ході якої витягується пароль. Пароль дозволить розблокувати Mac і отримати доступ до усім, хто знаходиться на ньому даними. Атака займає менше 30 секунд, стверджує Фріск.
Щоб захистити комп'ютер, потрібно встановити патчі від 13 грудня 2016 р. версії macOS 10. 12. 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.
Для створення приладу Фріск використовував чіп 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.