Für einen neuen NetSpectre-Angriff muss das Opfer keinen schädlichen Code herunterladen oder ausführen

Sicherheit /. Für einen neuen NetSpectre-Angriff muss das Opfer keinen schädlichen Code herunterladen oder ausführen

NetSpectre Bombards Machine Ports, um Zugang zu erhalten

4 Minuten gelesen

Ein neuer CPU-Angriff der Spectre-Klasse hat die Aufmerksamkeit von akademischen Wissenschaftlern auf sich gezogen, als sie kürzlich ein Forschungspapier mit dem Titel „NetSpectre: Beliebigen Speicher über Netzwerk lesen“ veröffentlichten, das ausführliche Informationen zur Funktionsweise dieser Klasse von CPU-Angriffen enthält.



Was den neuen Spectre-CPU-Angriff ein bisschen beängstigend macht, ist, dass er benötigt nicht der Angreifer täuscht sein Opfer vor, schädliche Skripte auf seinen Computer herunterzuladen und auszuführen oder sogar auf eine Website zuzugreifen, auf der schädliches JavaScript im Browser des Benutzers ausgeführt wird.

NetSpectre bombardiert einfach die Netzwerkports eines Computers, bis es einen Weg findet, seine Ziele zu erreichen.



'Spectre-Angriffe veranlassen ein Opfer, spekulativ Operationen auszuführen, die während einer streng serialisierten Reihenfolge der Verarbeitung der Programmanweisungen nicht auftreten würden und die vertraulichen Informationen eines Opfers über einen verdeckten Kanal an einen Angreifer weitergeben.'



NetSpectre kommt jedoch nicht ohne eigene Mängel aus. Es hat eine unglaublich langsame Exfiltrationsgeschwindigkeit, etwa 15 Bit pro Stunde, damit Angriffe über eine Netzwerkverbindung ausgeführt werden können und auf Daten abzielen, die im Cache der CPU gespeichert sind.



In dem Forschungsbericht konnten die Wissenschaftler mit einer speziellen Variante von NetSpectre bis zu 60 Bit / Stunde erreichen, die auf Daten abzielte, die über das AVX2-Modul der CPU verarbeitet wurden, das für Intel-CPUs spezifisch ist.

In beiden Fällen wird NetSpectre derzeit als zu langsam angesehen, um für Angreifer wertvoll zu sein. Dies bedeutet, dass NetSpectre nur eine ist theoretisch Bedrohung, nicht etwas, vor dem sich Unternehmen verstecken sollten Jetzt . Mit fortschreitender Technologie werden sich jedoch die Exfiltrationsgeschwindigkeiten zweifellos erhöhen, und dann haben wir eine ganz neue Klasse praktikabler und unglaublich einfach durchzuführender CPU-Angriffe, über die wir uns Sorgen machen müssen.

Der neue NetSpectre-Angriff hängt mit der Spectre V1-Sicherheitsanfälligkeit (CVE-2017-5753) zusammen, die Google-Forscher Anfang dieses Jahres (2018) aufgedeckt haben. Dies bedeutet, dass alle CPUs, die von Spectre V1 betroffen sein könnten, auch als NetSpectre gelten, wenn sie mit der richtigen Betriebssystem- und CPU-Firmware bereitgestellt werden.



Derzeit gibt es zwei Angriffsvarianten für NetSpectre: Extrahieren von Daten aus dem Zielsystem und Remote-Unterbrechung der ASLR (Address Space Layout Randomization) auf dem Zielsystem.

Die Ereigniskette für die erste Art von Angriff sieht folgendermaßen aus:

  1. Mistrain den Zweigprädiktor.
  2. Setzen Sie den Status des mikroarchitektonischen Elements zurück.
  3. Leck ein wenig an das mikroarchitektonische Element.
  4. Stellen Sie den Status des mikroarchitektonischen Elements dem Netzwerk zur Verfügung.
  • In Schritt 1 führt der Angreifer den Zweigprädiktor des Opfers falsch aus, um einen Spectre-Angriff auszuführen. Um den Verzweigungsprädiktor zu missbrauchen, nutzt der Angreifer das Leck-Gadget mit gültigen Indizes. Die gültigen Indizes stellen sicher, dass der Verzweigungsprädiktor lernt, immer die Verzweigung zu nehmen, d. H. Der Verzweigungsprädiktor spekuliert, dass die Bedingung wahr ist. Beachten Sie, dass dieser Schritt nur vom Leck-Gadget abhängt. Es erfolgt keine Rückmeldung an den Angreifer, sodass der Mikroarchitekturstatus nicht zurückgesetzt oder übertragen werden muss.
  • In Schritt 2 muss der Angreifer den Mikroarchitekturzustand zurücksetzen, um die Codierung von durchgesickerten Bits unter Verwendung eines Mikroarchitekturelements zu ermöglichen. Dieser Schritt hängt stark von dem verwendeten mikroarchitektonischen Element ab, z. B. wenn der Angreifer den Cache nutzt, lädt er eine große Datei vom Opfer herunter; Wenn AVX2 verwendet wird, wartet der Angreifer einfach länger als 1 Millisekunde. Nach diesem Schritt sind alle Anforderungen erfüllt, um ein wenig vom Opfer zu lecken.
  • In Schritt 3 nutzt der Angreifer die Spectre-Sicherheitsanfälligkeit aus, um dem Opfer ein einzelnes Bit zu entziehen. Wenn der Verzweigungsprädiktor in Schritt 1 falsch trainiert wird, führt das Bereitstellen eines Index außerhalb der Grenzen für das Leck-Gadget den Pfad innerhalb der Grenzen aus und modifiziert das Mikroarchitekturelement, d. H. Das Bit wird in dem Mikroarchitekturelement codiert.
  • In Schritt 4 muss der Angreifer die codierten Informationen über das Netzwerk übertragen. Dieser Schritt entspricht der zweiten Phase des ursprünglichen Spectre-Angriffs. Der Angreifer sendet ein Netzwerkpaket, das vom Sende-Gadget verarbeitet wird, und misst die Zeit vom Senden des Pakets bis zum Eintreffen der Antwort.

Angriffsmethode Nr. 2: ASLR aus der Ferne brechen

  1. Mistrain den Zweigprädiktor.
  2. Greifen Sie auf einen Index außerhalb der Grenzen zu, um einen (bekannten) Speicherort zwischenzuspeichern.
  3. Messen Sie die Ausführungszeit einer Funktion über das Netzwerk, um festzustellen, ob der Zugriff außerhalb der Grenzen einen Teil davon zwischengespeichert hat.

Gespenst Gegenmaßnahmen

Intel und AMD empfehlen, die lfence-Anweisung als Spekulationsbarriere zu verwenden. Diese Anweisung muss nach der Überprüfung sicherheitskritischer Grenzen eingefügt werden, um die spekulative Ausführung zu stoppen. Das Hinzufügen zu jeder Begrenzungsprüfung hat jedoch einen erheblichen Leistungsaufwand.

Da es sich bei NetSpectre um einen netzwerkbasierten Angriff handelt, kann dies nicht nur durch Abschwächung von Spectre, sondern auch durch Gegenmaßnahmen auf der Netzwerkebene verhindert werden. Ein trivialer NetSpectre-Angriff kann durch einen DDoS-Schutz leicht erkannt werden, da mehrere tausend identische Pakete von derselben Quelle gesendet werden.

Ein Angreifer kann jedoch einen beliebigen Kompromiss zwischen Paketen pro Sekunde und durchgesickerten Bits pro Sekunde wählen. Somit kann die Geschwindigkeit, mit der Bits verloren gehen, einfach unter den Schwellenwert reduziert werden, den die DDoS-Überwachung erkennen kann. Dies gilt für jede Überwachung, die versucht, laufende Angriffe zu erkennen, z. B. Intrusion Detection-Systeme.

Obwohl der Angriff theoretisch nicht verhindert wird, wird der Angriff irgendwann unmöglich, da die Zeit, die erforderlich ist, um ein wenig zu lecken, drastisch zunimmt. Eine andere Methode zur Minderung von NetSpectre besteht darin, der Netzwerklatenz künstliches Rauschen hinzuzufügen. Da die Anzahl der Messungen von der Varianz der Netzwerklatenz abhängt, muss ein Angreifer für zusätzliches Rauschen mehr Messungen durchführen. Wenn die Varianz der Netzwerklatenz hoch genug ist, werden NetSpectre-Angriffe aufgrund der großen Anzahl erforderlicher Messungen nicht mehr möglich.