Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Sicherheitsupdate Meltdown und Spectre @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
Über mich _ Christoph Mitasch _ seit 2005 bei der Thomas-Krenn.AG Niederlassung Österreich _ Diplomstudium Computer- und Mediensicherheit _ Erfahrung in Web Operations, Linux und HA _ Cyber-Security-Practitioner 2
Chronologie _ 1. Juni 2017: Hersteller von Google über Spectre informiert _ 28. Juli 2017: Hersteller über Meltdown informiert _ 3. Jänner 2018: Disclosure Spectre und Meltdown, 6 Tage vor vereinbarten Termin 9.1.2018 _ 4. Jänner 2018: Intel Microcode Updates _ 22. Jänner 2018: Intel Microcode Updates zurückgezogen „...as they may introduce higher than expected reboots...“ _ 20. Februar 2018: neue Intel Microcode Updates für Kaby Lake, Coffee Lake und Skylake-basierte CPUs 3
Meltdown/Spectre kurz erklärt _ Moderne CPUs führen Befehle im Voraus spekulativ aus → hoher Leistungsgewinn, da CPU viel schneller als alles andere ist = Out of Order Excecution _ Bei Fehlspekulationen werden Ergebnisse verworfen _ Cache-Inhalt wird aber leider nicht sauber aufgeräumt _ auf Cache kann nicht direkt zugegriffen werden, Rückschlüsse aber u.a. über Zugriffsgeschwindigkeit möglich → Seitenkanal-Angriff 4
3 Varianten _ Spectre (Schreckgespenst) _ Variante 1 - bounds check bypass – CVE-2017-5753 _ während Längenprüfung der CPU werden Daten spekulativ gelesen _ Speichergeschwindigkeiten müssen exakt gemessen werden können _ z.b. via Javascript in Browser ausnutzbar _ Variante 2 - branch target injection – CVE-2017-5715 _ Branch Target Buffer (BTB) wird manipuliert _ unprivilegiertes Programm kann via Cache Kernel-Speicher auslesen z.b. von VM aus Speicher des Hypervisors lesen _ Meltdown (Kernschmelze) _ Variante 3 - rogue data cache load – CVE-2017-5754 _ Zugriff auf geschützte Daten von Schadprogramm _ bis es die CPU verbietet, wird weiter spekuliert und im Cache Spuren hinterlassen. _ unpriviligierter Prozess kann auf Kernel-Speicher zugreifen Quelle: https://www.heise.de/ix/heft/Gespensterjagd-3948309.html 5
Agenda _ Welche CPUs sind betroffen? _ Gefährdungspotential unterschiedlicher Systeme (Cloud, Server, Desktop, …) _ Schutzmöglichkeiten _ Auswirkungen auf die Performance _ Ausblick 6
Betroffene CPUs Intel AMD POWER Spectre, Variante 1 Spectre, Variante 2 Meltdown, Variante 3 _ Nicht betroffen sind: _ x86-Prozessoren vor 1995 _ CPUs ohne Speculative Execution oder Out-of-order execution z.B. Atom-Prozessoren vor 2013, Itanium-Architektur _ die meisten ARM CPUs (aktuell nur 11 Cortex CPUs betroffen) _ Rasperry PI ;-) 7
Intel CPUs _ Aktueller Linux Kernel gibt Auskunft ob CPU betroffen ist $ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Celeron(R) CPU G1820T @ 2.40GHz ... microcode : 0x22 ... flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer xsave rdrand lahf_lm abm epb invpcid_single retpoline kaiser tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust erms invpcid xsaveopt dtherm arat pln pts bugs : cpu_meltdown spectre_v1 spectre_v2 ... _ Performance Impact für Meltdown Patches durch folgende Flags deutlich reduziert: PCID (process context indentifier), INVPCID _ Bei Intel CPU mit Microcode Update: spec_ctrl Flag 8
Agenda _ Welche CPUs sind betroffen? _ Gefährdungspotential unterschiedlicher Systeme (Cloud, Server, Desktop, …) _ Schutzmöglichkeiten _ Auswirkungen auf die Performance _ Ausblick 9
Gefährdungspotential _ Meltdown und Spectre 1 leicht ausnutzbar _ Spectre 2 komplizierter auszunutzen _ Angriffsversuche werden mehr _ Automat. Anpassung für verschiedene Chip-Architekturen schon in Arbeit 10
Gefährdungspotential _ Hohes Risiko: _ Desktop, Browser _ Cloud _ VMs _ Mittleres Risiko: _ eigene VMs die nicht an Externe vermietet werden _ Bare-Metal Server 11
Angriffszenarien _ Server: _ Meltdown: Ausbrechen aus VM nicht möglich (außer PV) vom Hypervisor auch auf VMs → z.b. Shared Webhosting stark betroffen _ Spectre 2: Ausbrechen aus VM möglich _ Desktop: _ Meltdown: Schadsoftware kann Passwörter aufzeichnen _ Spectre 1: Javascript Code auf Webseiten kann Zugangsdaten stehlen 12
Agenda _ Welche CPUs sind betroffen? _ Gefährdungspotential unterschiedlicher Systeme (Cloud, Server, Desktop, …) _ Schutzmöglichkeiten _ Auswirkungen auf die Performance _ Ausblick 13
Linux _ /sys/devices/system/cpu/vulnerabilities/* $ cat /sys/devices/system/cpu/vulnerabilities/* Mitigation: PTI Mitigation: OSB (observable speculation _ Spectre/Meltdown Checker barrier, Intel v6) Mitigation: Full generic retpoline _ https://github.com/speed47/spectre-meltdown-checker -v Option bietet zusätzliche Infos, --batch nrpe für Icinga Check 14
Linux 15
Linux Meltdown/Spectre 1 Schutz _ Meltdown: PTI = Page Table Isolation _ Synonym KPTI, Vorläufer KAISER _ bessere Trennung der Kernel- und User-Space Speicherbereiche _ Overhead durch PCID CPU-Feature reduziert (seit Mitte 2013 verfügbar) _ nur für 64-Bit verfügbar _ Kernel-Parameter „nopti“, „pti=on/off/auto“ _ Spectre Variante 1 _ anfällige Stellen im Kernel besser abgesichert: _ mit LFENCE Instruktion _ mit array_index_nospec() Makro 16
Linux Spectre 2 Schutz _ Spectre Variante 2 _ Kernel-Patch nutzt neue CPU-Funktionen IBPB, IBRS und STIBP _ Microcode Update erforderlich _ Ubuntu/Debian: intel-microcode Paket, muss extra installiert werden _ RedHat: microcode_ctl Paket _ Anfang Jänner veröffentlichte Microcode Updates in Distros wieder zurückgezogen _ Microcode kann zur Laufzeit aktualisiert werden (echo 1 > /sys/devices/system/cpu/microcode/reload) _ „nospectre_v2“, „spectre_v2=on/off/auto/retpoline/retpoline,generic/retpoline,amd“ _ Retpoline Patch von Google _ kein Microcode Update erforderlich _ performanter als Microcode Variante _ Kernel und kritische Anwendungen müssen mit gepatchten Compiler übersetzt werden _ in Vanilla Kernel 4.15 integriert _ Skylake CPUs nicht geschützt dadurch _ Schutz für VMs nicht ausreichend → dzt. neuer CPU Microcode erforderlich 17
Windows Desktop _ alle aktuellen Windows Versionen betroffen _ Windows XP, Vista und 8.0 bekommen kein Update _ Antiviren-Software muss Registry Key setzen, damit Update überhaupt installiert wird _ Microcode Updates sollen zukünftig doch via Windows Update ausgeliefert werden https://support.microsoft.com/en-us/help/4090007/intel-microcode-updates _ 32 Bit Updates sind später aber doch erschienen 18
Windows Server _ Virenschutz Support ebenfalls notwendig _ Schutz ist per Default deaktiviert → muss via Registry Keys aktiviert werden _ Erhöhtes Risiko für Spectre/Meltdown laut Microsoft: _ Hyper-V-Hosts – Erfordert Schutz vor Angriffen zwischen VMs sowie zwischen VMs und Hosts. _ Remotedesktopdienste-Hosts (Remote Desktop Services Hosts, RDSH) – Erfordert Schutz vor Angriffen zwischen Sitzungen oder zwischen Sitzungen und Hosts. _ Für physische Hosts oder virtuelle Computer, auf denen nicht vertrauenswürdiger Code ausgeführt wird, wie etwa Container oder nicht vertrauenswürdige Datenbankerweiterungen, nicht vertrauenswürdige Webinhalte oder Workloads, für die von externen Quellen bereitgestellter Code ausgeführt wird. Erfordert Schutz vor Angriffen zwischen nicht vertrauenswürdigen Prozessen oder zwischen einem nicht vertrauenswürdigen Prozess und dem Kernel. 19
Windows Server _ für Windows Server 2012 und 2008 dzt. kein Update verfügbar Quelle: https://support.microsoft.com/de-de/help/4072698/windows-server-guidance-to-protect-against-the-speculative-execution 20
Windows _ PowerShell-Modul SpeculationControl _ https://gallery.technet.microsoft.com/scriptcenter/Speculation-Control-e36f0050 _ Prüfen auf Schutz vor Spectre 2 und Meltdown 21
Browser, GPU, VMware _ Browser aktualisieren _ Grafikkarten sind teilweise auch betroffen → Treiber aktualisieren _ VMware _ Hypervisor von Spectre 1 und 2 betroffen _ Integrierte Microcode Updates wieder zurückgezogen _ Virtual Appliances: von allen 3 Angriffs-Varianten betroffen u.a. vCenter Server 6.0/6.5, vSphere Data Protecion, Identity Manager, ... _ https://kb.vmware.com/s/article/52245 22
Agenda _ Welche CPUs sind betroffen? _ Gefährdungspotential unterschiedlicher Systeme (Cloud, Server, Desktop, …) _ Schutzmöglichkeiten _ Auswirkungen auf die Performance _ Ausblick 23
Auswirkungen auf die Performance _ Systeme mit SSDs und NVMe SSDs besonders betroffen _ Stark abhängig von Workload _ mit sehr vielen Syscalls großer Overhead _ PTI laut Brendan Gregg 1-800% Overhead auf Syscalls 24
Benchmarks _ Vergleich von Kernel 4.14, 4.15, 4.16(RC) sowie ohne KPTI und Retpoline, mit Intel Xeon Gold 6138 (Skylake) _ Random/Seq. Read & Seq. Write Random Write → kaum Auswirkungen → massive Auswirkungen Quelle: https://www.phoronix.com/scan.php?page=article&item=linux-416early-spectremelt 25
Benchmarks _ Apache: Statische Webseite _ PostgreSQL _ R/W Workload Normal _ R/W Workload Minimal Quelle: https://www.phoronix.com/scan.php?page=article&item=linux-416early-spectremelt 26
Agenda _ Welche CPUs sind betroffen? _ Gefährdungspotential unterschiedlicher Systeme (Cloud, Server, Desktop, …) _ Schutzmöglichkeiten _ Auswirkungen auf die Performance _ Ausblick 27
Ausblick _ Schutz derzeit immer als Mitigation (= Minderung) bezeichnet _ Patches werden laufend erweitert und verbessert _ Nicht-Einspielen der Patches sicherheitstechnisch kaum eine Option _ Neue CPUs werden unter Umständen noch Jahre dauern _ BIOS Updates bei Thomas-Krenn _ Update für X11DPi-N/NT und H11DSi-NT verfügbar _ Test von X10-Boards steht unmittelbar bevor _ für X8, X9 sowie Asus Boards dzt. noch keine Updates der Mainboard-Hersteller verfügbar _ https://www.supermicro.com/support/security_Intel-SA-00088.cfm _ https://www.thomas-krenn.com/de/wiki/Sicherheitshinweise_zu_Meltdown_und_Spectre 28
Vielen Dank für Ihre Aufmerksamkeit! 29
Sie können auch lesen