Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018

Die Seite wird erstellt Manuel Wieland
 
WEITER LESEN
Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
Sicherheitsupdate
Meltdown und Spectre

     @cmitasch
Christoph Mitasch, Thomas-Krenn.AG

Webinar, 14. März 2018
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
Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
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
Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
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
Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
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
Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
Agenda
_ Welche CPUs sind betroffen?
_ Gefährdungspotential unterschiedlicher Systeme (Cloud, Server,
  Desktop, …)
_ Schutzmöglichkeiten
_ Auswirkungen auf die Performance
_ Ausblick

                                                                   6
Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
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
Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
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
Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
Agenda
_ Welche CPUs sind betroffen?
_ Gefährdungspotential unterschiedlicher Systeme (Cloud, Server,
  Desktop, …)
_ Schutzmöglichkeiten
_ Auswirkungen auf die Performance
_ Ausblick

                                                                   9
Sicherheitsupdate Meltdown und Spectre - @cmitasch Christoph Mitasch, Thomas-Krenn.AG Webinar, 14. März 2018
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