macOS MDM

Wesprzyj HackTricks

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ą:

  • Centralna 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 pierwszej aktywacji.

  • Przede wszystkim korzystne dla zupełnie nowych urządzeń, ale także stosowane do urządzeń poddawanych ponownej konfiguracji.

  • 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 bezpieczeństwa. Jeśli odpowiednie środki ochronne nie są właściwie egzekwowane podczas rejestracji 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 w celu zweryfikowania ich pochodzenia, zapewnienia integralności i ochrony zawartości." 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ązanym 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 statusu rejestracji i statusu 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 posiadają 12-znakowy alfanumeryczny numer seryjny, 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.

macOS Serial Number

Kroki rejestracji i zarządzania

  1. Tworzenie rekordu urządzenia (Sprzedawca, Apple): Tworzony jest rekord dla nowego urządzenia

  2. Przypisanie rekordu urządzenia (Klient): Urządzenie jest przypisywane do serwera MDM

  3. Synchronizacja rekordu urządzenia (Dostawca MDM): MDM synchronizuje rekordy urządzenia i przesyła profile DEP do Apple

  4. Sprawdzenie DEP (Urządzenie): Urządzenie otrzymuje swój profil DEP

  5. Pobranie profilu (Urządzenie)

  6. Instalacja profilu (Urządzenie) a. w tym ładunki MDM, SCEP i root CA

  7. Wydanie polecenia 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 pośrednictwem XPC. "Asystent konfiguracji" (gdy urządzenie jest uruchamiane po raz pierwszy) lub polecenie profiles 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 wykonywanych przez MCTeslaConfigurationFetcher. Ten proces wykorzystuje szyfrowanie o nazwie Absinthe

  1. Pobierz certyfikat

  2. Zainicjuj stan z certyfikatu (NACInit)

  3. Wykorzystuje różne dane specyficzne dla urządzenia (np. Numer seryjny za pośrednictwem IOKit)

  4. Pobierz klucz sesji

  5. Ustanów sesję (NACKeyEstablishment)

  6. Wyślij żądanie

  7. POST do https://iprofiles.apple.com/macProfile wysyłając dane { "action": "RequestProfileConfiguration", "sn": "" }

  8. Łańcuch JSON jest szyfrowany za pomocą Absinthe (NACSign)

  9. Wszystkie żądania są przesyłane 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 pośrednictwem 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 typ ładunku jest powiązany z wtyczką

  • Może być XPC (w ramach) 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 MDM

  • com.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 MDM Check-In (CheckInURL)

  • URL odpytywania poleceń MDM (ServerURL) + temat APNs do jego wywołania

  • Aby 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 konkretnych 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 sprawdzania MDM, dostawca może wysyłać powiadomienia push za pomocą APNs

  • Po otrzymaniu, obsługiwane przez mdmclient

  • Aby odpytywać o polecenia MDM, żądanie jest wysyłane do ServerURL

  • Wykorzystuje wcześniej zainstalowany ładunek MDM:

  • ServerURLPinningCertificateUUIDs do przypięcia żądania

  • IdentityCertificateUUID do certyfikatu klienta TLS

Ataki

Rejestrowanie 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 inne. Dlatego może to być niebezpieczne wejście dla atakujących, jeśli proces rejestracji nie jest odpowiednio chroniony:

Enrolling Devices in Other Organisations
Wsparcie dla HackTricks

Last updated