Sicherheitsforscher haben im Projekt Zero eine neue Sicherheitslücke namens Spectre and Meltdown veröffentlicht, mit der ein Programm Informationen aus einem Speicher anderer Programme stehlen kann. Es betrifft Intel-, AMD- und ARM-Architekturen.
Dieser Fehler kann aus der Ferne ausgenutzt werden, indem Sie eine JavaScript-Website besuchen. Technische Details finden Sie unter Red Hat Website , Ubuntu Security - Team .
Informationsleck durch spekulative Hinrichtungsseitenkanalangriffe (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754 aka Spectre and Meltdown)
Es wurde festgestellt, dass eine neue Klasse von Seitenkanalangriffen die meisten Prozessoren betrifft, einschließlich Prozessoren von Intel, AMD und ARM. Durch den Angriff können böswillige Userspace-Prozesse den Kernel-Speicher und böswilligen Code in den Gastsystemen den Hypervisor-Speicher lesen. Um das Problem zu beheben, sind Updates für den Ubuntu-Kernel und den Prozessor-Mikrocode erforderlich. Diese Updates werden in zukünftigen Ubuntu-Sicherheitsmitteilungen angekündigt, sobald sie verfügbar sind.
Beispielimplementierung in JavaScript
Als Proof-of-Concept wurde JavaScript-Code geschrieben, der es JavaScript ermöglicht, privaten Speicher von dem Prozess zu lesen, in dem es ausgeführt wird, wenn es im Google Chrome-Browser ausgeführt wird.
Mein System scheint von der Spectre-Schwachstelle betroffen zu sein. Ich habe diesen Proof-of-Concept zusammengestellt und ausgeführt ( spectre.c
).
System Information:
$ uname -a
4.13.0-0.bpo.1-amd64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux
$ cat /proc/cpuinfo
model name : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516
Wie können die Schwachstellen in Spectre und Meldown auf Linux-Systemen gemindert werden?
Lesen Sie weiter: Verwenden von Meltdown zum Stehlen von Passwörtern in Echtzeit .
Aktualisieren
Verwenden Sie Spectre & Meltdown Checker
nach dem Umstieg auf die 4.9.0-5
Kernel-Version die folgende Antwort von @Carlos Pasqualini, da ein Sicherheitsupdate verfügbar ist, um die cve-2017-5754 unter Debian Stretch zu verringern:
CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel: NO (only 31 opcodes found, should be >= 70)
> STATUS: VULNERABLE (heuristic to be improved when official patches become available)
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
* Hardware (CPU microcode) support for mitigation: NO
* Kernel support for IBRS: NO
* IBRS enabled for Kernel space: NO
* IBRS enabled for User space: NO
* Mitigation 2
* Kernel compiled with retpoline option: NO
* Kernel compiled with a retpoline-aware compiler: NO
> STATUS: VULNERABLE (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI): YES
* PTI enabled and active: YES
> STATUS: NOT VULNERABLE (PTI mitigates the vulnerability)
Update 25. Januar 2018
Das spectre-meltdown-checker
Skript wird offiziell von Debian gepackt und ist für Debian Stretch über das Backports-Repository, Buster und Sid verfügbar .
Speculative Store Bypass (SSB) - auch als Variante 4 bekannt
Systeme mit Mikroprozessoren, die eine spekulative Ausführung und eine spekulative Ausführung von Speicherlesevorgängen verwenden, bevor die Adressen aller früheren Speicherschreibvorgänge bekannt sind, können die unbefugte Weitergabe von Informationen an einen Angreifer mit lokalem Benutzerzugriff über eine Seitenkanalanalyse ermöglichen.
Rogue System Register Read (RSRE) - auch als Variante 3a bekannt
Systeme mit Mikroprozessoren, die eine spekulative Ausführung verwenden und spekulative Lesevorgänge von Systemregistern durchführen, können einem Angreifer mit lokalem Benutzerzugriff über eine Seitenkanalanalyse die unbefugte Offenlegung von Systemparametern ermöglichen.
Bearbeiten 27. Juli 2018
NetSpectre: Beliebigen Speicher über das Netzwerk lesen
In diesem Artikel stellen wir NetSpectre vor, einen neuen Angriff, der auf Spectre-Variante 1 basiert und keinen vom Angreifer gesteuerten Code auf dem Zielgerät erfordert. Dies wirkt sich auf Milliarden von Geräten aus. Ähnlich wie bei einem lokalen Spectre-Angriff erfordert unser Remote-Angriff das Vorhandensein eines Spectre-Gadgets im Code des Ziels. Wir zeigen, dass Systeme, die die erforderlichen Spectre-Gadgets in einer exponierten Netzwerkschnittstelle oder -API enthalten, mit unserem generischen Spectre-Remoteangriff angegriffen werden können, sodass beliebiger Speicher über das Netzwerk gelesen werden kann. Der Angreifer sendet nur eine Reihe von gestalteten Anforderungen an das Opfer und misst die Antwortzeit, um einen geheimen Wert aus dem Speicher des Opfers zu entfernen.