20 Jahre alter Bug macht Kernel von iOS und macOS angreifbar
Betriebssystemhersteller machen es Hackern immer schwerer, Betriebssysteme und Geräte anzugreifen. Strategien wie beispielsweise Address Space Randomization, mit welcher wichtige Speicherblöcke an zufälligen und nicht vorhersehbaren Adressen abgelegt werden, erschweren Attacken deutlich. Doch manchmal gibt das System selbst preis, an welchen Orten im Speicher welche Informationen stehen.
Wie nun bekannt wurde lässt sich zumindest die Address Space Randomization auf iOS und macOS aushebeln. Wenn ein potenzieller Angreifer eine Adresse im Kernel kennt, kann er zwar noch nicht direkt darauf zugreifen – aber ein wichtiger Sicherheitsaspekt des Systems hat seinen Dienst versagt.
Seit 20 Jahren im Apple XNU-KernelNun flog ein derartiger Fehler im XNU-Kernel auf, welchen Apple auf allen Betriebssystemplattformen einsetzt. Der Entdecker taufte den Fehler auf den Namen "
cuck00". Das Framework IOKit nutzt zur Kommunikation mit dem Kernel Mach-Ports – und sendet bei jeder Anfrage auch einen Pointer auf den Mach-Port zurück. Bei diesem Mach-Port handelt es sich aber nicht um irgendeine Zahl, sondern um einen direkten Pointer in den Adressraum des Kernels – welcher eigentlich einem normalen Programm aufgrund der Address Space Randomization unbekannt sein sollte.
Aufgrund solcher Fehler, welche auch in anderen Betriebssystemen entdeckt und behoben wurden, ist es trotz Address Space Randomization möglich, kritische Speicherbereiche zu lesen oder gar zu überschreiben. Für sich alleine gesehen ist dieser Fehler erst einmal kein Sicherheitsrisiko, da andere Sicherheitsmechanismen das Lesen und Schreiben in den Speicherbereich des Kernels verhindern – doch in Kombination mit anderen Lücken ergeben sich hier vielfältige Angriffsszenarien, welche sonst von der Address Space Randomization verhindert würden.
Schaut man sich Apples Open-Source-Archiv an, findet man den Bug bereits in der
allerersten Version des XNU-Kernels, welche im Jahr 2000 veröffentlicht wurde.
Apple behebt FehlerApple hat letzte Woche neue Vorabversionen von iOS und macOS herausgegeben – und den Fehler mit iOS 13.3.1 Beta 2 und macOS 10.15.3 Beta 2 behoben. Apple gibt nun nicht mehr die vollständige Speicheradresse des Mach-Ports an eine Applikation weiter, sondern verkürzt diese um 8 Bit – daher ist die vollständige Adresse nicht mehr bekannt.