Es wurde eine Angriffsmethode vorgeschlagen, um Speicherfragmente auf dem Server aus der Ferne zu ermitteln

Eine Forschergruppe der Technischen Universität Graz (Österreich), die zuvor für die Entwicklung der MDS-, NetSpectre-, Throwhammer- und ZombieLoad-Angriffe bekannt war, hat eine neue Seitenkanal-Angriffsmethode (CVE-2021-3714) gegen den Memory-Deduplication-Mechanismus veröffentlicht , die es ermöglicht, das Vorhandensein bestimmter Daten im Speicher zu bestimmen, einen Byte-für-Byte-Leck von Speicherinhalten zu organisieren oder das Speicherlayout zu bestimmen, um den Schutz durch adressbasierte Randomisierung (ASLR) zu umgehen. Die neue Methode unterscheidet sich von zuvor gezeigten Varianten von Angriffen auf den Deduplizierungsmechanismus dadurch, dass sie einen Angriff von einem externen Host aus unter Verwendung der Änderung der Antwortzeit auf Anfragen, die über die Protokolle HTTP/1 und HTTP/2 an den Angreifer gesendet werden, als Kriterium durchführt. Die Angriffsfähigkeit wurde für Server auf Basis von Linux und Windows nachgewiesen.

Angriffe auf den Speicherdeduplizierungsmechanismus nutzen den Unterschied in der Verarbeitungszeit eines Schreibvorgangs als Kanal für den Verlust von Informationen in Situationen, in denen eine Datenänderung zum Klonen einer deduplizierten Speicherseite mithilfe des COW-Mechanismus (Copy-On-Write) führt . Während des Betriebs erkennt der Kernel identische Speicherseiten aus verschiedenen Prozessen und führt sie zusammen, wobei identische Speicherseiten einem einzigen Bereich des physischen Speichers zugeordnet werden, um nur eine Kopie zu speichern. Wenn einer der Prozesse versucht, Daten zu ändern, die mit deduplizierten Seiten verknüpft sind, tritt eine Ausnahme (Seitenfehler) auf und mithilfe des Copy-On-Write-Mechanismus wird automatisch eine separate Kopie der Speicherseite erstellt, die dem Prozess zugewiesen wird. Für die Fertigstellung des Kopiervorgangs wird zusätzliche Zeit aufgewendet, was ein Zeichen dafür sein kann, dass Datenänderungen einen anderen Prozess beeinträchtigen.

Forscher haben gezeigt, dass die Verzögerungen, die sich aus dem COW-Mechanismus ergeben, nicht nur lokal erfasst werden können, sondern auch durch die Analyse von Änderungen der Reaktionszeiten über das Netzwerk. Es wurden mehrere Methoden vorgeschlagen, um den Inhalt des Speichers von einem Remote-Host aus zu bestimmen, indem die Ausführungszeit von Anforderungen über die Protokolle HTTP/1 und HTTP/2 analysiert wird. Zum Speichern ausgewählter Vorlagen werden Standard-Webanwendungen verwendet, die die in Anfragen erhaltenen Informationen im Speicher ablegen.

Das allgemeine Prinzip des Angriffs besteht darin, eine Speicherseite auf dem Server mit Daten zu füllen, die möglicherweise den Inhalt einer bereits auf dem Server vorhandenen Speicherseite wiederholen. Der Angreifer wartet dann auf die Zeit, die der Kernel zum Deduplizieren und Zusammenführen der Speicherseite benötigt, modifiziert dann die kontrollierten Duplikatdaten und wertet die Antwortzeit aus, um festzustellen, ob der Treffer erfolgreich war.

Es wurde eine Angriffsmethode vorgeschlagen, um Speicherfragmente auf dem Server aus der Ferne zu ermitteln

Während der Experimente betrug die maximale Informationsleckrate 34.41 Byte pro Stunde bei Angriffen über ein globales Netzwerk und 302.16 Bytes pro Stunde bei Angriffen über ein lokales Netzwerk, was schneller ist als andere Methoden zum Extrahieren von Daten über Kanäle Dritter (z. B. Bei einem NetSpectre-Angriff beträgt die Datenübertragungsrate 7.5 Byte pro Stunde.

Es wurden drei funktionierende Angriffsoptionen vorgeschlagen. Mit der ersten Option können Sie die Daten im Speicher des Webservers ermitteln, der Memcached verwendet. Der Angriff läuft darauf hinaus, bestimmte Datensätze in den Memcached-Speicher zu laden, den deduplizierten Block zu löschen, dasselbe Element neu zu schreiben und eine Bedingung für das COW-Kopieren zu schaffen, indem der Inhalt des Blocks geändert wird. Beim Experiment mit Memcached konnte in 166.51 Sekunden ermittelt werden, welche Version von libc auf einem System installiert ist, das in einer virtuellen Maschine läuft.

Die zweite Option ermöglichte es, bei Verwendung des InnoDB-Speichers den Inhalt von Datensätzen im MariaDB-DBMS herauszufinden, indem der Inhalt Byte für Byte neu erstellt wurde. Der Angriff erfolgt durch das Senden speziell modifizierter Anfragen, die zu Einzelbyte-Nichtübereinstimmungen in den Speicherseiten führen, und durch die Analyse der Antwortzeit, um festzustellen, ob die Vermutung über den Inhalt des Bytes korrekt war. Die Rate eines solchen Lecks ist gering und beträgt bei einem Angriff aus einem lokalen Netzwerk 1.5 Byte pro Stunde. Der Vorteil der Methode besteht darin, dass damit unbekannte Speicherinhalte wiederhergestellt werden können.

Die dritte Option ermöglichte es, den KASLR-Schutzmechanismus in 4 Minuten vollständig zu umgehen und Informationen über den Speicheroffset des Kernel-Images der virtuellen Maschine zu erhalten, wenn sich die Offset-Adresse auf einer Speicherseite befindet, auf der sich andere Daten nicht ändern. Der Angriff wurde von einem Host aus ausgeführt, der 14 Hops vom angegriffenen System entfernt war. Es wird versprochen, dass Codebeispiele zur Umsetzung der vorgestellten Angriffe auf GitHub veröffentlicht werden.

Source: opennet.ru

Kommentar hinzufügen