M1 durch CPU-Sicherheitslücke angreifbar – Gefahr allerdings sehr überschaubar
Prozessoren werden immer komplizierter – und durch diese Komplexität entstehen auch Sicherheitslücken. Anfang 2018 wurden zwei Sicherheitslücken in Intel- und AMD-CPUs bekannt, welche sich das spekulative Ausführen von Programmcode zunutze machten. Grob umschrieben führen Prozessoren Code aus – auch wenn noch gar nicht feststeht, ob dieser im weiteren Programmverlauf benötigt wird. Dies hat den Vorteil, dass so Rechenzeit gespart wird. Allerdings geschah diese spekulative Ausführung von Code unter Umgehung von sonst aktiven Sicherheitsvorkehrungen und durch geschickte Analyse war es möglich, Speicher zu lesen, auf welchen das aktuelle Programm eigentlich keinen Zugriff hatte.
Natürlich nehmen Sicherheitsforscher auch Apple-Chips genau unter die Lupe – und nun scheint eine Lücke in Apples A14- und M1-Chips aufgetaucht zu sein. Diese ist zwar nach ersten Erkenntnissen nicht so schwerwiegend wie die Spectre- und Meltdown-Sicherheitsprobleme – aber dennoch kann ein Angreifer möglicherweise in Kombinationen mit anderen Angriffsvektoren Sicherheitsbarrieren überlisten.
Data-Memory-Dependent Prefetcher liest auch geschützte AdressenMit dem Apple M1 und dem A14 hat Apple viel Energie aufgewendet, damit der Prozessor nicht auf Speicherinhalte warten muss. Hierfür hat Apple einen Data-Memory-Dependent Prefetcher (DMP) in die Firestorm-Performance-Cores integriert, nicht jedoch in die Effizienz-Kerne. Dieser Prefetcher liest bereits den Inhalt von Speicheradressen, bevor Programme diese überhaupt anfragen. So will Apple verhindern, dass der Prozessor auf den Arbeitsspeicher warten muss und wertvolle Zeit verliert.
Erkennt der Prozessor, dass der Inhalt vieler aufeinanderfolgender Speicherzeiger gelesen wird, tritt der DMP in Aktion und liest bereits den Inhalt der nächsten Adressen aus, so dass direkt auf diesen zugegriffen werden kann. Der Inhalt wird dann in der Cache vorgehalten, so dass bei einem möglichen Zugriff dieser direkt bereitsteht.
Speicheradressen auf Gültigkeit überprüfenHat der DMP eine Adresse bereits gelesen, steht diese direkt über den Cache bereit – und der Prozessor muss nicht warten. Da der DMP dies aber vorbei am normalerweise aktiven Speicherschutzmodell erledigt, kann ein Angreifer möglicherweise Informationen über die gelesene Adresse erhalten. Misst ein Angreifer nun die Zeit beim Zugriff, lässt sich hieraus ableiten, ob eine Adresse gültig ist oder nicht. Zwar ist es wohl nach aktuellem Kenntnisstand der Sicherheitsforscher nicht möglich, den Inhalt von zufälligen Speicheradresse zu ermitteln – wohl aber, ob die Speicheradresse eine valide Adresse ist. Dies klappt auch, wenn die Speicheradresse zu einem anderen Prozess gehört.
ASLR umgehenHierdurch könnte sich eine Technik überwinden lassen, welche Apple bereits seit einiger Zeit einsetzt: Adress Space Layout Randomisation (ASLR). Hier werden Programme und Programmierbibliotheken nicht an feststehende Speicheradressen geladen, sondern an Zufällige. Dadurch wird eine Vielzahl von bekannten Attacken so gut wie unmöglich, da der Angreifer sich nicht auf ein vorhersehbares Speicherschema verlassen kann. Doch durch die "
Augury" getaufte Attacke ist es Angreifern zumindest möglich, valide Speicheradressen von invaliden zu unterscheiden.
Aktuelle Implikationen sehr geringAuch die Entdecker der "Augury"-Attacke sagen aktuell, dass die Bedrohung durch die identifizierte Schwachstelle in der Praxis sehr gering ist – aber durch ein Software-Update lässt sich die Lücke nicht stopfen. Erst in Kombinationen mit weiteren Sicherheitsmängeln kann "Augury" ein Baustein sein, um eine komplette Attacke durchführen zu können.