
Mac-Hintergrund: Was passiert alles beim Start einer App?


Der Start eines Programms sieht für Anwender seit Einführung von Mac OS X ziemlich gleich aus: Beim Doppelklick auf eine App scheint für einen kurzen Moment das Icon auf den Anwender zuzufliegen. Nach einer je nach Komplexität und Rechenleistung unterschiedlich langen Pause, während der das Icon im Dock auf- und abhüpft, erscheinen die Fenster des Programms, etwa das zuletzt geöffnete Dokument oder ein Dateiauswahldialog. Die ersten Schritte dieses App-Starts wurden in den vergangenen Jahren zunehmend komplexer, um die Systemsicherheit zu erhöhen. In einem ausführlichen Bericht erläutert Howard Oakley, welche einzelnen Subsysteme er beim
Start einer Mac-App beobachten konnte.
Den ersten Schritt und viele fundamentale Aufgaben beim Start einer App übernehmen die LaunchServices. Seit macOS 10.15 (Catalina) lagern diese allerdings einige wichtige Funktionen an RunningBoard. In Oakleys Sicht ist dies eine Bereicherung, da dieses Subsystem relevante Informationen zusammenträgt und im Dictionary-Format ins Log schreibt. RunningBoard beobachtet eine App während deren gesamter Laufzeit und meldet alles Relevante im Unified Log.
Überprüfungen bei jedem App-StartBevor ein Programm aktiv werden darf, durchläuft es mehrere Sicherheitsüberprüfungen: Apple Mobile File Integrity (AMFI) validiert die Signatur und initiiert eine Überprüfung via XProtect. Am Schluss wird noch die „Herkunft“ (provenance) der App evaluiert – ein relativ neuer, laut Oakley auch recht obskurer (da undokumentierter) Vorgang. Wenn diese gesamte, vom Dienst syspolicyd orchestrierte Prozedur keine Auffälligkeiten meldet, sind als Nächstes die App-spezifischen Einstellungen zu Datenschutz und Sicherheit an der Reihe. macOS-intern heißen diese Transparency, Consent & Control (TCC). Sie steuern, auf welche Datei- und Systemressourcen das Programm zugreifen darf.
In nicht mal einer Viertelsekunde erledigtBei seiner Analyse einer einfachen App vollzog sich die gesamte erste Überprüfung einer App binnen 0,204 Sekunden. Diese schnelle Überprüfung setzt allerdings einen vorherigen
ausführlichen Scan voraus, welcher jedes Programm beim ersten Start auf dem jeweiligen Mac durchlaufen muss. Im Anschluss werden programmspezifische Voreinstellungen geladen und (soweit vorhanden und unterstützt) Verknüpfungen zu Apple-Intelligence-Funktionen hergestellt.
Dienste und Subsysteme beim Starten einer AppDienst | Subsystem | Aufgabe |
LaunchServices | com.apple.launchservices | Kernfunktionen für App-Start |
RunningBoard | com.apple.runningboard | Beobachtung, Protokollierung |
AMFI | com.apple.MobileFileIntegrity | Sicherheitsüberprüfung |
syspolicyd | com.apple.syspolicy | Sicherheitsüberprüfung |
XProtect | com.apple.xprotect | Signatur |
TCC | com.apple.TCC | Zugriffsrechte |
Provenance | com.apple.provenance | (unklar) |
Eigene BeobachtungenUm die Aktivitäten der einzelnen Prozesse während eines App-Starts zu beobachten, können Nutzer das Programm „Konsole“ öffnen. Nach einem Klick auf „Start“ füllt sich das Fenster mit Protokollmeldungen (Logs). Nun öffnet man die zu untersuchende App, um nach erfolgreichem Start in der Konsole auf „Anhalten“ zu klicken. Durch Eingabe des passenden Subsystem-Namens (siehe Tabelle) grenzt man die Liste der Log-Einträge auf den Bereich ein, den man gerade analysieren will.
In der Konsole kann man die Arbeit der Prozesse beobachten.