Meltdown und Spectre – Lehren aus dem Desaster ? – I – Die letzte Warnung

Als WannaCry und SambaCry 2017 die IT-Welt in Aufruhr versetzten, wurde ein paar fundamentale Dilemmata IT-gestützter Informationsgesellschaften deutlich:

  • Hardware und Software sind nie fehlerfrei – auch OpenSource Software nicht.
  • Es kann fundamentale, hochkritische Fehler geben, die von interessierten Kreisen über entsprechende Schadcodes lange Zeit genutzt werden, ohne dass die Schwachstellen öffentlich gemacht würden.
  • Auch staatliche “Sicherheits”-Organe sind gegen das Abgreifen von selbst entwickelten Angriffsverfahren durch kriminelle Organisationen und feindliche Staaten nicht zu 100% gefeit. Der Staat als (ggf. durch ein Parlament legitimierter) Hacker ist daher nicht nur als Schutzfaktor, sondern auch als ungewollte indirekte Gefahrenquelle zu begreifen.
  • Es kann Schwachstellen geben, die über hinreichend intelligent gestrickte Angriffs-Software und gesteuerte Angriffswellen über BOT-Netze innerhalb kürzester Zeit zu einer weltweiten Bedrohung werden können – und zwar auch für die sensiblen Infrastrukturen von Industriestaaten.
  • Es ist ein gigantischer Fehler, von wenigen HW-Produzenten und Betriebssystem-Herstellern abhängig zu sein – und im Ernstfall keine Alternativen zu haben. In diesem Sinne sind wir in Westeuropa fast alle abhängig von der IT-Supermacht USA. Das beklagte zuletzt ja sogar unser amtierender Außenminister auf der DLD-Konferenz.

Meltdown/Spectre verschärfen alle diese Punkte – und lassen sie im Sinne einer globalen Verwundbarkeit von uns allen in neuem Licht erscheinen. Nun haben wir also noch eine ganze Weile mit Meltdown/Spectre zu leben. Der Unterschied ist diesmal: Fast alle gängigen IT-Systeme sind angreifbar, da die Schwachstellen in den Prozessoren selbst stecken. SW-Updates werden möglicherweise nur begrenzt helfen; z.Z. gibt es noch kein Heilmittel gegen bestimmte Varianten von Angriffen nach dem Spectre-Muster. Die Nerven der Beteiligten liegen deshalb auch auf der Linux-Seite blank – siehe
https://www.heise.de/newsticker/meldung/Absoluter-Muell-Linus-Torvalds-verliert-die-Geduld-mit-Spectre-Patches-3948756.html.

Ich behaupte deshalb mal: Meltdown/Spectre sind – genau wie WannaCry eine Art letzter Warnung, die erneut verdeutlicht auf welch dünnem Eis unsere modernen Gesellschaften leben – nicht zuletzt auch durch bestehende Abhängigkeiten von einigen wenigen IT-Monopolisten.

Jeder, der sich einmal mit der Abhängigkeit moderner Industrie- und Informationsgesellschaften wie Deutschland von funktionierender IT auseinandergesetzt hat, weiß, dass wir extrem verwundbar sind: Ein dauerhafter Zusammenbruch grundlegender und infrastrukturell relevanter IT-Netzwerke und -Systeme würde uns in kürzester Zeit in wahrhaft katastrophale Zustände katapultieren.

Zeit für ein paar Gedanken zu möglichen Lehren aus dem aktuellen Desaster, die in der aktuellen Debatte weniger angesprochen werden …. Weniger technik-affine Leser, die sich erst in die Thematik einarbeiten wollen oder müssen, seien auf die Links weiter unten verwiesen.

Ich teile meine Kommentare in mehrere Beiträge auf, da mich einige Bekannte (Linux-Nutzer) vor kurzem auch gefragt haben, was sie den nun konkret tun sollten.

Schwachstellen und Angriffsverfahren

Meltdown und Spectre stellen bislang Angriffsmuster dar und noch (!?) keinen vollständigen, massenhaft einsetzbaren Schadcode. Sie beruhen nach dem, was ich dazu gelesen habe, auf zwei Aspekten moderner Prozessoren, die in ihrer Kombination zu angreifbaren Schwachstellen führen:

  • Das spekulative Ausführen von Programm-Code auf Basis von
    Heuristiken, bevor das Ergebnis solcher Code-Fragmente in der Ausführung einer Anwendung faktisch benötigt wird. Die Bevorratung der Ergebnisse derartiger “transienter Instruktionen” dient der Performance praktisch aller moderner Computer-Prozessoren. Bei der spekulativen Code-Ausführung wird z.Z. auf verschiedenen Prozessortypen nicht hinreichend geprüft, ob in einem bestimmten Ausführungskontext hinreichende Berechtigungen vorliegen.
  • Seiteneffekte beim Einlagern von (vorausberechneten) Daten in Prozessor-Caches, die erstens erkennen lassen, ob die Daten einer spekulativen Codeausführung entstammen und die in Kombination mit bestimmten, schon länger bekannten Verfahren den ungehinderten Zugriff auf solche Daten auch durch unberechtigte Prozesse/Programme ermöglichen. Durch geschickte Manipulationen der spekulativen Codeausführung kann man das Exception-Handling beeinflussen und über den Cache systematisch auf ganze Speicherbereiche mit hinreichender Geschwindigkeit zugreifen.

Wie genau diese Effekte ausgenutzt werden können, ist u.a. von der Prozessorarchitektur und der Art der Caching-Seiteneffekte abhängig. Bei Meltdown greift man dabei den eigenen Speicherbereich an, in den allerdings auch globale Speicherinhalte eingeblendet sind, die normalerweise nur in bestimmten Prozessormodes und nicht direkt durch einen unberechtigten User-Prozess ausgelesen werden können – wohl aber im Rahmen der spekulativen Ausführung von Codefragmenten.
Meltdown betrifft Intel-Prozessoren.

Bei Spectre werden Speicherbereiche fremder Prozesskontexte (anderer User) angegriffen. Für Spectre-basierte Angriffe sind intime Kenntnisse von Anwendungen und auch des Betriebssystems erforderlich. Das spekulative Verhalten des Prozessors wird dabei vorab auf bestimmte Annahmen hin “trainiert”. Spectre betrifft (zumindest in einer Variante) sehr viele Prozessortypen unterschiedlicher Hersteller.

Die Zugriffsverfahren auf Prozessor-Cache-Inhalte über Seitenaspekte (und z.B. Zeitanalysen) wurden bereits seit mehreren Jahren erforscht. Dass das Zusammenspiel mit spekulativer Codeausführung erst jetzt als fundamentaler Gefahrenpunkt erkannt wurde, mutet etwas seltsam an und offenbart im besten Fall die Blickfeldeinschränkung, von der auch Sicherheitsexperten nicht verschont bleiben, wenn sie sich auf ein spezielles Problem konzentrieren. Über den schlechteren Fall mag ich gar nicht nachdenken … In jedem Fall scheint zu gelten: Professionell durchgeführte Angriffe auf Basis der Schwachstellen würden kaum Spuren in den betroffenen Systemen hinterlassen.

Nun wurden die Schwachstellen, die seit vielen Jahren existieren, im Juni letzten Jahres publiziert und kommuniziert. Seitdem sind 7 Monate vergangen. Auch das ist ein erheblicher Zeitraum. Die schlimmsten Schwachstellen und Bedrohungen sind diejenigen, die wir nicht mal erkannt haben. Im Moment wurden wir uns nur der Schwachpunkte und Gefahren bewusst; ob sie nicht bereits ausgenutzt wurden, kann niemand sagen.

Angriffe?

Aus meiner Sicht haben die Teams, die die Schwachstellen entdeckt bzw. untersucht haben, bereits relativ detailliert aufgezeigt, wie und aus welchen Angriffswinkeln heraus man Angriffstools konstruieren muss. Gegen Meltdown in Intel-Prozessoren können Kernelmodifikationen der Betriebssysteme schützen. Das ist für relevante aktuelle und LTS-Linux-Kernel bereits der Fall. Spectre-Angriffe sind dagegen komplex, weil sie zielgerichtet und betriebssystem-spezifisch ausgelegt werden müssen. Andererseits ist die Verteidigung gegen Spectre wirklich komplex – und erfordert absehbar das Zusammenwirken von Microcode-Änderungen für die Prozessoren und neuen Kernel-Features (Stichworte: KPTI + Retpoline).

Aber auch dann ist aber sehr fraglich, ob alle denkbaren Seitenkanalvarianten, die in der Original-Publikation zu Spectre angesprochen wurden, abgedeckt werden können. Die Experten, die die Schwachstellen publizierten, sind da eher skeptisch.
Seiteneffekte, die sich durch eine zeitlich hochauflösende Analyse von Speicher/Cache-Vorgängen nutzen lassen, stellen nur einen Teil des möglichen Spektrums dar. Hierfür gibt es allerdings seit längerem sehr ausgereifte Tools.

Genau das Richtige also für ambitiöse Hacker … Das lässt nichts Gutes für den weiteren Verlauf des Jahres erahnen, da potentiell extrem viele Systeme betroffen sind.

Im nächsten Beitrag gehe ich auf Konsequenzen für normale Linux-Nutzer ein.

Links

Wo finde ich verständliche Informationen?
Nachfolgend ein paar Links, deren Inhalte aus meiner Sicht auch für Nicht-IT-Spezialisten verdaubar sind. In etwa geordnet nach steigendem Schwierigkeitsgrad.
http://www.sueddeutsche.de/digital/meltdown-und-spectre-chip-sicherheitsluecke-alle-sind-betroffen-1.3814322
https://www.heise.de/newsticker/meldung/FAQ-zu-Meltdown-und-Spectre-Was-ist-passiert-bin-ich-betroffen-wie-kann-ich-mich-schuetzen-3938146.html
https://www.heise.de/ct/ausgabe/2018-3-Sicherheitsluecken-in-den-meisten-modernen-Prozessoren-3942720.html
https://www.schneier.com/blog/archives/2018/01/spectre-_and-_mel-_1.html
https://solutionsreview.com/security-information-event-management/living-spectre-fallout-meltdown-spectre/
https://www.theregister.co.uk/2018/01/12/meltdown-_spectre-_researchers-_sitrep/
http://www.crn.de/software-services/artikel-115987.html
https://www.heise.de/newsticker/meldung/Analyse-zur-Prozessorluecke-Meltdown-und-Spectre-sind-ein-Security-Supergau-3935124.html
https://www.golem.de/news/updates-wie-man-spectre-und-meltdown-loswird-1801-132125.html

Movies
https://twitter.com/misc0110
https://www.youtube.com/watch?v=I5mRwzVvFGE

Interviews / History
https://www.golem.de/news/meltdown-und-spectre-dann-sind-wir-performancemaessig-wieder-am-ende-der-90er-1801-132224.html
https://www.gdata.de/blog/2018/01/30334-meltdown-spectre-interview-mit-anders-fogh
https://solutionsreview.com/security-information-event-management/dr-eric-cole-discusses-meltdown-spectre/
https://www.bloomberg.com/news/articles/2018-01-08/-it-can-t-be-true-inside-the-semiconductor-industry-s-meltdown
https://www.wired.com/story/meltdown-spectre-bug-collision-intel-chip-flaw-
discovery/

https://cyber.wtf/2018/01/05/behind-the-scene-of-a-bug-collision/
https://www.theverge.com/2018/1/11/16878670/meltdown-spectre-disclosure-embargo-google-microsoft-linux
https://cyber.wtf/2017/07/28/negative-result-reading-kernel-memory-from-user-mode/
https://www.riskbasedsecurity.com/2018/01/the-slow-burn-of-meltdown-and-spectre-exploits-lawsuits-and-perspective/

Original-Publikationen (für IT-Freaks wirklich lesenswert)
https://meltdownattack.com/meltdown.pdf
https://spectreattack.com/spectre.pdf

Linux/QEMU – Schutzverfahren ?
http://kroah.com/log/blog/2018/01/06/meltdown-status/
http://kroah.com/log/blog/2018/01/19/meltdown-status-2/
https://www.heise.de/ct/ausgabe/2018-3-Wie-die-Linux-Welt-auf-Meltdown-Spectre-reagiert-3942819.html
https://de.wikipedia.org/wiki/Kernel_page-table_isolation
https://www.cyberciti.biz/faq/check-linux-server-for-spectre-meltdown-vulnerability/
https://fedoramagazine.org/update-ongoing-meltdown-spectre-work/
https://www.pro-linux.de/news/1/25515/meltdown-und-spectre-weitere-kernelaktualisierungen.html
https://www.suse.com/de-de/support/kb/doc/?id=7022512
http://www.linux-magazin.de/news/meltdown-und-spectre-update-von-kernel-entwickler-kroah-hartman/
https://www.qemu.org/2018/01/04/spectre/
https://lwn.net/Articles/744287/

Warnung vor den Intel-Microcode Updates vom 08.01.
https://thehackernews.com/2018/01/intel-meltdown-spectre-patch.html
https://www.suse.com/de-de/support/kb/doc/?id=7022512https://www.theregister.co.uk/2018/01/18/red_hat_spectre_firmware_update_woes/