Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

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-Start
Bevor 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 erledigt
Bei 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 App
Dienst 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 Beobachtungen
Um 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.

Kommentare

ssb
ssb26.03.25 15:34
Naja, das sind ja Dinge die passieren, nachdem oder bevor der Kernel den Task erzeugt hat (üblicherweise per Fork vom Parent-Prozess also Terminal oder LaunchServices) und bevor dyld den Header und die Loader Commands der Binärdatei einliest, abarbeitet und dabei auch die signierten Seiten überprüft. Da passieren auch noch viele Dinge, die Sicherheitsrelevant sind, oder wenigstens sehr spannend. Da ist es hilfreich, den Source von dyld zu studieren - womit ich mich über eine lange Zeit hinweg beschäftigt habe, um zwischen Laden der Datei und der Ausführung (legitime) Eingriffe ausführen zu können.
Vermutlich hat sich HO (der "allseits bekannte Entwickler") bei weitem nicht so intensiv damit beschäftigt wie SSB (der "überwiegend unbekannte Entwickler")
+6
tk69
tk6926.03.25 18:23
Gäbe es da dolle Unterschiede zu anderen UNIX-Varianten oder Linux?
0
Nebula
Nebula26.03.25 19:59
Ja, all die genannten Prozesse wie LaunchServices gibt es nicht bei anderen UNIX-Systemen. Es gibt höchstens vergleichbare Ansätze.
»Wir waren schon immer schamlos darin, großartige Ideen zu stehlen.« – Steve Jobs
0

Kommentieren

Sie müssen sich einloggen, um die News kommentieren zu können.