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