Eine Gruppe von Forschern der Vrije Universiteit Amsterdam hat eine neue (CVE-2020-0543) in den Mikroarchitekturstukturen von Intel-Prozessoren identifiziert, die bemerkenswert ist, da sie die Wiederherstellung der Ergebnisse bestimmter Anweisungen ermöglicht, die auf einem anderen CPU-Kern ausgeführt werden. Dies ist die erste Schwachstelle im Mechanismus der spekulativen Ausführung von Anweisungen, die Datenlecks zwischen einzelnen CPU-Kernen zulässt (frühere Datenlecks waren auf verschiedene Threads eines Kerns beschränkt). Die Forscher gaben dem Problem den Namen CROSSTalk, aber in wird die Schwachstelle als SRBDS (Special Register Buffer Data Sampling) bezeichnet.
Die Schwachstelle gehört zum Klasse von MDS-Problemen (Microarchitectural Data Sampling) und basiert auf der Anwendung von Seitenkanalanalyse-Methoden auf Daten in Mikroarchitekturstukturen. von CROSSTalk ist ähnlich wie bei der Schwachstelle , unterscheidet sich jedoch in der Quelle des Lecks.
Die neue Schwachstelle manipuliert das Leck aus einem zuvor nicht dokumentierten gemeinsamen Puffer, der von allen CPU-Kernen genutzt wird.
ist, dass einige Mikroprozessoranweisungen, einschließlich RDRAND, RDSEED und SGX EGETKEY, unter Verwendung eines internen mikroarchitektonischen Vorgangs namens SRR (Special Register Reads) implementiert sind. Auf betroffenen Prozessoren werden die für SRR zurückgegebenen Daten in einem gemeinsamen Puffer gespeichert, der für alle CPU-Kerne gilt, bevor sie in einen Füllpuffer übertragen werden, der an den spezifischen physischen CPU-Kern gebunden ist, auf dem die Leseoperation initiiert wurde. Anschließend wird der Wert aus dem Füllpuffer in die für Anwendungen sichtbaren Register kopiert.
Die Größe des gemeinsamen Puffers entspricht der Cache-Linie, was normalerweise größer ist als die Größe der gelesenen Daten, und verschiedene Leseoperationen betreffen unterschiedliche Offset im Puffer. Da der gemeinsame Puffer vollständig in den Füllpuffer kopiert wird, werden nicht nur die für die aktuelle Operation benötigten Daten verschoben, sondern auch Daten, die von anderen Operationen übrig geblieben sind, einschließlich solcher, die auf anderen CPU-Kernen ausgeführt wurden.
Im Falle einer erfolgreichen Durchführung des Angriffs kann ein im System authentifizierter lokaler Benutzer das Ergebnis der Ausführung der Anweisungen RDRAND, RDSEED und EGETKEY in einem fremden Prozess oder innerhalb eines Intel SGX-Enklave bestimmen, unabhängig von dem CPU-Kern, auf dem der Code ausgeführt wird.
Forscher, die das Problem entdeckt haben ein Prototyp eines Exploits, der die Möglichkeit einer Datenleakage von Zufallswerten, die über die RDRAND- und RDSEED-Instruktionen erhalten werden, demonstriert, um den privaten ECDSA-Schlüssel, der in einem Intel SGX-Enklave verarbeitet wird, nach nur einem einzigen digitalen Signaturvorgang im System wiederherzustellen.

Problem eine breite Palette von Desktop-, Mobile- und Serverprozessoren von Intel, einschließlich Core i3, i5, i7, i9, m3, Celeron (Serien J, G und N), Atom (Serien C, E und X), Xeon (Familien E3, E5, E7, W und D), Xeon Scalable usw. Bemerkenswerterweise wurde Intel im September 2018 über die Schwachstelle informiert, und im Juli 2019 wurde ein Prototyp des Exploits bereitgestellt, der die Datenleckage zwischen CPU-Kernen demonstrierte, aber die Entwicklung eines Patches verzögerte sich aufgrund der Komplexität der Umsetzung. Im heute vorgeschlagenen Mikrokodupdate wird das Problem durch eine Änderun des Verhaltens der RDRAND-, RDSEED- und EGETKEY-Instruktionen, um ein redundantes Überschreiben von Daten im gemeinsamen Puffer zu erreichen, blockiert, um die Ansammlung von Restinformationen zu verhindern. Darüber hinaus wird der Zugriff auf den Puffer bis zum Abschluss der Lese- und Überschreibvorgänge angehalten.
Ein Nebeneffekt eines solchen Schutzes ist die Erhöhung der Latenz bei der Ausführung von RDRAND, RDSEED und EGETKEY und eine Verringerung der Bandbreite bei dem Versuch, diese Instruktionen gleichzeitig auf verschiedenen logischen Prozessoren auszuführen. Die Ausführung von RDRAND, RDSEED und EGETKEY unterbricht auch den Zugriff auf den Speicher von anderen logischen Prozessoren. Diese Eigenschaften können sich negativ auf die Leistung bestimmter Serveranwendungen auswirken, daher sieht die Firmware einen Mechanismus (RNGDS_MITG_DIS) vor, um den Schutz der RDRAND- und RDSEED-Instruktionen, die außerhalb der Intel SGX-Enklave ausgeführt werden, zu deaktivieren.
Quelle: opennet.ru
