MIT-Forscher entdecken neue Schwachstelle in Apple M1-CPUs, die nicht gepatcht werden kann

  • Ein neuartiger Hardware-Angriff mit dem Namen PACMAN wurde gegen Apples M1-Prozessor-Chipsätze demonstriert, der es einem böswilligen Akteur ermöglichen könnte, beliebigen Code auf macOS-Systemen auszuführen.

    Der Angriff nutzt „spekulative Ausführungsangriffe, um einen wichtigen Speicherschutzmechanismus, die ARM Pointer Authentication, zu umgehen, eine Sicherheitsfunktion, die zur Durchsetzung der Zeigerintegrität verwendet wird“, so die MIT-Forscher Joseph Ravichandran, Weon Taek Na, Jay Lang und Mengjia Yan in einem neuen Papier.

    Was noch besorgniserregender ist, ist die Tatsache, dass „die von PACMAN verwendeten Hardware-Mechanismen nicht mit Software-Funktionen gepatcht werden können, aber Fehler in der Speicherkorruption können gepatcht werden“, fügten die Forscher hinzu.

    Die Schwachstelle liegt in den Pointer Authentication Codes (PACs), einer in der arm64e-Architektur eingeführten Verteidigungslinie, die unerwartete Änderungen an Zeigern – Objekten, die eine Speicheradresse speichern – im Speicher erkennen und absichern soll.

    [Blocked Image: https://thehackernews.com/new-images/img/b/R29vZ2xl/AVvXsEjaBbYTALewJvxPx8cnzv0FMFvygJ4ym5US2q-Uxw_N9KSMl8z0Z7pPOeXOEHgnJ9u00oLe7QZR55XMcwv60hQ_dIuT9MTSCTeu-C3cUe-RgpBF3_hTmoXh7ESgmtUaVloM9dS5jXLtkOLVeYSBrepZsVYuf3lxIAlCR4TsZhB-hFm_HGHwjkDsk9teXQ/s1600/Jira-ads.png]

    PACs zielen darauf ab, ein häufiges Problem in der Softwaresicherheit zu lösen, wie z. B. Schwachstellen in der Speicherkorruption, die oft durch das Überschreiben von Kontrolldaten im Speicher (d. h. Zeigern) ausgenutzt werden, um die Codeausführung an eine beliebige, vom Angreifer kontrollierte Stelle umzuleiten.

    Während Strategien wie die Adressraum-Layout-Randomisierung (ASLR) entwickelt wurden, um die Durchführung von Pufferüberlauf-Angriffen zu erschweren, besteht das Ziel von PACs darin, die „Gültigkeit von Zeigern mit minimalen Auswirkungen auf Größe und Leistung“ festzustellen und einen Angreifer effektiv daran zu hindern, gültige Zeiger zur Verwendung in einem Exploit zu erstellen.

    Dies wird erreicht, indem ein Zeiger mit einem kryptografischen Hash – Pointer Authentication Code (PAC) genannt – geschützt wird, um seine Integrität sicherzustellen. Apple erklärt PACs wie folgt.

    Die Zeigerauthentifizierung funktioniert, indem ein spezieller CPU-Befehl zur Verfügung gestellt wird, der eine kryptografische Signatur – oder PAC – zu unbenutzten höherwertigen Bits eines Zeigers hinzufügt, bevor der Zeiger gespeichert wird. Ein weiterer Befehl entfernt und authentifiziert die Signatur nach dem Zurücklesen des Zeigers aus dem Speicher. Jede Änderung des gespeicherten Wertes zwischen dem Schreiben und dem Lesen macht die Signatur ungültig. Die CPU interpretiert das Scheitern der Authentifizierung als Speicherbeschädigung und setzt ein höherwertiges Bit im Zeiger, wodurch der Zeiger ungültig wird und die Anwendung abstürzt.

    [Blocked Image: https://thehackernews.com/new-images/img/b/R29vZ2xl/AVvXsEie2viv2KpG_rzDBiSKn57aHQPH8VgSVITFoanF1gBdHzP3Duw0fl_2pOtyN1xFF3ebHimgepUetM3Q535KBpzbwSqGO4tbiBhahyyzKRaXpooeEAiAbje3y5d1iyzxfAZh3Qbb3RT0XMinDu9rvVd5UhW5CDnfZ5OVlKuweBSBaS1IkzYVeT8C_Gsd/s728-e1000/apple-pacman.jpg]

    Aber PACMAN „beseitigt das Haupthindernis für die Durchführung von Kontrollfluss-Hijacking-Angriffen auf einer Plattform, die durch Pointer-Authentifizierung geschützt ist.“ Es kombiniert Speicherkorruption und spekulative Ausführung, um das Sicherheitsmerkmal zu umgehen, indem es „PAC-Verifizierungsergebnisse über mikroarchitektonische Seitenkanäle durchsickern lässt, ohne Abstürze zu verursachen.“

    Die Angriffsmethode macht es möglich, zwischen einem korrekten PAC und einem falschen Hash zu unterscheiden, so dass ein bösartiger Akteur „den korrekten PAC-Wert erzwingen kann, während er Abstürze unterdrückt und einen Angriff auf ein PA-aktiviertes Opferprogramm oder -betriebssystem konstruiert, der den Kontrollfluss entführt.

    [Blocked Image: https://thehackernews.com/new-images/img/b/R29vZ2xl/AVvXsEj6zHdXd3qpCksF0nkMkrjsOzaw-cxZGPHWoTEp9y7VPIeyPBFGsmIyIX8NTkqI1IDqnIXYnsZuIh4rc9f8TNUn7ndAZqtXc-t58X2oueTaL4Ijb4hgH-b183QvQ0ienXIipuOsqeLP5b8I2prKmp0RWvdZQgnKehVRKbqRQpin1JgfwlZeE_IB4EmesQ/s1600/crowdsec-728.jpg]

    Die Absturzverhinderung ihrerseits ist erfolgreich, weil jeder PAC-Wert spekulativ erraten wird, indem ein zeitbasierter Seitenkanal über den Translation-Look-Aside-Buffer (TLB) mit einem Prime+Probe-Angriff ausgenutzt wird.

    Schwachstellen in der spekulativen Ausführung, wie sie bei Spectre und Meltdown beobachtet wurden, nutzen die Out-of-Order-Ausführung, eine Technik, die in modernen Mikroprozessoren zu einer Leistungssteigerung führt, indem sie den wahrscheinlichsten Pfad des Programmablaufs vorhersagt.

    Es sei jedoch darauf hingewiesen, dass das Bedrohungsmodell davon ausgeht, dass in einem Opferprogramm (Kernel) bereits eine ausnutzbare Schwachstelle für Speicherkorruption vorhanden ist, die es dem unprivilegierten Angreifer (einer bösartigen Anwendung) ermöglicht, bösartigen Code in bestimmte Speicherbereiche des Opferprozesses zu injizieren.

    „Dieser Angriff hat wichtige Auswirkungen für Entwickler, die zukünftige Prozessoren mit Zeigerauthentifizierung implementieren wollen, und hat weitreichende Auswirkungen auf die Sicherheit zukünftiger Kontrollflussintegritätsprimitive“, so die Forscher.

    Fanden Sie diesen Artikel interessant? Folgen Sie THN auf Facebook, Twitter und LinkedIn, um weitere exklusive Inhalte zu lesen, die wir veröffentlichen.

    Einige Teile dieses Artikels stammen aus:
    thehackernews.com