Sicherheitslücke im Apple M1 Chip: Pacman-Attacke umgeht Schutzschicht

Angriffe auf den M1-Prozessor sind durch ein Zusammenspiel von Hard- und Software möglich. Apple sieht allerdings keine unmittelbare Gefahr.

In Pocket speichern vorlesen Druckansicht 77 Kommentare lesen
Apple M1

(Bild: Apple)

Lesezeit: 3 Min.
Inhaltsverzeichnis

Forscher haben eine Sicherheitslücke im M1-Prozessor von Apple gefunden, mit der sich eine Schutzvorkehrung gegen Angriffe von außen umgehen lässt. Die von den Entdeckern Pacman getaufte Attacke setzt allerdings Fehler in der Software voraus, damit sie ausgenutzt werden kann.

Pacman betrifft grundsätzlich alle ARM-Prozessoren mit der Security-Funktion Pointer Authentication Codes (PAC). Apples M1 ist die am weitesten verbreitete CPU mit dieser Funktion, Qualcomm führt sie mit dem Notebook-Prozessor Snapdragon 8cx Gen 3 ein. Apple selbst stuft die Entdeckung als Machbarkeitsnachweis ein. Es gehe keine unmittelbare Gefahr für die Nutzer aus, heißt es in einer Stellungnahme.

Laut den Forschern des MIT Computer Science and Artificial Intelligence Laboratory müssen Angreifer keinen direkten Zugang zu der Hardware haben. Im Testfall wurde der Computer aus einem anderen Raum attackiert. Bislang sei ihnen aber nicht bekannt, dass diese Angriffstechnik schon einmal verwendet wurde. Die Forscher waren bereits im Jahr 2021 mit Apple in Kontakt, um sich über die Erkenntnisse auszutauschen. Erst Anfang Mai war eine andere Prozessorsicherheitslücke im M1 namens Augury bekannt geworden.

Der entdeckte Angriff umgeht die sogenannten Pointer Authentication Codes (PAC), eine Art Schutzschicht, die verhindern soll, dass Software-Bugs ausgenutzt werden können, um damit die Zugrifssrechte vom User- auf den Kernel-Space zu erweitern. Im Erfolgsfall kann über den Kernel jede Art von Zugriff auf Daten des Systems erfolgen.

Da der Pacman-Angriff auf die Sicherheitsfunktion PAC abzielt, haben sich die Entdecker Pac-Man für ein Logo ausgesucht.

(Bild: pacmanattack.com)

Ein Pointer (Deutsch: Zeiger) ist ein Objekt in einer Programmiersprache, das bei Speicherzugriffen der CPU auf die passenden Adressen im RAM zeigt. Damit Angreifer diese Funktion nicht für programmübergreifende Speicherzugriffe missbrauchen, wurde die Pointer Authentification eingeführt. Damit überprüft das System durch Abgleich kryptografisch verschlüsselter Signaturen, ob ein Zugriff zulässig ist. Die Pointer Authentication Codes sind eine zusätzliche Schutzmaßnahme gegen Angriffe, die ARM mit der Architekturversion ARMv8.3 einführte.

Die Entdeckung der Forscher zeigt, dass auf diesen Schutz wenig Verlass ist. Über die spekulative Ausführung des M1 und einem Raten aller möglichen PAC-Werte gelingt es ihnen, die Zeiger zu überschreiben. Über einen Seitenkanal können sie dabei herausfinden, ob der Rateversuch für den Zeigerzugriff erfolgreich ist oder nicht. So gelangen sie schließlich in den Kernel-Space und führen Code aus.

Die Sicherheitslücke ist in der Hardware verankert und lässt sich lediglich per Software-Tricks ausbessern. Allerdings wird in jedem Fall ein Software-Bug als Basis benötigt, der eine Speicherkorruption ermöglicht, um überhaupt zur Pointer Authentification vorzudringen. Apple hält die Sicherheitsvorkehrungen des Betriebssystems macOS für ausreichend.

(mki)