Ein Angriffsszenario zur remote Bestimmung von Speicherfragmenten auf dem Server vorgeschlagen.

Eine Forschergruppe der Technischen Universität Graz (Österreich), die zuvor durch die Entwicklung der Angriffe MDS, NetSpectre, Throwhammer und ZombieLoad bekannt wurde, hat eine neue Angriffsmethode (CVE-2021-3714) über seitliche Kanäle auf den Mechanismus der Speicherdeduplication veröffentlicht. Diese Methode ermöglicht es, das Vorhandensein bestimmter Daten im Speicher festzustellen, den Inhalt des Speichers byteweise abzulecken oder die Speicheranordnung zu bestimmen, um den Schutz durch Adressrandomisierung (ASLR) zu umgehen. Im Gegensatz zu den zuvor demonstrierten Angriffsvarianten auf den Deduplication-Mechanismus unterscheidet sich die neue Methode durch die Durchführung des Angriffs von einem externen Host aus, wobei als Kriterium die Veränderung der Antwortzeiten auf die vom Angreifer gesendeten Anfragen über die Protokolle HTTP/1 und HTTP/2 verwendet wird. Die Möglichkeit, diesen Angriff durchzuführen, wurde auf Servern basierend auf Linux und Windows demonstriert.

Angriffe auf den Speicher-Deduplication-Mechanismus nutzen die Unterschiede in der Bearbeitungszeit von Schreibvorgängen als Kanal für Datenleckagen, insbesondere wenn Datenänderungen zum Klonen deduplizierter Speicherseiten durch den Copy-On-Write (COW)-Mechanismus führen. Während des Betriebs identifiziert der Kernel identische Speicherseiten von verschiedenen Prozessen und fasst sie zusammen, indem er identische Speicherseiten in einen physikalischen Speicherbereich abbildet, um nur eine Kopie zu speichern. Wenn einer der Prozesse versucht, die Daten, die mit deduplizierten Seiten verbunden sind, zu ändern, tritt eine Ausnahme (page fault) auf, und durch den Copy-On-Write-Mechanismus wird automatisch eine separate Kopie der Speicherseite erstellt, die dem Prozess zugeordnet wird. Für den Kopiervorgang wird zusätzliche Zeit benötigt, was ein Hinweis auf Datenänderungen sein kann, die mit einem anderen Prozess in Konflikt stehen.

Forschungsergebnisse zeigen, dass die durch den COW-Mechanismus verursachten Verzögerungen nicht nur lokal, sondern auch durch die Analyse der Antwortzeiten über das Netzwerk erfasst werden können. Es wurden mehrere Methoden zur Bestimmung des Speichera Inhalts von einem entfernten Host durch die Analyse der Ausführungszeiten von Anfragen über die Protokolle HTTP/1 und HTTP/2 vorgeschlagen. Um die ermittelten Muster zu speichern, kommen gängige Webanwendungen zum Einsatz, die die Informationen aus den eingehenden Anfragen im Speicher festhalten.

Das grundlegende Prinzip des Angriffs besteht darin, den Server Speicherbereich mit Daten zu füllen, die potenziell die Inhalte einer bereits vorhandenen Seite im Server-Speicher wiederholen. Anschließend wartet der Angreifer die Zeit ab, die erforderlich ist, damit der Kernel die Deduplikation und das Zusammenführen der Speicherseiten durchführt, bevor er die kontrollierte Duplikatdaten ändert und die Reaktionszeit bewertet, um den Erfolg seines Angriffs zu messen.

Ein Angriffsszenario zur remote Bestimmung von Speicherfragmenten auf dem Server vorgeschlagen.

In den durchgeführten Experimenten betrug die maximale Geschwindigkeit der Datenleckage 34,41 Byte pro Stunde bei einem Angriff über das globale Netzwerk und 302,16 Byte pro Stunde bei einem Angriff über das lokale Netzwerk. Dies ist schneller als andere Methoden zur Datenextraktion über externe Kanäle (zum Beispiel beträgt die Datenübertragungsrate bei einem NetSpectre-Angriff 7,5 Byte pro Stunde).

Drei funktionale Angriffsvarianten wurden vorgeschlagen. Die erste Möglichkeit ermöglicht es, Daten im Arbeitsspeicher Webserver, auf dem Memcached verwendet wird, zu bestimmen. Der Angriff besteht darin, bestimmte Datensätze im Memcached-Speicher zu laden, einen deduplizierten Block zu löschen, dasselbe Element erneut zu schreiben und Bedingungen für das Auftreten von COW-Kopien durch eine Änderung des Blockinhalts zu schaffen. Im Verlauf des Experiments mit Memcached konnte innerhalb von 166,51 Sekunden die in der im virtuellen Maschinen ausgeführten Version von libc installierte Version bestimmt werden.

Die zweite Variante ermöglichte es, den Inhalt von Einträgen in der MariaDB-Datenbank zu erkennen, während das InnoDB-Storage verwendet wird, durch die Byte-für-Byte-Wiederherstellung des Inhalts. Der Angriff erfolgt durch das Senden speziell modifizierter Anfragen, die zu Byte-für-Byte-Abweichungen im Speicher führen, gefolgt von einer Analyse der Reaktionszeiten, um zu bestimmen, ob die Vermutung über den Byte-Inhalt korrekt war. Die Geschwindigkeit einer solchen Ausnutzung ist gering, bei nur 1,5 Byte pro Stunde bei Angriffen aus einem lokalen Netzwerk. Ein Vorteil der Methode ist, dass sie zur Wiederherstellung unbekannter Inhalte im Speicher eingesetzt werden kann.

Die dritte Variante ermöglichte es, innerhalb von 4 Minuten den KASLR-Schutzmechanismus vollständig zu umgehen und Informationen über den Offset im Speicher des Kernel-Images der virtuellen Maschine zu erhalten, wenn sich die Offset-Adresse in einem Speicherbereich befindet, dessen andere Daten unverändert bleiben. Der Angriff wurde von einem Host aus durchgeführt, der sich 14 Hops von dem angegriffenen System entfernt befindet. Beispielcode für die Durchführung der beschriebenen Angriffe wird auf GitHub veröffentlicht werden.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster