Am 03. Januar hat das Projekt Zero - Team ein Advisory veröffentlicht, indem sie vor einer Reihe Sicherheitslücken warnen, mit der sich auf allen modernen CPUs geschützte Speicherbereiche von privilegierten Prozessen auslesen lassen (Spectre, Meltdown)
"We have discovered that CPU data cache timing can be abused to efficiently leak information out of mis-speculated execution, leading to (at worst) arbitrary virtual memory read vulnerabilities across local security boundaries in various contexts.
Variants of this issue are known to affect many modern processors, including certain processors by Intel, AMD and ARM. For a few Intel and AMD CPU models, we have exploits that work against real software. We reported this issue to Intel, AMD and ARM on 2017-06-01 (1)
Betroffen sind davon Server- und Desktopversionen aller Betriebssysteme (Windows, OSX, Linux, *BSD), wobei die Bedrohungslage für die einzelnen Systeme unterschiedlich zu bewerten ist.
Detaillierte Informationen zu den Sicherheitslücken geben Google's Project Zero Blog und die eigens eingerichteten Webseiten mit Erklärungen und FAQ unter spectreattack.com (PDF) und meltdownattack.com (PDF)
Dass bereits POCs existieren zeigt Michael Schwarz in einem kurzen Video: Using #Meltdown to steal passwords in real time
Für alle, die sich einen schnellen Überblick verschaffen wollen hat Daniel Mieser (8) eine kurze Einführung erstellt:
Updates
- 2018-01-06 - mehr Quellen und Links zu weiteren Informationen
- 2018-01-09 - POCs getestet
Mitigation
Da es sich hier um einen Hardware-Bug handelt müssen die jeweiligen Betriebssysteme gepatcht werden, Updates sind umgehend einzuspielen.
Einschätzung der Bedrohungslage
Nachfolgend eine Einschätzung für die einzelnen Systeme auf einer Skala von
- 0 - unkritisch
- 1 - Lücke nur durch lokalen Rootzugriff ausnutzbar
- 2 - Lücke nur durch lokalen User ausnutzbar
- 3 - Lücke Remote durch lokalen User ausnutzbar (Client)
- 4 - Lücke Remote User ausnutzbar (Server, Cloud)
- 5 - Lücke Remote unprivilegiert ausnutzbar (wie z.B. Heartbleed)
Desktops, Notebooks, Smartphones
- Bedrohungslevel: 3
-
POC bestätigt durch Mozilla(14)
-
Betroffen: Windows, iPhone, Android, OSX, Linux
Per Default ist die Lücke nicht aus der Ferne ausnutzbar, kann aber auf Clients z.B. durch einen Browserbug oder bösartiges Javascript ausgenutzt werden.
Besondere Vorsicht ist bei unbekannten Seiten geboten, im Zweifelsfall sollte Javascript deaktiviert werden.
Für Chrome gibt es einen Workaround (via Googles FAQ) Chrome: Full Site Isolation can be turned on by enabling a flag found at chrome://flags/#enable-site-per-process
Bare Metal Server
- Bedrohungslevel: 2
- POC bestätigt durch zeroBS
Bare-Metal-Server sind nur durch lokale User gefährdet, sofern diese in der Lage sind, eigene Programme zu installieren und Code auszuführen.
private Cloud
- Bedrohungslevel: 2
- POC bestätigt durch zeroBS
Private-Cloud-Server sind nur durch lokale User gefährdet, sofern diese in der Lage sind, eigene Programme zu installieren und Code auszuführen.
public Cloud, Shared Hosts
- Bedrohungslevel: 4
- POC bestätigt durch zeroBS
User von Shared Hosts oder Public Clouds sind extrem gefährdet, da andere Benutzer Speicherbereiche auslesen können.
Dies gilt vornehmlich für Paravirtualisierung (XEN, Windows HA) und Container (Docker, Kubernetes, LXC).
Hier obliegt es den Providern und Anbietern, die Lücken zu patchen und Systeme neuzustarten.
Patch - großen Einfluß auf die Performance
Patches der verschiedenen Hersteller können starken Einfluß auf die Performance haben. Aktuelle Linux-Patches zeigen eine bis zu 50% erhöhte CPU-Auslastung, die durch die notwendigen Kontext-Switches hervorgerufen wird, siehe auch: reddit: Datacenter Performance Questions
Proof-of-Concepts
Wir haben uns einige POCs angesehen, auf eigener Infrastruktur (Bare Metal, Cloud, Docker) getestet und können die Bedrohungslage Public Cloud, Shared Hosting und Docker/Container-Umgebungen bestätigen:
Docker (aktuelles Debian, vor dem Update)
sirius@60c71a20378d:~/meltdown: ./meltdown-checker
Unable to find symbol sys_call_table in /proc/kallsyms
Falling back on the alternative symbol map file (usually requires root permission): /boot/System.map-3.16.0-0.bpo.4-amd64...
Checking whether system is affected by Variant 3: rogue data cache load (CVE-2017-5754), a.k.a MELTDOWN ...
Checking syscall table (sys_call_table) found at address 0xffffffff81601440 ...
0xffffffff811c08f0 -> That's SyS_read
System affected! Please consider upgrading your kernel to one that is patched with KPTI/KAISER
Check https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html for more details
Cloud/KVM (aktuelles Debian, vor dem Update)
[ slater@ck1 :~/meltdown] > make
g++ -I. --std=c++11 -O0 --no-pie -fPIC -mrtm -DHAS_COMPILER_RTM_SUPPORT -c -o meltdown_checker.o meltdown_checker.cc
g++ -I. --std=c++11 -O0 --no-pie -fPIC -mrtm -DHAS_COMPILER_RTM_SUPPORT -o meltdown-checker meltdown_checker.o
[ slater@ck1 :~/meltdown] > ./meltdown-checker
Unable to find symbol sys_call_table in /proc/kallsyms
Falling back on the alternative symbol map file (usually requires root permission): /boot/System.map-3.16.0-4-amd64...
Checking whether system is affected by Variant 3: rogue data cache load (CVE-2017-5754), a.k.a MELTDOWN ...
Checking syscall table (sys_call_table) found at address 0xffffffff81601440 ...
so far so good (i.e. meltdown safe) ...
0xffffffff811affa0 -> That's SyS_write
System affected! Please consider upgrading your kernel to one that is patched with KPTI/KAISER
Check https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html for more details
Weitere POCs:
Weiterführende Quellen und Informationen
Neben den unten angegebenen Referenzen gibt es weiter Seiten, die Links und Informationen zu Meltdown und Spectre sammeln.
Auf Reddit gibt es einen Mega-Thread zu dem Thema
BleepingComputer pflegt eine Liste mit Links zu Advisories und Patches
Reddit-TOC
Relevant Sub-Threads and links on Meltdown & Spectre:
US CERT link on the subject
Guidance to protect against Meltdown
Datacenter Performance Question
Hypervisor Patching
Useful Links
Twitter Thread
Powershell script
Another Windows Update Thread
AV Compatibility
Deciding when not to patch
Microsoft rebooting VMs
Intel's response to Security Findings
AWS' response to Security Findings
Lansweeper Report
VMWare Security Advisory
VMWare Blog on the subject
Cisco's Security Advisory
Juniper's Statement
Jake Williams Article on suggested guidance
HPE's customer bulletin
/R/Networking Vendor Response Thread
IBM Cloud's Response
Dell's KB Bulletin
Chromium advice for web developers
Referenzen
- Project Zero: Reading privileged memory with a side-channel
- spectreattack.com (PDF)
- meltdownattack.com (PDF)
- Apple: About speculative execution vulnerabilities in ARM-based and Intel CPUs
- Google’s Mitigations Against CPU Speculative Execution Attack Methods
- M. Schwarz: Using #Meltdown to steal passwords in real time
- A. Singh: This is what the #Meltdown patch looks like.
- D. Miessler: A Simple Explanation of the Differences Between Meltdown and Spectre
- reddit:Stealing passwords via Meltdown vulnerability in real-time
- reddit: Meltdown and Spectre (CPU bugs)
- Hackernews: Reading privileged memory with a side-channel
- reddit: Meltdown & Spectre Megathread (self.sysadmin)
- Mozilla: Mitigations landing for new class of timing attack
- Bleepingcomputer: List of Meltdown and Spectre Vulnerability Advisories, Patches, & Updates
Fragen? Kontakt: info@zero.bs