Apple bekräftigt: Kernel-Erweiterungen haben keine Zukunft

Die Kernel Extensions von macOS, auch bekannt als Kext, sind bekanntlich ein Auslaufmodell. Bereits seit einiger Zeit müssen diese im Kernelspace laufenden Erweiterungen von Apple beglaubigt sein, um auf einem Mac zu laufen. Der kalifornische Konzern hat zudem mehrfach mitgeteilt, dass er sie als abgekündigt einstuft und ihre Unterstützung irgendwann komplett einstellen wird.


Schwachstellen in Kext können System kompromittieren
Dieser Zeitpunkt scheint nun schnell näher zu rücken. Apple hat nämlich jetzt den "Platform Security Guide" ( PDF-Datei) für sämtliche hauseigenen Betriebssysteme, also macOS 11, iOS/iPadOS 14, tvOS 14 und watchOS 7, aktualisiert. Darin geht der kalifornische Konzern unter anderem auch ausdrücklich auf die Kernel Extensions ein. Diese liefen im Kernelspace, so Apple, Schwachstellen in den Erweiterungen könnten daher das gesamte System kompromittieren. Die Extensions stellen also eine erhebliche Gefahr dar. Entwickler fordert Apple nachdrücklich auf, so bald wie möglich auf Systemerweiterungen umzusteigen, welche im Userspace laufen, und zwar "bevor der Kext-Support bei zukünftigen Macs mit Apple Silicon endgültig aus macOS entfernt wird."

Apple stellt alternative Schnittstellen bereit
Um den Umstieg auf Systemerweiterungen zu ermöglichen und zu erleichtern, hat Apple in den vergangenen Jahren einige Schnittstellen bereitgestellt, welche die Funktionen der Kernel Extensions überflüssig machen. Dazu gehören unter anderem Funktionen für Virenscanner, welche aus der früheren KAUTH-API in die Endpoint Security API gewandert sind. Firewall-Features stellen die Network Extensions bereit. Geräte- und Audiotreiber können statt IOKit das DriverKit und die CoreAudioPlugins nutzen.

Erheblicher Sicherheitsgewinn durch Systemerweiterungen
Der Umstieg von Kernel Extensions auf Systemerweiterungen stellt einen erheblichen Sicherheitsgewinn dar. Da letztere lediglich über die für ihre Ausführung erforderlichen Rechte verfügen, können sie in aller Regel ohne Weiteres keinen Schaden in den Tiefen des System anrichten. Das kommt sowohl der Sicherheit als auch der Stabilität von macOS zugute. Auf Mac mini M1, MacBook Pro M1 und MacBook Air M1 lassen sich Kernel Extensions standardmäßig bereits nicht mehr ausführen. Wer sie nutzen will, muss beim Starten des Rechners im One True Recovery Mode die Systemsicherheit herabsetzen und die Nutzung von Kernel Extensions ausdrücklich erlauben. Hierzu ist die Eingabe eines Administrator-Passworts erforderlich.

Weitere Ergänzungen und Aktualisierungen
Apple hat im Platform Security Guide zudem zahlreiche weitere Aktualisierungen und Ergänzungen vorgenommen. Zu den hinzugekommenen Themen gehören unter anderem Erläuterungen zum Bootprozess auf Macs mit Apple Silicon und Sicherheitsaspekte im Zusammenhang mit IPv6. Updates gibt es etwa in den Abschnitten über die Secure Enclave, FileVault, die System Integrity Protection (SIP) und die Empfehlungen zur Passwort-Sicherheit. Allerdings würden im Falle kompletter Abschaffung von Kernel Extensions diverse Schnittstellen fehlen, denn für einige Funktionen bietet Apple eben keine Alternativen im Userspace.

Kommentare

MacRS19.02.21 18:59
Allerdings würden im Falle kompletter Abschaffung von Kernel Extensions diverse Schnittstellen fehlen, denn für einige Funktionen bietet Apple eben keine Alternativen im Userspace.
Als da wären?
0
beyermann19.02.21 20:13
Hurra, Systemerweiterungen. Back to System 6 - 9. . Leider geht mit diesen Entscheidungen auch immer eine gewisse Hegemonie im Apple-Kosmos einher, die sich nur langsam wieder auflöst. Ist dann der Markt etwas breiter aufgestellt, fällt Cupertino sicher wieder etwas Neues ein.
0
jmh
jmh19.02.21 23:18
das also war des pudels kernel ...
0
Mecki
Mecki20.02.21 01:39
MacRS
z.B. im Bereich Netzwerk. Einen KEXT hängt direkt im IP Stack, d.h. sie kann jedes eingehende Netzwerkpaket sehen und auch nach belieben verwerfen, verändern und dann weiterleiten oder selber irgendwie nutzen. Auch kann sie ausgehend jedes erdenkliche Paket erzeugen und senden. Man kann auch direkt auf die Interfaces zugreifen, also z.B. direkt Ethernet Pakete senden. Man kann eigene virtuelle Interfaces im System erstellen (das brauchen VMs und VPNs die auf Layer2 Tunneln wollen, also unterhalb von IP). Es gibt netzwerktechnisch gesehen nichts, dass man damit nicht tun kann.

Die neuen APIs decken nur einen sehr kleinen Teil davon ab. So kann man keine Pakete mehr empfangen, die der Kernel z.B. selber konsumiert. Man kann auch nur noch Pakete direkt senden, die kein Protokoll nutzen, dass es schon im Kernel gibt. Hier muss man die normalen Netzwerkfunktionen nutzen und die erlauben einen nicht beliebige Pakete zu senden oder zu empfangen. Es gibt zwar eine Firewall API, aber die darf Pakete nicht verändern, nur verwerfen oder durchlassen. Es ist nicht möglich den Datenfluss von Paketen zu verändern, also z.B. ein eigenes QoS zu implementieren. Es gibt zwar eine VPN API, aber mit der lassen sich nicht alle bisherigen VPN Funktionen abdecken, z.B. kann man nicht anhand des Datenverkehrs entscheiden was über VPN geht (also z.B. HTTP TCP Port 80 geht über VPN, DNS UDP Port 53 nicht), weil man das nur Anhand der Adresse bestimmen kann. Man kann keine eigenen, virtuellen Netzwerkinterfaces erzeugen und deren Traffic direkt verarbeiten, siehe
+4
MaddinKI20.02.21 08:45
Gibt es eigentliche konkrete Fälle, bei denen Fehler in Kernel Extensions ausgenutzt wurden?
0
spheric
spheric20.02.21 23:27
MaddinKI
Gibt es eigentliche konkrete Fälle, bei denen Fehler in Kernel Extensions ausgenutzt wurden?
Anscheinend schon:

2020: https://www.thezdi.com/blog/2020/12/9/cve-2020-27897-apple-macos-kernel-oob-write-privilege-escalation-vulnerability

2002-2018 (eventuell sogar noch erheblich länger): https://www.heise.de/mac-and-i/meldung/IOHIDeous-Zero-Day-Exploit-fuer-macOS-veroeffentlicht-3929556.html

Hier sind noch diverse mit dabei, die "kernel extension" oder "KEXT" im Titel haben und die Architektur auszunutzen scheinen: https://www.exploitalert.com/search-results.html?search=Mac%20OS%20X%20<%2010.7.5,%2010.8.2,%2010.9.5%2010.10.2%20-%20rootpipe

Etc.
Früher war auch schon früher alles besser!
+2

Kommentieren

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