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

Безпечне завантаження

Мета полягає в тому, щоб весь процес завантаження виконувався з використанням коду і ресурсів, які перевіряються перед завантаженням. Це відбувається у п’ять основних етапів:

  • Boot ROM, який знаходиться в апаратному забезпеченні і не може бути змінений. У цьому контексті його найважливішим завданням є перевірка виконуваного файлу для наступного етапу, його завантаження та запуск. Якщо це неможливо, то запасним варіантом є перехід у режим DFU і очікування зовнішнього з’єднання через USB.
  • Низькорівневий бутлоадер, LLB, який перевіряє і зчитує збережені налаштування безпеки в LocalPolicy, знаходить і перевіряє програмне забезпечення для наступного етапу, а потім передає йому управління.
  • iBoot, яку в народі називають “прошивкою”, яка перевіряє набір хешів, що використовуються для гарантування цілісності ключової інформації, порівнюючи збережену копію з хешем цього хешу, її підписом. Серед них є підпис підписаного системного тому (Signed System Volume, SSV), але iBoot не намагається отримати доступ до SSV або його хешів, а лише передає перевірений кореневий хеш для подальшого використання ядром. Після завершення перевірок відповідно до LocalPolicy, iBoot перевіряє, завантажує і запускає ядро macOS.
  • MacOS, ядро якого перебирає на себе функції iBoot, запускає решту обладнання, системи безпеки, SSV та інші сховища, а також завантажує всі необхідні розширення ядра. Це, зрештою, призводить до запуску Mac і появи екрану входу в систему.
  • cryptexes, файли образу диска з криптографічним підписом, які завантажують деякі компоненти macOS, такі як Safari, що залишаються за межами SSV, щоб їх можна було оновити без повного оновлення macOS, зокрема за допомогою швидкого реагування системи безпеки (RSR).

Якщо щось піде не так, наприклад, збій верифікації, є лише два варіанти розвитку подій: Mac переходить у режим DFU для очікування з’єднання з іншим комп’ютером, або ж переходить у режим відновлення. На кожному з перших трьох етапів завантажується лише код, необхідний для доступу до апаратного забезпечення для виконання своїх завдань. У випадку з завантажувальним ПЗП це мінімальний набір, який включає підтримку доступу до флеш-пам’яті, що містить LLB, і базову підтримку USB для підключення до іншого комп’ютера в режимі DFU. Це пояснює, чому режим DFU не працюватиме через з’єднання Thunderbolt, оскільки для забезпечення необхідної апаратної підтримки потрібні додаткові системи в мікросхемі. Аналогічно, комп’ютер Mac, що підключається, повинен мати можливість надіслати заміну для LLB, щоб дозволити кремнієвому комп’ютеру Apple продовжити встановлення нового LLB і компонентів Preboot, а потім відновити решту внутрішнього твердотільного накопичувача.

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

 

Підписаний системний том (SSV)

 

У macOS Mojave системні та користувацькі дані зберігаються в одному завантажувальному томі. У Big Sur і пізніших версіях вони розділені між двома томами, які з’єднані між собою в певних місцях за допомогою спеціальних твердих посилань, утворюючи групу завантажувальних томів, яка поширюється на парний том відновлення, і ще один прихований том для файлів підкачки віртуальної пам’яті. Внутрішній SSD-накопичувач кремнієвих комп’ютерів Apple Mac також має два приховані розділи або контейнери, які використовуються системою і яких немає в комп’ютерах Intel Mac.

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

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

Одна частина системи залишається поза повним захистом SSV та криптексів: сторонні розширення ядра, встановлені на томі даних. Хоча вони тепер входять до складу колекції ядра, оскільки вони залишаються вразливими, для їх завантаження користувач повинен знизити рівень безпеки в Startup Security Utility, в режимі відновлення, і явно дозволити їх завантаження. Це змінює поведінку в порівнянні з Intel Mac з чіпом T2.

 

Зовнішні завантажувальні диски

 

Ще одним недоліком комп’ютерів Intel Mac з чипами T2 є їхня залежність від завантаження з внутрішнього SSD для досягнення повної безпеки. Якщо користувач бажає завантажити T2 Mac із зовнішнього завантажувального диска, це потрібно явно ввімкнути в утиліті Startup Security Utility. Кремнієві комп’ютери Apple Mac зазвичай працюють у режимі повної безпеки при запуску з зовнішнього диска завдяки функціям Secure Boot.

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

Кінцевий результат є більш гнучким і безпечним, ніж завантаження Intel Mac з мікросхемою T2 із зовнішнього накопичувача, іноді може бути трохи складнішим у налаштуванні, але завжди вимагає, щоб процес завантаження починався з внутрішнього SSD. Для тих, кого лякає перспектива його передчасного виходу з ладу, це може бути складною концепцією, але це дає впевненість у тому, що ваш Mac не зможе запустити будь-хто, хто проходить повз із завантажувальним зовнішнім диском у руці.

Secure Enclave

 

Для підтримки цих розширених функцій безпеки, біометрії у вигляді Touch ID та для захисту секретів у більш широкому сенсі, у кремнії Apple є Secure Enclave з власним процесором Secure Enclave Processor (SEP), що працює під управлінням власної операційної системи sepOS. Apple надала детальну інформацію про це в чіпі M1, але ще не оновила її для M2 або M3.

 

Відновлення

 

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

Для входу в безпечний режим спочатку потрібно виконати той самий процес, а потім вибрати групу завантажувальних томів (диск), який буде використано перед початком перезавантаження в безпечний режим. Через залежність від кнопки живлення це зазвичай виконується з холодного старту, з вимкненим комп’ютером Mac, а не з перезавантаження, що менш зручно.

За певних обставин macOS може перезапустити кремнієвий Mac Apple у Recovery, але єдиний спосіб, яким користувач може перевести свій Mac у Recovery, – це кнопка живлення, яка вимагає фізичного контакту з комп’ютером.

 

Віртуальна macOS

 

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

Вони дозволяють новітнім кремнієвим комп’ютерам Apple, таким як модель M3, на яких не можна запустити macOS Monterey або Ventura, запускати ці старі версії, хоча macOS 11 Big Sur не підтримується як гостьова або основна операційна система. Оскільки ВМ macOS можуть використовувати переклад Rosetta 2 для запуску коду Intel, коли Apple припинить підтримку цього перекладу в наступній версії macOS, це дозволить користувачам запускати на ВМ macOS лише програми Intel.

Хоча продуктивність ВМ macOS дуже близька до нативної, наразі вони мають обмеження, найсерйознішим з яких є відсутність підтримки Apple ID, а отже, майже всіх додатків в App Store.

 

Концепції

 

  • Безпека вбудована в процесор Apple, а не додана додатково.
  • Secure Boot забезпечує повну перевірку кожного кроку в процесі завантаження.
  • SSV гарантує повну цілісність системного тому.
  • Запуск із зовнішнього диска не вимагає компрометації Secure Boot або зміни налаштувань безпеки.
  • Безпеку та секрети захищає Secure Enclave з власним процесорним ядром та операційною системою.
  • У режим відновлення можна увійти лише натисканням кнопки живлення, і його не можна використати для обходу захисту.
  • Віртуальна macOS може надавати доступ до старіших версій, які не можна запустити на новіших комп’ютерах Mac.

Оригінал статті Ґоварда Уоклі на сайті eclecticlight.co

Інші статті циклу:

 

Процесори Apple: 1 Ядра,кластери та продуктивність

Процесори Apple: 2 Потужність і теплова ефективність

Процесори Apple: 3 Але чи економить він енергію?

Процесори Apple: 4 Трохи допомоги від друзів та співпроцесорів

Процесори Apple: 5 Пам’ять і внутрішній накопичувач

Процесори Apple: 6 Безпека