macOS MDM
Для вивчення macOS MDM перевірте:
Основи
Огляд MDM (Mobile Device Management)
Управління мобільними пристроями (MDM) використовується для управління різними пристроями кінцевих користувачів, такими як смартфони, ноутбуки та планшети. Особливо для платформ Apple (iOS, macOS, tvOS) воно включає набір спеціалізованих функцій, API та практик. Робота MDM ґрунтується на сумісному MDM-сервері, який може бути комерційно доступним або з відкритим кодом, і повинен підтримувати протокол MDM. Ключові аспекти включають:
Централізоване керування пристроями.
Залежність від MDM-сервера, який дотримується протоколу MDM.
Здатність MDM-сервера відправляти різні команди на пристрої, наприклад, видалення даних здалеку або встановлення конфігурації.
Основи DEP (Device Enrollment Program)
Програма реєстрації пристроїв (DEP), запропонована Apple, спрощує інтеграцію управління мобільними пристроями (MDM), спрощуючи конфігурацію без дотику для пристроїв iOS, macOS та tvOS. DEP автоматизує процес реєстрації, дозволяючи пристроям бути готовими до використання одразу після розпакування, з мінімальним втручанням користувача або адміністратора. Основні аспекти включають:
Дозволяє пристроям автономно реєструватися на попередньо визначеному MDM-сервері при початковій активації.
Головним чином корисний для абсолютно нових пристроїв, але також застосовується до пристроїв, які проходять повторну конфігурацію.
Спрощує налаштування, роблячи пристрої готовими до організаційного використання швидко.
Врахування безпеки
Важливо зауважити, що спрощена реєстрація, надана DEP, хоч і корисна, також може становити ризики для безпеки. Якщо заходи захисту не будуть належним чином забезпечені для реєстрації MDM, зловмисники можуть використовувати цей спрощений процес для реєстрації свого пристрою на MDM-сервері організації, видаючи себе за корпоративний пристрій.
Попередження про безпеку: Спрощена реєстрація DEP може потенційно дозволити несанкціоновану реєстрацію пристроїв на MDM-сервері організації, якщо належні заходи захисту не встановлені.
Основи Що таке SCEP (Простий протокол реєстрації сертифікатів)?
Відносно старий протокол, створений до поширення TLS та HTTPS.
Надає клієнтам стандартизований спосіб надсилання запиту на підпис сертифіката (CSR) з метою отримання сертифіката. Клієнт попросить сервер видати йому підписаний сертифікат.
Що таке Профілі конфігурації (також відомі як mobileconfigs)?
Офіційний спосіб Apple встановлення/застосування конфігурації системи.
Формат файлу, який може містити кілька навантажень.
На основі списків властивостей (типу XML).
"можуть бути підписані та зашифровані для перевірки їх походження, забезпечення їх цілісності та захисту їх вмісту." Основи — Сторінка 70, Посібник з безпеки iOS, січень 2018 року.
Протоколи
MDM
Комбінація APNs (сервери Apple) + RESTful API (сервери MDM-постачальників)
Комунікація відбувається між пристроєм та сервером, пов'язаним з продуктом управління пристроями
Команди надсилаються з MDM на пристрій у вигляді словників, закодованих у форматі plist
Все через HTTPS. Сервери MDM можуть бути (і зазвичай) закріплені.
Apple надає вендору MDM сертифікат APNs для аутентифікації
DEP
3 API: 1 для реселерів, 1 для вендорів MDM, 1 для ідентифікації пристроїв (недокументований):
Так званий API "хмарної служби" DEP. Використовується MDM-серверами для асоціації профілів DEP з конкретними пристроями.
API DEP, використований Apple Authorized Resellers для реєстрації пристроїв, перевірки статусу реєстрації та перевірки статусу транзакції.
Недокументований приватний API DEP. Використовується пристроями Apple для запиту свого профілю DEP. На macOS відповідальний за комунікацію через цей API є бінарний файл
cloudconfigurationd
.Більш сучасний та на базі JSON (на відміну від plist)
Apple надає вендору MDM токен OAuth
API "хмарної служби" DEP
RESTful
синхронізувати записи пристроїв від Apple до сервера MDM
синхронізувати "профілі DEP" до Apple від сервера MDM (доставлені Apple на пристрій пізніше)
Профіль DEP містить:
URL сервера вендора MDM
Додаткові довірені сертифікати для URL сервера (необов'язкове закріплення)
Додаткові налаштування (наприклад, які екрани пропустити в помічнику налаштування)
Серійний номер
Зазвичай у пристрої Apple, виготовленому після 2010 року, є 12-символьний алфавітно-цифровий серійний номер, де перші три цифри вказують на місце виробництва, наступні дві вказують на рік та тиждень виробництва, наступні три цифри надають унікальний ідентифікатор, а останні чотири цифри представляють номер моделі.
pagemacOS Serial NumberКроки для реєстрації та управління
Створення запису пристрою (Реселер, Apple): Створюється запис для нового пристрою
Призначення запису пристрою (Клієнт): Пристрій призначається серверу MDM
Синхронізація запису пристрою (Вендор MDM): MDM синхронізує записи пристроїв та надсилає профілі DEP до Apple
Перевірка DEP (Пристрій): Пристрій отримує свій профіль DEP
Отримання профілю (Пристрій)
Встановлення профілю (Пристрій) включаючи навантаження MDM, SCEP та кореневого сертифіката
Видача команди MDM (Пристрій)
Файл /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd
експортує функції, які можна вважати високорівневими "кроками" процесу реєстрації.
Крок 4: Перевірка DEP - Отримання запису активації
Ця частина процесу відбувається, коли користувач запускає Mac вперше (або після повного видалення)
або при виконанні sudo profiles show -type enrollment
Визначити, чи пристрій має підтримку DEP
Запис активації - внутрішня назва для DEP "профілю"
Починається, як тільки пристрій підключається до Інтернету
Керується
CPFetchActivationRecord
Реалізовано через
cloudconfigurationd
через XPC. "Допоміжний асистент" (коли пристрій вперше запускається) або командаprofiles
буде звертатися до цього демона для отримання запису активації.LaunchDaemon (завжди працює як root)
Слідує кілька кроків для отримання запису активації, виконаних MCTeslaConfigurationFetcher
. Цей процес використовує шифрування під назвою Absinthe
Отримати сертифікат
Ініціалізувати стан з сертифікату (
NACInit
)Використовує різні дані, специфічні для пристрою (тобто серійний номер через
IOKit
)Отримати сесійний ключ
Встановити сесію (
NACKeyEstablishment
)Зробити запит
POST на https://iprofiles.apple.com/macProfile надсилаючи дані
{ "action": "RequestProfileConfiguration", "sn": "" }
JSON навантаження шифрується за допомогою Absinthe (
NACSign
)Усі запити через HTTPs, використовуються вбудовані кореневі сертифікати
Відповідь - це JSON словник з деякими важливими даними, такими як:
url: URL хоста вендора MDM для активаційного профілю
anchor-certs: Масив DER сертифікатів, які використовуються як довірені якорі
Крок 5: Отримання профілю
Запит надсилається на URL, вказаний в DEP профілі.
Для оцінки довіри використовуються якірні сертифікати, якщо вони надані.
Нагадування: властивість anchor_certs профілю DEP
Запит - це простий .plist з ідентифікацією пристрою
Приклади: UDID, версія ОС.
CMS-підписаний, DER-кодований
Підписаний за допомогою сертифіката ідентифікації пристрою (від APNS)
Ланцюжок сертифікатів включає прострочений Apple iPhone Device CA
Крок 6: Встановлення профілю
Після отримання профілю він зберігається в системі
Цей крок починається автоматично (якщо в допоміжному асистенті)
Керується
CPInstallActivationProfile
Реалізовано mdmclient через XPC
LaunchDaemon (як root) або LaunchAgent (як користувач), в залежності від контексту
Конфігураційні профілі мають кілька навантажень для встановлення
Фреймворк має архітектуру на основі плагінів для встановлення профілів
Кожен тип навантаження пов'язаний з плагіном
Може бути XPC (у фреймворку) або класичний Cocoa (у ManagedClient.app)
Приклад:
Навантаження сертифіката використовують CertificateService.xpc
Зазвичай профіль активації, наданий вендором MDM, буде включати наступні навантаження:
com.apple.mdm
: для реєстрації пристрою в MDMcom.apple.security.scep
: для безпечного надання клієнтського сертифіката пристрою.com.apple.security.pem
: для встановлення довірених сертифікатів CA в системний ключовий ланцюжок пристрою.Встановлення навантаження MDM еквівалентно перевірці MDM в документації
Навантаження містить ключові властивості:
URL перевірки MDM (
CheckInURL
)URL опитування команд MDM (
ServerURL
) + тема APNs для його запускуДля встановлення навантаження MDM, запит надсилається на
CheckInURL
Реалізовано в
mdmclient
Навантаження MDM може залежати від інших навантажень
Дозволяє запитам бути закріпленими за конкретними сертифікатами:
Властивість:
CheckInURLPinningCertificateUUIDs
Властивість:
ServerURLPinningCertificateUUIDs
Доставляється через навантаження PEM
Дозволяє пристрою бути пов'язаним з сертифікатом ідентифікації:
Властивість: IdentityCertificateUUID
Доставляється через навантаження SCEP
Крок 7: Прослуховування команд MDM
Після завершення перевірки MDM вендор може видавати сповіщення про натискання за допомогою APNs
Після отримання, обробляється
mdmclient
Для опитування команд MDM, запит надсилається на ServerURL
Використовується раніше встановлене навантаження MDM:
ServerURLPinningCertificateUUIDs
для закріплення запитуIdentityCertificateUUID
для TLS клієнтського сертифіката
Last updated