Update zu CPU Bugs
Daniel Baumann
daniel.baumann at bfh.ch
Fri Jan 5 05:02:39 CET 2018
Hallo zusammen,
hier der aktuelle Stand/Zusammenfassung zu den kuerzlich bekannt
gewordenen CPU Bugs.
1. Unterschiedliche Varianten
=============================
Es gibt konzeptionell drei unterschiedliche Methoden,
unberechtigt Speicher auszulesen:
a) Variante 1 (CVE-2017-5753) "bounds check bypass"
b) Variante 2 (CVE-2017-5715) “branch target injection”
c) Variante 3 (CVE-2017-5754) “rogue data cache load”
Variante 1 und 2 ist auch bekannt als "Spectre"
https://spectreattack.com/, Variante 3 als "Meltdown"
https://meltdownattack.com/
Fuer mehr Informationen siehe anstatt vieler:
[deutsch]
https://www.golem.de/news/memory-leak-bug-in-intel-cpus-ermoeglicht-zugriff-auf-kernelspeicher-1801-131938.html
[english]
https://lwn.net/Articles/742702/
(fuer non-subscribers:
https://lwn.net/SubscriberLink/742702/968aa71c470bfa68/)
2. Betriebssystem und CPU/Architecture unabhaengig
==================================================
Die gefundenen Bugs lassen sich auf praktisch allen modernen CPUs
unabhaengig vom eingesetzten Betriebssystem ausnutzen.
Betroffen sind nicht nur Intel, sondern mindestens auch (trotz z.T.
voreilig anderstlautenden Statments) AMD, ARM und PPC.
Als momentan vermutlich sicher gelten Sparc und s390.
3. Kein "one size fits all" Fix
===============================
Da die drei Varianten sehr unterschiedlich sind, gibt es keinen
einzelnen Fix. Schlimmer noch:
* Spectre eroeffnet eine ganz neue Klasse von Angriffen und Problemen.
Dies wird vermutlich in vielen anderen Stellen der CPUs wiederum
auftauchen und wird die IT Industrie noch Jahre verfolgen.
* Spectre laesst sich nicht ohne Austausch der Hardware beheben,
sondern nur etwas erschweren oder eingrenzen.
* Massnahmen in Software sind jeweils spezifisch pro CPU Modell, d.h.
fuer z.B. Intel muessen fuer hunderte von CPU Modellen/Variationen
der letzten ~10 Jahre Microcode Updates erstellt werden.
4. Kein "yet another" Bug
=========================
Ohne kuenstlich Krisenstimmung verbreiten zu wollen: die Bugs sind sehr
ernst zu nehmen und betreffen insbesondere Enduser.
Praktisches Beispiel zur Illustration: Benutzer besucht (direkt oder
indirekt) eine Webseite, welche unbemerkt per Javascript uebers Netz den
Speicher des lokalen Systems ausliest und so Passwoerter und sensible
Daten an den Angreifer uebermittelt. Davon sind auch unzaehliche Mobile
Devices (insbesondere iPhones) betroffen.
Damit bekommt der Schutz von Webservern und Webseiten aktuell ein noch
staerkeres Gewicht da darueber sehr viele Nutzer angegriffen werden
koennen, sowie natuerlich die ICT-Kompetenzen eines jeden Einzelnen.
5. Linux spezifische Fixes
==========================
Da man nicht alle Hardware ersetzen will oder kann (und es sowieso noch
eine Weile keine korrekt funktionierende Hardware gibt, resp. dies noch
einige Zeit/Jahre in Anspruch nehmen wird, da erstmal weitere Teile der
CPU serioes auf die gleiche Anfaelligkeit ueberprueft werden muessten),
wird versucht, die Probleme per Software zu loesen.
Fuer Linux sieht das momentan so aus (*kumulativ*!):
* Microcode Updates von Intel (noch nicht offiziell released),
welche von div. Betriebssystem-Herstellern, Hardware-Herstellern
und Cloud-Betreibern fuer einige CPU Modelle schon "grau" verteilt
werden.
Ein Update des intel-microcode Debian Pakets wird in Kuerze folgen,
fuer amd-microcode gibt es bisher keine Informationen oder Updates
(von AMD).
(Zur Erklaerung: Microcode ist eine Art Firmware, die gewisse
Funktionen und Einstellungen einer CPU zur Laufzeit
veraendern/einstellen kann. Diese muss bei jedem Start des Computers
neu in die CPU hochgeladen werden und wird typischerweise vom Bios
gemacht (darum sind Bios Updates wichtig ;). Unter Linux werden
die Microcode Updates vom Kernel gemacht, so muss man nicht Bios
Updaten um aktuellen Microcode zu haben)
* Kernel Patches:
- Kernel page-table isolation (KPTI), ab 4.14.11 (sowie
in Security Updates von einigen aelteren Kernel) enthalten.
- retpoline,
momentan im Review, gibt noch keine Releases mit den Patches.
- Indirect branch prediction barrier (IBPB),
momentan im Review, gibt noch keine Releases mit den Patches.
* Compiler Fixes:
- Um Variante 2 (Spectre) in Software zu fixen, muessen auf
Compiler-Ebene anderer Machinencode generiert werden.
- Dies bedeutet dass *alle* Binaries (= Debian Pakete) neu
kompiliert werden muessen, d.h. das "Security-Update" dazu kommt
einer Neu-Installation (!= Neu-Konfiguration) eines Systems
gleich.
- Mindestens gcc und lvm (clang) muessen dazu Updates erhalten,
ggf. noch weitere Compiler fuer Nischensprachen. Dazu gibt es
Momentan noch keinen Zeithorizont.
* Browser:
- Browser koennen einen Teil der Angriffe lindern durch eine
dezidierte Pruefung der Speicherzugriffe der eigenen Prozesse.
- Grundsaetzlich waere dies schon immer wuenschenswert gewesen,
wurde aber aus Zeit/Ressourcen/Speed-Gruenden bisher nie gemacht.
- Aufgrund der grossen Angriffsflaeche erwarten wir Updates
aller gaengiger Browser in Kuerze, es gibt momentan aber noch
wenig Informationen dazu.
6. Weitere Informationen
========================
Die von Googles Security Team entdeckten Bugs wurden im Juni 2017 an
Intel gemeldet. Seit ca. Mitte November wird dort an der
Problemloesung/Workarounds gearbeitet.
Bis am 9.1.2018 wurde ein allgemeines Stillschweigen vereinbart, das
Embargo wurde allerdings von einige Missachtet und so wurden schon am
3.1.2018 Informationen geleakt.
Seither wird an vielen Stellen an den Problemen gearbeitet und es kommen
laufend weitere Informationen und Erkenntnisse dazu. Wir bleiben fuer
euch am Ball und halten euch auf dem Laufenden und informieren wieder,
sobald Updates vorhanden und/oder Reboots von Systemen notwendig werden.
Hier eine Liste aller relevanten Informationen im Netz:
Primaerquellen (english)
------------------------
https://googleprojectzero.blogspot.ch/2018/01/reading-privileged-memory-with-side.html
https://security.googleblog.com/2018/01/more-details-about-mitigations-for-cpu_4.html
https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html
Aufarbeitungen (english)
------------------------
https://lwn.net/Articles/742702/
(fuer non-subscribers:
https://lwn.net/SubscriberLink/742702/968aa71c470bfa68/)
https://lwn.net/Articles/742999/
Aufarbeitungen (deutsch)
------------------------
https://www.golem.de/news/memory-leak-bug-in-intel-cpus-ermoeglicht-zugriff-auf-kernelspeicher-1801-131938.html
https://www.golem.de/news/spectre-und-meltdown-cpu-bugs-sind-laut-google-schon-seit-juni-2017-bekannt-1801-131958.html
https://www.golem.de/news/spectre-und-meltdown-all-unsere-moderne-technik-ist-kaputt-1801-131961.html
https://www.heise.de/security/meldung/Massive-Luecke-in-Intel-CPUs-erfordert-umfassende-Patches-3931562.html
Gruesse,
Daniel
--
Berner Fachhochschule / Bern University of Applied Sciences
IT-Services / Team Infrastructure Services
Daniel Baumann
IT System Engineer Linux
___________________________________________________________
Dammweg 3, CH-3013 Bern
Phone direct +41 31 848 48 22
Phone Servicedesk +41 31 848 48 48
daniel.baumann at bfh.ch
https://servicedesk.bfh.ch
https://www.bfh.ch
https://linux.bfh.ch
More information about the bfh-linux-announce
mailing list