MSI RTX 2080 Serie

CPU-Sicherheit: PortSmash, ein neuer Angriff auf HyperThreading (SMT)

reported by doelf, Montag der 05.11.2018, 11:09:34 Uhr

Simultaneous Multithreading (SMT), welches Intel als HyperThreading bezeichnet, sorgt seit dem Jahr 2002 für eine bessere Auslastung der Prozessoren. Es erlaubt aber auch Angriffe auf andere Threads, wie Wissenschaftler aus Finnland und Kuba nun bewiesen haben. Für ihren Angriff namens "PortSmash" (CVE-2018-5407) gibt es bereits Proof-of-concept-Code auf Github.

Was ist HyperThreading?
Intel hatte HyperThreading im Jahr 2002 für die Xeon-CPUs der Generation "Prestonia" und den Pentium 4 der Generation "Northwood" vorgestellt. Zunächst war HyperThreading auf die damaligen Spitzenmodelle beschränkt, etablierte sich dann aber schnell bei stromsparenden Mobil-Prozessoren als probates Mittel, um möglichst viel Leistung pro Watt zu generieren. Statt weitere Rechenkerne zu verbauen, was die Fertigungskosten und den Stromverbrauch in die Höhe treibt, reichen HyperThreading zusätzliche Registersätze, um die Pipelines der Recheneinheiten besser auszulasten. Im Normalfall werden zwei Threads je CPU-Kern - man spricht in diesem Zusammenhang auch von zwei logischen Kernen - verarbeitet, woraus sich ein Leistungsvorteil zwischen zehn und zwanzig Prozent ergibt. In bestimmten Lastszenarien kann der Vorteil noch deutlicher ausfallen, während es bei anderen Anwendungen zu Leistungseinbrüchen kommt. Kritiker sahen in HyperThreading daher eine Krücke und AMD versuchte mit seiner Bulldozer-Architektur ein Alternativkonzept namens "Core Multithreading" (CMT) zu etablieren. In der Praxis konnte CMT allerdings nicht überzeugen und wurde mit der Einführung der Zen-Architektur (Ryzen, EPYC) zugunsten einer eigenen SMT-Variante wieder aufgegeben.

Wie funktioniert PortSmash?
Bei "PortSmash" (CVE-2018-5407) handelt es sich einmal mehr um einen Seitenkanalangriff auf die CPU-Architektur und das Vorgehen der Forscher erinnert an Spectre, Meltdown und deren Varianten. Allerdings nutzt "PortSmash" keine Schwächen bei der spekulativen Ausführung, sondern macht sich Eigenheiten von HyperThreading zu Nutze. Ziel der Wissenschaftler war das Thread-übergreifende Erbeuten eines privaten Schlüssels von einem TLS-Server auf Basis von OpenSSL. Sie benötigten hierfür lediglich einen Thread, der auf dem selben physischen Kern des Prozessors lief. Dieser Thread beschäftigte einen logischen Kern mit immer gleichen Befehlen, deren Verarbeitungszeit protokolliert wurde. Wenn der geheime Schlüssel von einem zweiten Thread auf dem anderen logischen Kern verarbeitet wurde, änderten sich hierdurch die Zeiten. Einzig auf Basis der gemessenen Unterschiede konnten die Forscher den Schlüssel erkennen. Sie benötigten weder Zugriff auf den Cache oder den Arbeitsspeicher, noch mussten sie die Eigenheiten der CPU-Architektur näher untersuchen. Im Vergleich zu Spectre erscheint PortSmash wesentlich praktikabler und stellt damit eine ernstzunehmende Bedrohung für Server und Cloud-Anbieter dar. Der heimatliche PC lässt sich zwar auch angreifen, ist aber ein weit weniger attraktives Ziel.

Betroffene CPUs und Gegenmaßnahmen
Der Beispiel-Code der Forscher funktioniert mit Intel-Prozessoren der Generationen Skylake und Kaby Lake, für andere Architekturen müssen die Parameter angepasst werden. Ob sich dieser Angriff auch auf AMDs Ryzen und EPYC übertragen lässt, ist unklar. Die Wissenschaftler halten dies jedenfalls für wahrscheinlich und wollen in Kürze entsprechende Tests durchführen. Wer sich vor PortSmash schützen möchte, muss lediglich HyperThreading bzw. SMT im BIOS/UEFI seines Motherboards deaktivieren. Dann laufen die Threads auf unterschiedlichen physischen Kernen und die Messung der Verarbeitungszeit ist nicht mehr möglich. Auf Servern kann man jedem Benutzer einen physischen Kern zuweisen, so dass ein Zugriff auf die Threads anderer Benutzer unterbunden wird. Auch Software-Entwickler können die Situation entschärfen, indem sie kritische Berechnungen derart gestalten, dass eine genaue Messung der Verarbeitungszeit nicht mehr möglich ist. OpenSSL hat entprechende Anpassungen für die Version 1.1.1a und 1.1.0j angekündigt.

Diese Werbefläche wurde deaktiviert. Damit geht Au-Ja.de eine wichtige Einnahmequelle verloren.

Werbung erlauben ]