macOS MDM
Aby dowiedzieć się więcej o macOS MDM, sprawdź:
Podstawy
Przegląd MDM (Mobile Device Management)
Zarządzanie urządzeniami mobilnymi (MDM) jest wykorzystywane do zarządzania różnymi urządzeniami końcowymi, takimi jak smartfony, laptopy i tablety. Szczególnie dla platform Apple (iOS, macOS, tvOS) obejmuje zestaw specjalistycznych funkcji, interfejsów API i praktyk. Działanie MDM opiera się na kompatybilnym serwerze MDM, który jest dostępny komercyjnie lub jako oprogramowanie open-source, i musi obsługiwać Protokół MDM. Kluczowe punkty obejmują:
Zcentralizowana kontrola nad urządzeniami.
Zależność od serwera MDM, który przestrzega protokołu MDM.
Możliwość serwera MDM do wysyłania różnych poleceń do urządzeń, na przykład zdalne usuwanie danych lub instalację konfiguracji.
Podstawy DEP (Device Enrollment Program)
Program rejestracji urządzeń (DEP) oferowany przez Apple ułatwia integrację Mobile Device Management (MDM), umożliwiając konfigurację bez interakcji użytkownika lub administratora. DEP automatyzuje proces rejestracji, umożliwiając urządzeniom być gotowym do użycia od razu po wyjęciu z pudełka, z minimalną ingerencją użytkownika lub administratora. Istotne aspekty obejmują:
Umożliwia urządzeniom automatyczną rejestrację w predefiniowanym serwerze MDM podczas początkowej aktywacji.
Przede wszystkim korzystne dla zupełnie nowych urządzeń, ale także stosowalne dla urządzeń poddawanych rekonfiguracji.
Ułatwia prostą konfigurację, sprawiając, że urządzenia są gotowe do użytku organizacyjnego szybko.
Rozważania dotyczące bezpieczeństwa
Należy zauważyć, że łatwość rejestracji zapewniana przez DEP, choć korzystna, może również stanowić ryzyko dla bezpieczeństwa. Jeśli środki ochronne nie są odpowiednio egzekwowane podczas rejestracji w MDM, atakujący mogą wykorzystać ten uproszczony proces do zarejestrowania swojego urządzenia na serwerze MDM organizacji, podszywając się pod korporacyjne urządzenie.
Alert bezpieczeństwa: Uproszczona rejestracja DEP może potencjalnie umożliwić nieautoryzowaną rejestrację urządzenia na serwerze MDM organizacji, jeśli nie są wdrożone odpowiednie zabezpieczenia.
Podstawy Co to jest SCEP (Simple Certificate Enrolment Protocol)?
Relatywnie stary protokół, stworzony przed rozpowszechnieniem się TLS i HTTPS.
Zapewnia klientom standaryzowany sposób wysyłania żądania podpisania certyfikatu (CSR) w celu uzyskania certyfikatu. Klient prosi serwer o podpisanie certyfikatu.
Co to są Profile Konfiguracji (znane również jako mobileconfigs)?
Oficjalny sposób Apple na ustawianie/wymuszanie konfiguracji systemu.
Format pliku, który może zawierać wiele ładunków.
Oparte na listach właściwości (rodzaj XML).
„mogą być podpisane i zaszyfrowane, aby zweryfikować ich pochodzenie, zapewnić integralność i chronić ich zawartość.” Podstawy — Strona 70, Przewodnik po bezpieczeństwie iOS, styczeń 2018 r.
Protokoły
MDM
Kombinacja APNs (serwery Apple) + RESTful API (serwery dostawców MDM)
Komunikacja zachodzi między urządzeniem a serwerem związanych z produktem zarządzania urządzeniami
Polecenia dostarczane z MDM do urządzenia w formie słowników kodowanych w plist
Wszystko przez HTTPS. Serwery MDM mogą być (i zazwyczaj są) przypięte.
Apple przyznaje dostawcy MDM certyfikat APNs do uwierzytelniania
DEP
3 interfejsy API: 1 dla sprzedawców, 1 dla dostawców MDM, 1 dla tożsamości urządzenia (nieudokumentowany):
Tak zwane API „usługi chmury” DEP. Jest to używane przez serwery MDM do powiązania profili DEP z konkretnymi urządzeniami.
API DEP używane przez autoryzowanych sprzedawców Apple do rejestracji urządzeń, sprawdzania stanu rejestracji i stanu transakcji.
Nieudokumentowane prywatne API DEP. Jest to używane przez urządzenia Apple do żądania swojego profilu DEP. Na macOS, binarny
cloudconfigurationd
jest odpowiedzialny za komunikację za pomocą tego API.Bardziej nowoczesne i oparte na JSON (w przeciwieństwie do plist)
Apple przyznaje dostawcy MDM token OAuth
API „usługi chmury” DEP
RESTful
synchronizacja rekordów urządzeń z Apple do serwera MDM
synchronizacja „profili DEP” do Apple z serwera MDM (dostarczane przez Apple do urządzenia w późniejszym czasie)
Profil DEP zawiera:
URL serwera dostawcy MDM
Dodatkowe zaufane certyfikaty dla adresu URL serwera (opcjonalne przypięcie)
Dodatkowe ustawienia (np. które ekrany pominąć w Asystencie konfiguracji)
Numer seryjny
Urządzenia Apple wyprodukowane po 2010 roku zazwyczaj mają 12-znakowe alfanumeryczne numery seryjne, gdzie pierwsze trzy cyfry reprezentują lokalizację produkcji, kolejne dwie wskazują rok i tydzień produkcji, następne trzy cyfry zapewniają unikalny identyfikator, a ostatnie cztery cyfry reprezentują numer modelu.
Kroki rejestracji i zarządzania
Tworzenie rekordu urządzenia (Sprzedawca, Apple): Tworzony jest rekord dla nowego urządzenia
Przypisanie rekordu urządzenia (Klient): Urządzenie jest przypisywane do serwera MDM
Synchronizacja rekordów urządzenia (Dostawca MDM): MDM synchronizuje rekordy urządzenia i przesyła profile DEP do Apple
Sprawdzanie DEP (Urządzenie): Urządzenie otrzymuje swój profil DEP
Pobieranie profilu (Urządzenie)
Instalacja profilu (Urządzenie) a. w tym ładunki MDM, SCEP i root CA
Wydawanie poleceń MDM (Urządzenie)
Plik /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd
eksportuje funkcje, które można uznać za wysokopoziomowe "kroki" procesu rejestracji.
Krok 4: Sprawdzenie DEP - Pobranie Rekordu Aktywacji
Ten etap procesu zachodzi, gdy użytkownik uruchamia Maca po raz pierwszy (lub po pełnym wymazaniu)
lub podczas wykonywania sudo profiles show -type enrollment
Określenie, czy urządzenie jest włączone do DEP
Rekord Aktywacji to wewnętrzna nazwa dla profilu DEP
Rozpoczyna się od razu po podłączeniu urządzenia do Internetu
Sterowane przez
CPFetchActivationRecord
Wdrożone przez
cloudconfigurationd
za pomocą XPC. "Asystent konfiguracji" (gdy urządzenie jest uruchamiane po raz pierwszy) lub polecenieprofiles
będzie kontaktować się z tym demonem w celu pobrania rekordu aktywacji.LaunchDaemon (zawsze działa jako root)
Następuje kilka kroków w celu uzyskania Rekordu Aktywacji wykonywanego przez MCTeslaConfigurationFetcher
. Ten proces wykorzystuje szyfrowanie o nazwie Absinthe
Pobierz certyfikat
Zainicjuj stan z certyfikatu (
NACInit
)Wykorzystuje różne dane specyficzne dla urządzenia (np. Numer seryjny za pomocą
IOKit
)Pobierz klucz sesji
Ustanów sesję (
NACKeyEstablishment
)Wyślij żądanie
POST do https://iprofiles.apple.com/macProfile wysyłając dane
{ "action": "RequestProfileConfiguration", "sn": "" }
Ładunek JSON jest szyfrowany za pomocą Absinthe (
NACSign
)Wszystkie żądania są realizowane przez HTTPs, używane są wbudowane certyfikaty root
Odpowiedź to słownik JSON z ważnymi danymi, takimi jak:
url: URL hosta dostawcy MDM dla profilu aktywacji
anchor-certs: Tablica certyfikatów DER używanych jako zaufane kotwice
Krok 5: Pobieranie Profilu
Żądanie wysłane do url podanego w profilu DEP.
Certyfikaty kotwicowe są używane do oceny zaufania, jeśli są dostarczone.
Przypomnienie: właściwość anchor_certs profilu DEP
Żądanie to prosty plik .plist z identyfikacją urządzenia
Przykłady: UDID, wersja OS.
Podpisany CMS, zakodowany DER
Podpisany za pomocą certyfikatu tożsamości urządzenia (z APNS)
Łańcuch certyfikatów zawiera wygasły Apple iPhone Device CA
Krok 6: Instalacja Profilu
Po pobraniu, profil jest przechowywany w systemie
Ten krok rozpoczyna się automatycznie (jeśli w asystencie konfiguracji)
Sterowane przez
CPInstallActivationProfile
Wdrożone przez mdmclient za pomocą XPC
LaunchDaemon (jako root) lub LaunchAgent (jako użytkownik), w zależności od kontekstu
Profile konfiguracji mają wiele ładunków do zainstalowania
Framework ma architekturę opartą na wtyczkach do instalowania profili
Każdy rodzaj ładunku jest powiązany z wtyczką
Może być XPC (w frameworku) lub klasyczne Cocoa (w ManagedClient.app)
Przykład:
Ładunki certyfikatów używają CertificateService.xpc
Zazwyczaj profil aktywacji dostarczony przez dostawcę MDM będzie zawierał następujące ładunki:
com.apple.mdm
: do zarejestrowania urządzenia w MDMcom.apple.security.scep
: do bezpiecznego dostarczenia certyfikatu klienta do urządzenia.com.apple.security.pem
: do zainstalowania zaufanych certyfikatów CA w Systemowym Keychain urządzenia.Instalowanie ładunku MDM równoważne z kontrolą MDM w dokumentacji
Ładunek zawiera kluczowe właściwości:
URL Kontroli MDM (
CheckInURL
)URL Odpytywania Komend MDM (
ServerURL
) + temat APNs do jego wywołaniaAby zainstalować ładunek MDM, żądanie jest wysyłane do
CheckInURL
Wdrożone w
mdmclient
Ładunek MDM może zależeć od innych ładunków
Pozwala na przypięcie żądań do określonych certyfikatów:
Właściwość:
CheckInURLPinningCertificateUUIDs
Właściwość:
ServerURLPinningCertificateUUIDs
Dostarczone za pomocą ładunku PEM
Pozwala na przypisanie urządzenia certyfikatem tożsamości:
Właściwość: IdentityCertificateUUID
Dostarczone za pomocą ładunku SCEP
Krok 7: Nasłuchiwanie poleceń MDM
Po zakończeniu kontroli MDM, dostawca może wysyłać powiadomienia push za pomocą APNs
Po otrzymaniu, obsługiwane przez
mdmclient
Aby odpytać o polecenia MDM, żądanie jest wysyłane do ServerURL
Wykorzystuje wcześniej zainstalowany ładunek MDM:
ServerURLPinningCertificateUUIDs
do przypięcia żądaniaIdentityCertificateUUID
do certyfikatu klienta TLS
Ataki
Rejestracja Urządzeń w Innych Organizacjach
Jak wcześniej wspomniano, aby spróbować zarejestrować urządzenie w organizacji, wystarczy numer seryjny należący do tej Organizacji. Gdy urządzenie zostanie zarejestrowane, kilka organizacji zainstaluje wrażliwe dane na nowym urządzeniu: certyfikaty, aplikacje, hasła WiFi, konfiguracje VPN i tak dalej. Dlatego może to być niebezpieczne wejście dla atakujących, jeśli proces rejestracji nie jest odpowiednio chroniony:
Last updated