macOS Sonoma: Sieben Prüfungen, bevor eine App starten darf
Je größer der Mac-Marktanteil, desto höher ist die Gefahr, dass Apples Betriebssystem Ziel von organisierten Malware-Angriffen wird. Bereits seit mehreren Jahren baut Apple deshalb die Sicherheitsroutinen aus, die macOS gegen Viren, Würmer und Trojaner absichert. Installiert man Software auf einem Mac, muss sie zunächst eine ganze Phalanx an Sicherheitsroutinen durchlaufen, bevor sie erstmals startet. Howard Oakley hat den Startvorgang einer App untersucht und beschreibt in einem
Blog-Artikel die Prozedur: Zunächst markiert der Dateimanager, Browser oder Paketmanager eine Software präventiv als "Quarantäne". Diese Information wird in den "Erweiterten Attributen" (xattr) des App-Bundles gespeichert. Damit ist die Software für eine genauere Inspektion vorgemerkt.
Doch bevor diese Inspektion überhaupt beginnt, greift noch ein zweiter Sicherheitsmechanismus: macOS Sonoma überprüft, ob sich die neue App noch nicht von dem Ort entfernt hat, an den sie heruntergeladen wurde. In diesem Fall macht das Apple nämlich selbst und verschiebt das zu prüfende Programm in einen randomisierten verschachtelten Ordner unter "/private/var/folders/x4/". Von dort aus testet das Betriebssystem dann die Software auf Sicherheit und Authentizität.
Überprüfung benötigt NetzzugangIm ersten Schritt wird die Integrität des Programms per Gatekeeper getestet, erklärt Oakley. Das übernimmt der Prozess "Syspolicy". Beim Start einer komplett unbekannten Software überprüft zunächst das regelmäßig aktualisierte XProtect den Code auf bekannte Malware-Komponenten und eventuelles Nachladen dynamischer Komponenten (dylib). Anschließend berechnet macOS eine Prüfsumme (genauer: einen Hash Tree aus einzelnen
Code Directory Hashes). Bei notarisierten Programmen wird der Prüfwert mit dem der Apple vorgelegten Version verglichen. Dafür nimmt Syspolicy eine Verbindung zu CloudKit auf. Stimmen die beiden Hash-Trees überein, erscheint die bekannte Warnung, die Anwender zu sehen bekommen:
Ein Teil der Überprüfung ist, dass Anwender ihr Okay geben.
Fastlane-Zugang bei weiteren StartsSobald der Anwender das aktive Ausführen der App erlaubt, übergibt der Syspolicy-Prozess den ersten Lauf der App via RunningBoard frei. Der erste erfolgreiche Programmstart räumt der App einen privilegierten Status ein, beobachtete Howard Oakley: Das Quarantine-Bit wird entfernt, macOS fügt die Software der LaunchServices-Datenbank hinzu und speichert den CDHash-Tree lokal. Außerdem hängt macOS dem App-Bundle noch ein erweitertes Attribut des Typs "com.apple.provenance" an. Beim nächsten Start vergleicht Syspolicy die App-Integrität lediglich mit dem lokal gespeicherten Wert, und die App ist gewöhnlich binnen einer Zehntelsekunde startbereit. Eine Überprüfung wird jedoch jedes Mal durchgeführt: Syspolicy überprüft bei jedem Start, ob sich die Software noch Gatekeeper-konform verhält.
XProtect kann noch mehrDer verpflichtende Scan nach auffälligen Code-Bestandteilen beim ersten Ausführen einer Software ist nur eine Aufgabe, die XProtect übernimmt. Die Routine scannt zudem regelmäßig die Inhalte des Startlaufwerks (Remediator) und beobachtet den laufenden Mac ständig, ob er auffällige Verhaltensweisen an den Tag legt, die auf bekannte Schadsoftware hinweisen (Behaviour). Dies führt Oakley in einem zweiten Beitrag mit dem Titel "
How does XProtect?" aus.