Apple lehnt MacOS-Kernel-Erweiterungen ab: Ein großer Gewinn für die Sicherheit
Auf der WWDC-Konferenz im vergangenen Jahr kündigte Apple Pläne an, die MacOS-„Kernel-Erweiterungen“ (KEXTs) zu verwerfen und durch einen neuen Mechanismus namens „Systemerweiterungen“ zu ersetzen. Der erste Schritt zu dieser Ankündigung wurde mit der Veröffentlichung von macOS Catalina (10.15.0) im September 2019 gemacht, als neben den Kernel-Erweiterungen auch Systemerweiterungen eingeführt wurden. Der letzte Schritt von Apples Plan wird in den kommenden Wochen mit der bevorstehenden Veröffentlichung von macOS Catalina 10.15.4 in Kraft treten.
Laut Apple wird ab macOS 10.15.4 die Verwendung von Kernel-Erweiterungen eine Benachrichtigung an den Benutzer auslösen, dass die Software eine veraltete API enthält, und den Benutzer auffordern, den Entwickler nach Alternativen zu fragen.
Sowohl Kernel-Erweiterungen als auch Systemerweiterungen dienen dem gleichen Zweck. Sie ermöglichen es Benutzern, Anwendungen zu installieren, die die nativen Fähigkeiten des MacOS-Betriebssystems erweitern. Anwendungen installieren Kernel-/Systemerweiterungen, die es ihnen ermöglichen, Operationen durchzuführen, für die das MacOS keine nativen Funktionen oder Merkmale hat.
Mac-Virenschutzsoftware, Firewalls, VPN-Clients, DNS-Proxys, USB-Treiber und andere nutzen alle Kernel-Erweiterungen. Der Unterschied zwischen diesen beiden neuen Erweiterungssystemen besteht darin, dass die älteren Kernel-Erweiterungen ihren Code auf der Kernel-Ebene des MacOS ausführen, während die neueren Systemerweiterungen in einem stärker kontrollierten Benutzerbereich laufen.
„Aus der Sicht von Apple ist dies ein großer Schritt zur Verbesserung der Sicherheit von MacOS“, sagte Patrick Wardle, leitender Sicherheitsforscher bei Jamf und ein bekannter MacOS-Sicherheitsexperte, diese Woche in einem Interview mit CPORT.
„Kernel-Erweiterungen von Drittanbietern stellen einen saftigen Angriffsvektor für Angreifer dar, die es auf MacOS abgesehen haben“, fügte er hinzu. „Besonders wenn Sie als Angreifer eine Kernel-Erweiterung ausnutzen oder Ihre eigene laden können (vorausgesetzt, sie ist signiert).
Und Angriffe mit KEXTs sind in der Vergangenheit schon vorgekommen [1, 2, 3]. „Für MacOS ist das Spiel wirklich vorbei“, sagte Wardle. „Viele viele Sicherheitsmechanismen sind im Kernel implementiert bzw. erzwungen.“ Wardle sagt, dass ein Angriff wie dieser nicht mit Systemerweiterungen funktionieren würde, da diese im Benutzermodus laufen.
„Da sie nicht im Kernel laufen, gibt Ihnen ein Exploit keinen Zugriff auf den Kernel-Modus mehr, wie es bei einem KEXT-Exploit der Fall war“, sagte Wardle. „Apple will also im Grunde jeden [aus dem Kernel] rauswerfen, hauptsächlich aus Sicherheitsgründen.
Wardle sagt jedoch, dass dieser Schritt auch eine Kehrseite hat. Der erste ist, dass Apple durch das Herauswerfen von Anwendungsentwicklern aus dem Kernel auch viel mehr Kontrolle über das MacOS erhält, ähnlich der Kontrolle, die sie über das iOS haben. Bis jetzt war MacOS ein Zufluchtsort für Entwickler und seine Benutzer. Wenn das MacOS keine spezifische Funktion hatte, konnten die Entwickler einfach eine Anwendung erstellen und eine Kernel-Erweiterung nutzen, um die benötigten Funktionen hinzuzufügen.
Der zweite Nachteil ist, dass sich viele Sicherheitswerkzeuge selbst stark auf die Vollzugriffs-Kernelerweiterungen verlassen haben, die dem Mac eines Benutzers zur Verfügung stehen, und um diese herum gebaut wurden. Man könnte argumentieren, dass Apples Entwicklung hin zu Systemerweiterungen die Kastration von Sicherheitsprodukten beenden könnte, die dadurch einen Teil ihrer Fähigkeit verlieren, Malware zu erkennen und zu stoppen.
Wardle, der Autor vieler kostenloser MacOS-Sicherheitswerkzeuge, sagt jedoch, dass Apple „einige großartige Frameworks für den Benutzermodus zur Verfügung gestellt hat, die Sicherheitswerkzeuge von Drittanbietern mit den Fähigkeiten ausstatten, die sie benötigen“, so dass es so aussieht, als hätte Apple den Zweig noch nicht unter seinen Füßen weggeschnitten.
Aber im Moment ist es unklar, ob Systemerweiterungen die gleiche Vielseitigkeit und Programmierfreiheit wie Kernelerweiterungen bieten würden. Dies bleibt abzuwarten — und ein Thema für einen weiteren Artikel — da wir mehr Zeit für die MacOS-Entwickler benötigen werden, um den Wechsel zu Systemerweiterungen langsam voranzutreiben.
Wardle weist jedoch darauf hin, dass der Umzug für die Sicherheit von MacOS insgesamt gut ist, unabhängig von anderen möglichen Gründen für Apples Umzug.