Розширення ядра та системи в macOS
macOS 10.15 і новіші дають змогу розробникам розширювати можливості macOS, інсталюючи й керуючи системними розширеннями, які запускаються в середовищі користувача, аніж на рівні ядра. Запуск системних розширень у користувацькому просторі підвищує стабільність і безпеку macOS. Хоча б тому, що розширення ядра за своєю суттю мають доступ до всієї операційної системи, а розширення в користувацькому просторі отримують лише ті привілеї, які їм потрібні для виконання визначених функцій.
Системні розширення підтримують ґрунтовне керування за допомогою MDM, зокрема можливість дозволяти всі розширення від певного розробника чи завантажувати розширення певного типу (наприклад, мережеві) без взаємодії користувача. Додатково рішення MDM може забороняти користувачам схвалювати завантаження власних системних розширень.
Починаючи з macOS 11.3 і до macOS 11.6.4 зміни в профілі системного розширення прямо впливають на стан розширення. Наприклад, якщо розширення очікує на схвалення й буде надіслано профіль конфігурації, який дозволяє розширення, розширенню буде дозволено завантажитися. І навпаки, якщо дозвіл відкликати, системне розширення буде вивантажено й позначено для вилучення після наступного перезапуску Mac. Якщо системне розширення спробує вивантажити себе, з’явиться інтерактивне діалогове вікно автентифікації, яке вимагатиме введення облікових даних адміністратора для схвалення вивантаження.
У macOS 12.0.1 або новіших словник у наборі даних System Extensions, який називається RemovableSystemExtensions
, дозволяє адміністратору MDM указувати, які програми можуть вилучати власні системні розширення. Для вилучення цих системних розширень не потрібна автентифікація локального адміністратора. Це особливо корисно для постачальників, які можуть надавати автоматичні деінсталятори зі своїми програмами.
Розширення ядра
У macOS 11 або новіших, якщо ввімкнено сторонні розширення ядра (kexts), їх не можна завантажити в ядро на вимогу. Для цього потрібне схвалення користувачем і перезапуск macOS для завантаження змін у ядро. Крім того, безпеку запуску слід змінити на послаблену на Mac із процесором Apple.
Розробники можуть використовувати бібліотеки, включно з DriverKit і NetworkExtension, для запису драйверів інтерфейсів USB і користувача, інструментів безпеки терміналів (наприклад, запобігання втраті даних чи інших агентів терміналів), мережевих інструментів і VPN, — і все це без потреби писати розширення ядра. Засоби безпеки сторонніх розробників слід використовувати лише в тому разі, коли вони використовують ці API або мають чітку схему переходу до них від розширень ядра.
Важливо! Відтепер розширення ядра не рекомендовані для macOS. Розширення ядра наражають на небезпеку цілісність і надійність операційної системи. Користувачам слід надавати перевагу рішенням, які не потребують розширень ядра, і натомість користуватися системними розширеннями.
Додавання розширень (kext) ядра на пристрої Mac із процесором Intel або Apple під керуванням macOS 11 або новішої
Якщо необхідно використовувати розширення ядра, перегляньте методи затвердження на основі типу реєстрації.
Тип реєстрації в MDM | Метод схвалення | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Не зареєстровано Реєстрація користувача | Коли інстальовано нове розширення ядра й відбувається спроба його завантаження, користувач має виконати перезапуск із вікна застереження.
Цей перезапуск ініціює перебудову AuxKC перед завантаженням ядра. | ||||||||||
Реєстрація пристрою Автоматизована реєстрація пристрою | Щоразу, коли інсталюється нове розширення ядра й відбувається спроба його завантаження, потрібно виконати перезапуск в один із таких способів:
Примітка. Профіль зі списком дозволених розширень ядра спершу має бути інстальований рішенням MDM з указанням розширення. macOS 11.3 і новіші за потреби можуть дозволяти рішенню MDM сповіщати користувача про необхідність перезапуску в зручний час. |
Додаткові кроки для додавання розширень ядра на пристрої Mac із процесором Apple
Якщо ви додаєте розширення ядра на комп’ютерах Mac із процесором Apple, необхідно виконати додаткові дії.
Тип реєстрації в MDM | Метод схвалення | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Не зареєстровано | Керування розширенням ядра користувачем вимагає перезапуску в recoveryOS для пониження параметрів безпеки. Користувач має натиснути й утримувати кнопку живлення, щоб перезапуститися в recoveryOS і автентифікуватися як адміністратор. Лише в разі запуску recoveryOS шляхом натиснення кнопки живлення Secure Enclave прийме зміну політики. Після цього користувач має поставити позначку «Послаблена безпека», вибрати опцію «Дозволити ідентифікованим розробникам керувати розширеннями ядра на рівні користувача» і перезапустити Mac. | ||||||||||
Реєстрація користувача | Користувач має перезапуститися в recoveryOS для пониження параметрів безпеки. Користувач має натиснути й утримувати кнопку живлення, щоб перезапуститися в recoveryOS та автентифікуватися як локальний адміністратор. Лише в разі запуску recoveryOS шляхом натиснення кнопки живлення Secure Enclave прийме зміну політики. Після цього користувач має вибрати «Послаблена безпека» та опцію «Дозволити ідентифікованим розробникам керувати розширеннями ядра на рівні користувача», а потім перезапустити Mac. | ||||||||||
Реєстрація пристрою | Рішення MDM повідомляє користувача, що йому потрібно перезапуститися в recoveryOS для пониження параметрів безпеки. Користувач має натиснути й утримувати кнопку живлення, щоб перезапуститися в recoveryOS і автентифікуватися як адміністратор. Лише в разі запуску recoveryOS шляхом натиснення кнопки живлення Secure Enclave прийме зміну політики. Після цього користувач має вибрати «Послаблена безпека» та опцію «Дозволити віддалене керування розширеннями ядра та автоматичні оновлення системи», а потім перезапустити Mac. Щоб дізнатися, чи підтримується ця функція вашими пристроями, перегляньте документацію постачальника MDM. | ||||||||||
Автоматизована реєстрація пристрою (Серійний номер Mac має відображатися в Apple School Manager, Apple Business Manager або Apple Business Essentials, а Mac має бути зареєстровано в рішенні MDM, пов’язаному зі службою.) | Рішення MDM можуть керувати автоматично. Щоб дізнатися, чи підтримується ця функція вашими пристроями, перегляньте документацію постачальника MDM. |
Розширення ядра та захист цілісності системи
Якщо ввімкнено захист цілісності системи (SIP), для кожного розширення ядра, перед включенням в AuxKC, перевіряється підпис.
Якщо SIP вимкнено, підпис розширення ядра не потрібний.
Цей підхід дає змогу запускати процедуру дозвільної безпеки для розробників чи користувачів, які не є частиною програми розробників Apple, яким потрібно протестувати розширення ядра перед накладенням підпису.