macOS gilt als ein äußerst schnelles und benutzerfreundliches Betriebssystem, das für seine reibungslose Performance und stabile Anwendungsausführung bekannt ist. Dennoch erleben manche Nutzer hin und wieder, dass einige Apps auf ihrem Mac ungewöhnlich langsam starten – manchmal dauert der Öffnungsvorgang nicht nur mehrere Sekunden, sondern mitunter sogar mehrere Minuten. Dieses Phänomen wirft die Frage auf, was tatsächlich hinter diesen Verzögerungen steckt und warum es gerade bei vermeintlich gut optimierten Anwendungen immer wieder zu erheblichen Startverzögerungen kommt. Im Kern sind diese ungewöhnlich langen Ladezeiten häufig auf Sicherheitsmechanismen zurückzuführen, die Apple in die Systemarchitektur von macOS integriert hat. Diese Schutzmaßnahmen dienen dazu, die Integrität und Sicherheit der Anwendungen zu gewährleisten, gehören allerdings auch zu den Hauptursachen, wenn es um Verzögerungen beim Starten von Apps geht.
Insbesondere Systemelemente wie „syspolicyd“ – der Sicherheitsdienst, der für Malware-Scans und Gatekeeper-Prüfungen verantwortlich ist – spielen hier eine zentrale Rolle. Ein Blick auf die technischen Abläufe zeigt, dass beim Starten einer App in macOS diverse Sicherheitsprüfungen durchlaufen werden. Neben der Kontrolle der Code-Signaturen sowie der Überprüfung der Quelle und Unversehrtheit der Software, wird die App auch auf Schadsoftwarehinweise untersucht. Das Betriebssystem prüft dabei nicht nur die Hauptanwendung, sondern auch deren verlinkte Bibliotheken und Frameworks, die häufig in Form eigener Ordner innerhalb der App gebündelt sind. Eine der zeitintensiven Maßnahmen ist hierbei die sogenannte Vertrauensevaluierung („SecTrustEvaluateIfNecessary“).
Anhand verschiedener Logeinträge lässt sich erkennen, dass gerade die Prüfung von Frameworks und eingebetteten Code-Bestandteilen einige Sekunden in Anspruch nehmen kann – manchmal sogar bis zu zehn Sekunden pro geprüften Element. Ursache hierfür ist unter anderem die Berechnung von SHA-256-Hashes, die zur Identifizierung und Sicherstellung der Unversehrtheit von Schutzmechanismen innerhalb des Codes erforderlich sind. Interessanterweise gab es in der Vergangenheit Spekulationen über einen Cache, in dem macOS die Resultate dieser Prüfungen speichert. Wenn dieser Cache gelöscht oder nicht mehr verfügbar ist, müssen die Prüfungen erneut durchgeführt werden, was die Startverzögerungen erklärt. Allerdings gibt es bislang keine eindeutigen Beweise für das Vorhandensein dieses Caches, und eine andere Theorie besagt, dass tatsächlich keine großen Hash-Caches existieren, sondern vielmehr die Malware-Scans die belastenden Faktoren sind.
Die Malware-Scans selbst werden von syspolicyd durchgeführt und haben sich in den letzten Jahren durch die zunehmende Anzahl und Komplexität der Yara-Regeln erheblich verlangsamt. Yara-Regeln dienen dazu, schädlichen Code anhand spezifischer Signaturen zu erkennen. Die Regelsets sind von wenigen hundert Kilobyte vor einigen Jahren auf aktuell fast ein Megabyte angewachsen, was die Scanzeiten signifikant verlängert hat. Bei jeder nicht gecachten Prüfung müssen diese umfangreichen Regeln angewendet werden, um sicherzustellen, dass sich keine bekannte Schadsoftware in der App oder deren Bestandteilen befindet. Die Tatsache, dass sowohl Gatekeeper-Evaluierungen als auch Malware-Scans immer noch aktiv ausgeführt werden, selbst wenn eine App bereits validiert und nicht mehr „quarantänebehaftet“ ist, führt zu wiederholten Sicherheitsprüfungen insbesondere bei selten benutzten oder verschobenen Apps.
MacOS speichert hierbei sogenannte Vertrauens- und Sicherheitsinformationen über Anwendungen über Launch Services. Fehlt diese Information oder kann sie nicht ausgelesen werden, wird die App erneut eingehend überprüft. Darüber hinaus sind auch weitere Mechanismen wie die System Integrity Protection (SIP) von Bedeutung. SIP ist ein essenzieller Sicherheitsmechanismus, der Systemdateien und wichtige Systemprozesse vor Modifikationen schützt. Interessanterweise ist bekannt, dass das Deaktivieren von SIP auf dem Mac die Startzeiten bestimmter Apps deutlich beschleunigen kann, da damit auch einige der restriktiven Sicherheitschecks wie die syspolicyd-Scans wegfallen.
Dies ist jedoch mit einem erhöhten Sicherheitsrisiko verbunden und wird daher von Apple nicht empfohlen. Der Prozess syspolicyd arbeitet eng mit einer Kernel-Erweiterung namens AppleSystemPolicy zusammen, die verschiedene Up-Calls während des App-Starts auslösen kann, etwa Gatekeeper-Evaluierungen oder speziellere Malware-Scans. Letztere, auch „changetime scans“ genannt, sind tendenziell langsamer und werden bei Bedarf ausgeführt, wenn beispielsweise keine gültigen Caches vorhanden sind oder Änderungen im App-Paket vermutet werden. Für Entwickler und Nutzer ist es wichtig zu wissen, dass die zunehmende Komplexität der Sicherheitsprüfungen ein Kompromiss zwischen Performance und Schutz darstellt. Obwohl die Zeit, die für das Scannen benötigt wird, spürbar ist, bietet sie erhöhten Schutz vor Schadsoftware und potenziellen Angriffen.
Da die Anzahl der Yara-Regeln ständig wächst und die Prüfalgorithmen immer tiefgehender werden, ist damit zu rechnen, dass sich die App-Startzeiten in bestimmten Situationen weiterhin verlängern können. Mark Rowe, ein Sicherheitsforscher, weist darauf hin, dass Apple zwar in der Theorie Drittentwickler verpflichtet, ihre Software vor der Veröffentlichung zu notarizieren – ein Nachweis darüber, dass die Software frei von Malware ist – jedoch scheinen diese Prüfungen nach dem Start nicht vollständig auf dieser Notarisation zu basieren. Das bedeutet, dass selbst geprüfte und als sicher eingestufte Apps immer wieder neu durch syspolicyd überprüft werden. Das wirkt sich negativ auf die wahrgenommene Startgeschwindigkeit aus. Ein weiteres interessantes Phänomen betrifft die Inkonsistenzen bei wiederkehrenden Malware-Scans – manche Anwendungen wie die reguläre Google Chrome Version zeigen häufig langsame Starts wegen extremer Sicherheitsprüfungen, während beispielsweise die Beta-Version von Chrome trotz ähnlicher Größe und Komplexität bemerkenswert schnell startet.
Die Gründe für diese Unterschiede sind noch nicht vollständig geklärt, könnten aber mit unterschiedlichen Signatur- oder Caching-Strategien zu tun haben. Nutzer, die von diesen Verzögerungen betroffen sind, könnten in Erwägung ziehen, gelegentlich mehr genutzte Apps regelmäßig zu öffnen, damit ihre Prüfresultate im Cache gehalten werden und sich die Startzeiten verbessern. Allerdings ist diese Strategie kein vollumfänglicher Lösungsansatz, und für selten genutzte Anwendungen bleibt die Wartezeit meist bestehen. Um die Ursachen dieser Verzögerungen besser nachvollziehen zu können, bietet macOS zusätzliche Logging-Optionen für Systeme wie syspolicyd an. Durch das Aktivieren des erweiterten Protokollierungsmodus können sowohl Entwickler als auch technisch interessierte Anwender Einsicht in die einzelnen Prüfungsschritte gewinnen und so besser verstehen, welche Scans gerade durchgeführt werden und wie lange diese dauern.
Abschließend lässt sich festhalten, dass die manchmal extrem langen Ladezeiten bei macOS-Apps nicht einfach auf schlechte Programmierung oder Hardware zurückzuführen sind. Vielmehr sind mehrere Sicherheitsebenen verantwortlich, die bewusst implementiert wurden, um die Integrität des Systems zu gewährleisten und Anwender vor Malware zu schützen. Dennoch besteht für Apple die Herausforderung darin, ein Gleichgewicht zwischen höchster Sicherheit und benutzerfreundlicher Performance zu finden. Ob hier in zukünftigen macOS-Versionen effizientere Caching-Methoden oder optimierte Prüfmechanismen zum Einsatz kommen, bleibt abzuwarten. Bis dahin können Mac-Nutzer nur begrenzt Einfluss auf diese Verzögerungen nehmen, ohne gleichzeitig Abstriche bei der Systemsicherheit machen zu müssen.
Für Entwickler hingegen bietet ein tieferes Verständnis der zugrundeliegenden Prüfprozesse wichtige Hinweise, um Anwendungen so zu gestalten, dass diese möglichst schnell starten, ohne Sicherheitsaspekte zu vernachlässigen.