Aufgedeckte Schwachstelle im M1-Chip: M1RACLES-Lücke umgeht Sicherheitsrichtlinien
Vielen sind vielleicht noch die Anfang 2018 bekanntgewordenen Schwachstellen Spectre und Meltdown in Intel-x86-Chips im Gedächtnis: Angreifer konnten sich Zugriff auf normalerweise geschützte Daten im Speicher verschaffen. Heutige Prozessoren führen bereits weitere Befehle aus, wenn noch gar nicht klar ist, welche Richtung einer Wenn-Dann-Bedingung überhaupt verfolgt wird – dies nennt sich "Spekulative Ausführung". Hat der Prozessor richtig getippt und es wurde der korrekte Weg der Wenn-Dann-Bedingung ausgeführt, sparte die CPU wertvolle Taktzyklen – ansonsten verwarf der Chip einfach die errechneten Informationen. Doch in der Cache landeten trotzdem einige Daten, welche sich im Nachhinein auslesen lassen – und genau hier liegt das Problem: Während der "Spekulativen Ausführung" sind einige Sicherheitsmechanismen der CPU nicht aktiv – und somit kann sich ein Programm Zugriff auf Daten verschaffen, welche normalerweise nicht ausgelesen werden dürfen.
Diese Lücken führten einem breiten Publikum vor Augen, dass auch die Hardware Sicherheitsfehler aufweisen kann, welche sich nicht oder nur mit Nachteilen durch Software beheben lassen. Nun hat Hector Martin, Entwickler bei Asahi Linux und verantwortlich für die Portierung des Betriebssystems auf M1-Macs, einen Mangel in Apples M1-Chip festgestellt, mit welchem es möglich ist, die Sicherheitsrichtlinien des Betriebssystems teilweise außer Kraft zu setzen.
Datenaustausch zwischen ProzessenNormalerweise kontrolliert das Betriebssystem streng, welche Prozesse oder Apps Daten austauschen. Doch
Martin fand nun einen Weg, wie zwei Prozesse Daten mit hoher Geschwindigkeit austauschen können, ohne dass macOS dies verhindern kann. Durch ein ARM-Systemregister mit dem Namen "s3_5_c15_c10_1" ist es möglich, zwei Bits zu lesen und zu schreiben – und zwar ohne jegliche Privilegien aus dem Exception-Level 0 (EL0). Diese Daten bleiben selbst nach einem Kontext-Wechsel in einen anderen Prozess erhalten, so dass ein anderer Prozess diese auslesen kann – völlig vorbei an den Sicherheitsmechanismen von macOS.
In einem kurzen Video (mit fürchterlicher Musik) demonstriert Martin, wie zwei Prozesse mit einer Geschwindigkeit von über 1 MB/s Daten austauschen, ohne dass macOS dies durch ein Software-Update verhindern könnte:
Wie hoch ist das Risiko?Der Fehler ist nicht mit anderen, schwerwiegenden Sicherheitslücken wie zum Beispiel Spectre oder Meltdown vergleichbar. Es ist nicht möglich, damit Kontrolle über den Mac zu gelangen, Passwörter auszuspionieren oder an andere Daten des Nutzers zu gelangen. Dennoch birgt die Lücke ein gewisses Risiko: Da zwei angepasste Prozesse Daten ohne "Aufsicht" austauschen können, ist es nun einfacher möglich, unter der Zuhilfenahme weiterer Schwachstellen im Betriebssystem einen kompletten Angriffsvektor zu finden.
Ohne Zuhilfenahme weiterer Schwachstellen ist die gefundene Lücke für Hacker wertlos – und selbst dann böten sich normalerweise einfachere Methoden, Daten zwischen Prozessen auszutauschen als die gefundene M1RACLES-Lücke, wie Martin analysiert. Trotzdem verletzt die Schwachstelle die Sicherheitsrichtlinien des Betriebssystems, da macOS nun nicht sicherstellen kann, dass keine Daten zwischen nicht berechtigten Prozessen ausgetauscht werden.
Was kann Apple tun?Apple wird diesen Fehler nicht durch ein Update von macOS beheben können, da der Fehler in der Hardware selbst begründet ist. Martin meldete den Bug an Apple, so dass zukünftige M-Prozessoren diesen Fehler nicht mehr mitbringen dürften. Da die praktischen Anwendungsfälle, welche durch M1RACLES entstehen, aber sehr wenige bis keine sind, wird Apple dieser Sicherheitslücke nur geringe Priorität beimessen.