Eine neue Klasse von Schwachstellen in Intel-Prozessoren wurde eingeführt

Intel опубликовала Informationen über Neues Verwundbarkeitsklasse in ihren Prozessoren - MDS (Mikroarchitekturdaten-Sampling). Wie bei früheren Spectre-Angriffen können neue Probleme zum Verlust privater Daten aus dem Betriebssystem, virtuellen Maschinen und anderen Prozessen führen. Es wird behauptet, dass die Probleme zunächst von Intel-Mitarbeitern und Partnern bei einem internen Audit festgestellt wurden, woraufhin unabhängige Forscher Informationen über ähnliche Probleme an Intel weitergaben. AMD- und ARM-Prozessoren sind von dem Problem nicht betroffen.

Basierend auf identifizierten Problemen von Forschern der Technischen Universität Graz (Österreich) entwickelt von Einige praktische Seitenkanalangriffe:

  • ZombieLoad (PDF) – ermöglicht das Extrahieren vertraulicher Informationen aus anderen Prozessen, dem Betriebssystem, virtuellen Maschinen und geschützten Enklaven (TEE, Trusted Execution Environment). Beispielsweise wurde die Möglichkeit demonstriert, den Verlauf des Öffnens von Seiten im Tor-Browser zu ermitteln, der in einer anderen virtuellen Maschine ausgeführt wird, sowie die Bestimmung der in Anwendungen verwendeten Zugriffsschlüssel und Passwörter;


  • RIDL (PDF) – ermöglicht Informationslecks zwischen verschiedenen isolierten Bereichen in Intel-Prozessoren, wie z. B. Füllpuffern, Speicherpuffern und Ladeports. Beispiele für Angriffe werden gezeigt, um Lecks von anderen Prozessen, dem Betriebssystem, virtuellen Maschinen und geschützten Enklaven zu organisieren. Es zeigt beispielsweise, wie man bei regelmäßigen Authentifizierungsversuchen (der Angriff dauerte 24 Stunden) den Inhalt des Root-Passwort-Hashs aus /etc/shadow herausfindet;

    Darüber hinaus wird ein Beispiel für einen Angriff mithilfe von JavaScript und WebAssembly beim Öffnen einer schädlichen Seite in der SpiderMonkey-Engine gezeigt (in modernen vollwertigen Browsern ist ein solcher Angriff aufgrund der begrenzten Timer-Genauigkeit und Maßnahmen zum Schutz vor Spectre unwahrscheinlich);

  • Fallout (PDF) – ermöglicht es, kürzlich vom Betriebssystem geschriebene Daten zu lesen und das Speicherlayout des Betriebssystems zu bestimmen, um andere Angriffe zu vereinfachen;
  • Store-to-Leak-Weiterleitung – nutzt CPU-Optimierungen für die Arbeit mit dem Speicherpuffer und kann zur Umgehung des Kernel-Adressraum-Randomisierungsmechanismus (KASLR), zur Überwachung des Status des Betriebssystems usw. verwendet werden Organisationen Lecks in Kombination mit Gadgets, die auf Spectre-Methoden basieren.

Aufgedeckt Schwachstellen:

  • CVE-2018-12126 – MSBDS (Microarchitectural Store Buffer Data Sampling), Wiederherstellung des Inhalts von Speicherpuffern. Wird beim Fallout-Angriff verwendet. Der Gefährdungsgrad wird mit 6.5 Punkten (CVSS) ermittelt;
  • CVE-2018-12127 – MLPDS (Microarchitectural Load Port Data Sampling), Wiederherstellung von Ladeportinhalten. Wird beim RIDL-Angriff verwendet. CVSS 6.5;
  • CVE-2018-12130 – MFBDS (Microarchitectural Fill Buffer Data Sampling), Wiederherstellung von Füllpufferinhalten. Wird bei ZombieLoad- und RIDL-Angriffen verwendet. CVSS 6.5;
  • CVE-2019-11091 – MDSUM (Microarchitectural Data Sampling Uncacheable Memory), Wiederherstellung von nicht zwischenspeicherbaren Speicherinhalten. Wird beim RIDL-Angriff verwendet. CVSS 3.8.

Substanz identifizierte Probleme bei der Fähigkeit, Seitenkanalanalysemethoden auf Daten in mikroarchitektonischen Strukturen anzuwenden, auf die Anwendungen keinen direkten Zugriff haben. Wir sprechen von Strukturen auf niedriger Ebene wie Füllpuffern (Line Fill Buffer), Speicherpuffern (Store Buffer) und Ladeports (Load Port), die kleinere Bausteine ​​sind als der First-Level-Cache (L1D), der Datenlade-Cache ( RDCL) oder L1TF (L1 Terminal Fault) und enthalten dementsprechend weniger Informationen und werden intensiver aktualisiert.

Eine neue Klasse von Schwachstellen in Intel-Prozessoren wurde eingeführt

Seitenkanalangriffe auf Mikroarchitekturstrukturen sind im Vergleich zu Methoden zur Wiederherstellung von Cache-Inhalten viel schwieriger durchzuführen und erfordern die Verfolgung und Analyse erheblicher Datenmengen, um deren Verbindung mit bestimmten Adressen im Speicher zu bestimmen (im Wesentlichen kann ein Angreifer bestimmte Daten nicht gezielt abfangen). , aber es kann Zeit sein, Lecks anzusammeln und statistische Methoden anzuwenden, um bestimmte Datentypen zu rekonstruieren. Darüber hinaus betrifft der Angriff nur Daten auf demselben physischen CPU-Kern wie der Code des Angreifers.

Die vorgeschlagenen Methoden zur Bestimmung des Inhalts mikroarchitektonischer Strukturen basieren auf der Tatsache, dass diese Strukturen bei der spekulativen Behandlung von Ausnahmen (Fehlern) oder Lade- und Speichervorgängen verwendet werden.
Bei der spekulativen Ausführung werden die Inhalte interner Strukturen zur Verarbeitung in Register oder Caches umgeleitet. Spekulative Vorgänge werden nicht abgeschlossen und das Ergebnis wird verworfen, aber der umgeleitete Inhalt kann mithilfe von Seitenkanal-Cache-Analysetechniken ermittelt werden.

Ladeports werden vom Prozessor verwendet, um Daten aus dem Speicher oder dem E/A-Subsystem zu empfangen und die empfangenen Informationen an die CPU-Register weiterzuleiten. Aufgrund der Implementierungsfunktion verbleiben Daten aus alten Download-Vorgängen in den Ports, bis sie durch neue Daten überschrieben werden, was es ermöglicht, den Zustand der Daten im Download-Port indirekt durch Manipulation von Ausnahmen (Fehlern) und SSE/AVX/ zu ermitteln. AVX-512-Anweisungen, die mehr als 64-Bit-Daten laden. Unter solchen Bedingungen legen Ladevorgänge spekulativ veraltete Datenwerte aus internen Strukturen für abhängige Vorgänge offen. Auf ähnliche Weise wird ein Leck über den Speicherpuffer organisiert, der zum Beschleunigen des Schreibens in den CPU-Cache dient und eine Tabelle mit Adressen, Werten und Flags enthält, sowie über den Füllpuffer, der Daten enthält ist noch nicht im L1-Cache (Cache-Miss), lädt vorerst aus Caches anderer Ebenen.

Eine neue Klasse von Schwachstellen in Intel-Prozessoren wurde eingeführt

Problem wirkt Seit 2011 produzierte Intel-Prozessormodelle (ab der 6. Generation). In diesem Fall werden Hardware-Schwachstellen ab einigen Modellen der 8. und 9. Generation von Intel Core und der 2. Generation von Intel Xeon Scalable blockiert (Sie können dies mithilfe des ARCH_CAP_MDS_NO-Bits in IA32_ARCH_CAPABILITIES MSR überprüfen). Es gibt auch bereits Sicherheitslücken eliminiert auf der Ebene von Firmware, Mikrocode und Betriebssystemen. Intel geht davon aus, dass es nach der Aktivierung des Patches für die meisten Benutzer zu Leistungseinbußen kommt überschreitet nicht 3%. Wenn Hyper-Threading deaktiviert ist, kann der Leistungsabfall beim SPECint_rate_base-Test bis zu 9 %, bei aktiven Ganzzahlberechnungen bis zu 11 % und bei serverseitigen Java-Anwendungen bis zu 19 % betragen (bei aktiviertem HT gibt es fast keine Leistung). Degradierung). Die Patches haben kaum Auswirkungen auf die I/O-Leistung.

Der Linux-Kernel schützt vor MDS hinzugefügt in der heutigen Aktualisierung 5.1.2, 5.0.16,
4.19.43, 4.14.119 und 4.9.176. Schutzmethode Bauarbeiten im Gange zum Löschen des Inhalts von Mikroarchitekturpuffern zum Zeitpunkt der Rückkehr vom Kernel in den Benutzerbereich oder bei der Übergabe der Kontrolle an das Gastsystem, wofür die VERW-Anweisung verwendet wird. Damit der Schutz funktioniert, ist die Unterstützung des MD_CLEAR-Modus erforderlich, der im neuesten Mikrocode-Update implementiert ist. Für einen vollständigen Schutz wird außerdem empfohlen, Hyper Threading zu deaktivieren. Um die Gefährdung des Systems durch Schwachstellen im Linux-Kernel zu überprüfen hinzugefügt Handler „/sys/devices/system/cpu/vulnerabilities/mds“. Um die Einbeziehung verschiedener Schwachstellenblockierungsmodi zu steuern, wurde dem Kernel der Parameter „mds=“ hinzugefügt, der die Werte „full“, „full,nosmt“ (Deaktivierung von Hyper-Threads), „vmwerv“ und annehmen kann "aus".

Paketaktualisierungen wurden bereits veröffentlicht RHEL и Ubuntu, sind aber vorerst nicht verfügbar Debian, Fedora и SUSE.
Ein Fix, um auch Datenlecks von virtuellen Maschinen zu blockieren gebildet für den Xen-Hypervisor. Zum Schutz von Virtualisierungssystemen, die den Befehl L1D_FLUSH ausgeben, bevor sie die Kontrolle an eine andere virtuelle Maschine übertragen, und zum Schutz von Intel SGX-Enklaven ist ein Mikrocode-Update ausreichend.

Source: opennet.ru

Kommentar hinzufügen