Intel hat weitere Microcode-Updates freigegeben, wie der aktualisierten Microcode Revision Guidance zu entnehmen ist. Dort listet Intel den jeweiligen Stand der Microcode-Updates zur Eindämmung von Meltdown und Spectre, den beiden CPU-Verwundbarkeiten, die Anfang des Jahres publik wurden. Änderungen seit der letzten Version des Papiers werden jeweils gelb hinterlegt. Braun hinterlegte Abschnitte sind noch in der Erprobungsphase.
Skylake abgedeckt
Anfang Februar hatte Intel überarbeitete Microcodes für Skylake-CPUs der Serien U, Y, H, S und U23e freigegeben, die sich gegen die Spectre Variante 2 richten. In der vergangenen Woche folgten dann korrigierte Codes für die Plattformen Apollo Lake, Cherry View und Bay Trail. Die Microcodes für die älteren Plattformen Broadwell, Haswell, Sandy Bridge und Ivy Bridge verblieben noch in der Beta-Phase.
Broadwell und Haswell nachgeliefert
Jetzt wurden die überarbeiteten Microcodes für Broadwell- und Haswell-CPUs aus dem Beta-Status entlassen und gelten als stabil. Damit verbleiben die Prozessorgenerationen Sandy Bridge und Ivy Bridge als letzte in der Beta-Phase. Sie stellen auch die ältesten Generationen dar, die Gegenmaßnahmen gegen die Verwundbarkeiten erhalten. Die Überarbeitung der Microcodes war unter anderem dadurch nötig geworden, da mit im Januar ausgelieferten Microcodes Broadwell- und Haswell-CPUs spontane Neustarts der Hardware auslösten und daraufhin von Intel zurückgezogen wurden.
Die Updates wurden bereits an Hersteller und OEMs ausgeliefert. Naturgemäß wird es eine Weile dauern bis diese als BIOS- oder Firmware-Updates bei den Endanwendern ankommen. Am schnellsten landen Intel Microcode-Updates wie auch die von AMD in der Regel bei Linux. Die meisten Distributionen liefern die Microcodes als Distributionspakete aus, die beim Start des Rechners in den Kernel geladen werden. Den Stand des jeweils erreichten Schutzes gegen die beiden Lücken können Linux-anwender mit dem Script Spectre-Meltdown-Checker überprüfen, das in einigen Distributionen, wie etwa bei Debian, auch als Paket im Archiv vorliegt. In der letzten Woche erhielt zudem auch OpenBSD Patches gegen Meltdown.
Das Ende der Fahnenstange ist noch nicht erreicht bei den Sicherheitslücken in den CPUs fast aller Hersteller der letzten 25 Jahre. Sicherheitsforscher der Universität Princeton und von Nvidia haben weitere Angriffsszenarien zur Ausnutzung von Meltdown und Spectre entdeckt, die nicht von den anfänglichen »Proof-of-concept«-Beispielen abgedeckt sind. Wie The Register gestern berichtete, beschreibt ein Forschungspapier unter dem Titel MeltdownPrime and SpectrePrime: Automatically-Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols (PDF) neue Varianten der Meltdown- und Spectre-Exploits.
Neue Wege für Malware
Das Forscherteam hat neue Wege für Malware entdeckt, um sensible Informationen wie Passwörter und andere Geheimnisse aus dem Speicher eines anfälligen Computers zu extrahieren, indem es die Designfehler in modernen Prozessoren ausnutzt. Die Patches, die gerade entwickelt und ausgerollt werden, um den Angriffsvektor der Meltdown- und Spectre-Angriffe weiter zu verkleinern, werden diese neuen Exploits wahrscheinlich abdecken. Erst gestern wurden weitere Verbesserungen in dieser Hinsicht in den Mainline-Kernel eingebracht.
Intel muß zurück ans Reißbrett
Andererseits greifen die neuen Exploits so tief in die Chip-Architektur ein, dass die Änderungen direkt im Silicon, die Intel gerade plant, vermutlich nicht ausreichen um die CPU-Blaupausen von diesen Schwachstellen zu befreien. Es gibt allerdings bisher noch keine bekannt gewordenen Angriffe, die auf dem ursprünglichen oder dem neuen Exploit basieren. Das ist aber vermutlich eher der Komplexität der Sache geschuldet als dem Desinteresse der potentiellen Ausnutzer dieser Lücken.
Automatisierte Suche
Die Forscher haben ein bisher nicht näher beschriebenes Werkzeug entwickelt, das Microschip-Architektureen auf Angriffsszenarien hin überprüft. Sie identifizierten dabei neue Wege, um die Fehler des Prozessors auszunutzen. Diese neuesten Exploit-Techniken werden als MeltdownPrime und SpectrePrime bezeichnet. Die neuen Exploits unterscheiden sich von ihren Vorgängern unter anderem dadurch, dass sie als Zweikern-Angriffeausgelegt sind, sie verwenden zwei CPU-Kerne gegeneinander und nutzen die Art und Weise aus, wie in Mehrkernsystemen auf Speicher zugegriffen wird.
Höhere Preisgelder
Derweil hat Intel sein Bug-Bounty-Programm ausgedehnt. Die Erweiterung soll bis zum Jahresende aufrechterhalten werden und speziell weitere Seitenkanalattacken wie Spectre enthüllen. Die Preisgelder belaufen sich dabei auf bis zu 250.000 US-Dollar pro Entdeckung. Der bisherige Modus der Einladung von Intel, am Programm entfällt, es können Sicherheitsforscher aus der ganzen Welt teilnehmen.
Es ist etwas ruhiger geworden um die katastrophalen Sicherheitslücken in den meisten der in letzten rund 20 Jahren verkauften Prozessoren, was aber keinesfalls als Entwarnung missverstanden werden sollte. Wer es noch nicht verinnerlicht hat, dem sei hier nochmals gesagt: Meltdown und Spectre werden erst völlig geschlossen sein, wenn Intel neue Steppings seiner Prozessoren am Markt hat. Das wird vermutlich nicht vor 2020 sein. Die für den Sommer 2018 von Intels CEO Brian Krzanich bei der Verkündung der Quartalsergebnisse für Q4 2017 am 25. Januar medienwirksam angekündigten neuen CPUs mit »eingebautem Schutz gegen Meltdown und Spectre« betreffen lediglich neue Server-CPUs. Die Aussage von Krzanich lässt zudem vermuten, das Intel schon länger Kenntnis von den Lücken hatte, denn Änderungen am Silicon dauern lange. Wörtlich sagte er, ohne weiter auf Details einzugehen:
„We’re working to incorporate silicon-based changes to future products that will directly address the Spectre and Meltdown threats in hardware. And those products will begin appearing later this year.“
Verbesserter Schutz mit 4.15.2 und 4.14.18
Das bringt leider den Milliarden in aller Welt betroffenen Rechnern nichts. Wer in den nächsten zwei Jahren eine Intel-CPU für seinen PC kauft, der kauft mit ziemlicher Sicherheit Meltdown und Spectre mit ein. Auch die Entwickler des Linux-Kernel werden noch lange Zeit damit zubringen, die Patches gegen die Lücken zu verbessern. So wurden am 7. Februar die Linux-Versionen 4.15.2 und 4.14.18 veröffentlicht, die erste Maßnahmen gegen Spectre v1 enthalten. Heises Kernel-Spezi Thorsten Leemhuis geht hier mit seinem aktualisierten Kernel-Log in die Details. So wurde nicht nur initialer Schutz gegen Spectre v1 eingebaut, auch der Schutz vor Spectre v2 wurde verbessert. Meltdown hatten die Kernel-Entwickler schon seit 4.15-rc6 gut abgedeckt, sodass hier nur noch Detailverbesserungen einfließen.
Spectre-Meltdown-Checker mit Kernel 4.15.1Spectre-Meltdown-Checker mit Kernel 4.15.2
Intels zweiter Versuch
Am 8. Februar gab Intel zudem bekannt, neuen Microcode veröffentlicht zu haben. Dieser ist in stabiler Version derzeit allerdings nur für mobile und stationäre Skylake-CPUs verfügbar. Das Update ist nicht für Broadwell, Haswell, Kaby Lake, Skylake X, Skylake SP oder Coffee Lake geeignet. Neuer Microcode für diese Plattformen befindet sich laut Intel noch im Beta-Test. Die letzte Version des Microcodes zog Intel kürzlich zurück, da die Chip-Plattformen Broadwell und Haswell mit dieser Microcode-Version ungewollte Abstürze oder Neustarts der Hardware auslösten. Der neu veröffentlichte Microcode soll vor allem die Spectre-Lücke besser abdichten.
Noch keine Angriffe bekannt
Linux-Anwender kommen hierbei noch ganz gut weg, denn der Microcode wird per Paket von den Distributionen ausgeliefert und jeweils beim Systemstart geladen. Windows-Nutzer müssen dazu ihr BIOS aktualisieren. Zudem dauert es bei Windows länger, bis die Fixes zu den Anwendern gelangen. Intel liefert den Microcode erst an die OEMs aus, die den Code dann an ihre Mainboards anpassen, bevor er den Anwendern dann als BIOS-Update angeboten wird.
Verharmlosen hilft nicht
Vereinzelt werden die Lücken derzeit kleiner geredet als sie sind. Als Aufhänger dient hier die Tatsache, dass »in the wild« noch kein Angriffsszenario umgesetzt werden konnte, das die Lücken ausnutzt. Die 139 Malware-Samples, über die vor einer Woche auch hier berichtet wurde, funktionieren bisher lediglich im Labor. Aber wie gesagt, die Lücken bleiben uns in abgemilderter Form noch lange erhalten und staatliche Hacker und Kriminelle werden nicht so schnell aufgeben.
Allerdings ist der Grad der Sicherheit seit Bekanntwerden der Lücken Anfang Januar für Linux-Anwender stark verbessert worden. Spectre war von Anbeginn an nur von Profis auszunutzen. Heute ist das Dank der unermüdlichen Arbeit der Kernel-Entwickler wesentlich schwerer geworden.
Kernel 4.15 hat den längsten Entwicklungszyklus eines Kernels in den letzten sieben Jahren. Es brauchte neun Release-Kandidaten bis Linus Torvalds, der Herr der Kernel, zufrieden war. So viele RCs benötigte zuletzt Kernel 3.1 im Jahr 2011, der sogar noch einen zehnten Kandidaten brauchte und damit Rekordhalter ist.
Der Grund für den langen Zyklus sind ohne Zweifel Meltdown und Spectre, die die Kernel-Entwickler noch vor den Feiertagen überraschten und einige bis zur Erschöpfung in Atem hielten. Die Art, wie Intel die katastrophalen Sicherheitslücken handhabte war alles andere als hilfreich und Torvalds ließ Intel das auch wissen. Torvalds wünscht sich in seiner Ankündigung einen langweiligen Entwicklungszyklus zu 4.16 ohne neue Überraschungen.
GCC 7.3 aktiviert Retpoline vollständig
Jetzt ist es aber geschafft, 4.15 ist veröffentlicht. Vor wenigen Tagen erschien zudem die GNU Compiler Collection GCC 7.3, die ebenfalls die entsprechenden Switches für Retpoline mitbringt, sodass damit gebaute Distributionskernel über den vollen derzeit verfügbaren Schutz verfügen. Insbesondere 4.16 wird Patches gegen Spectre v1 bringen, aber auch die darauf folgenden Kernel werden noch Nachbesserungen beinhalten. Neben x86 stehen dabei besonders die Plattformen PowerPC und ARM im Fokus.
Meltdown im Griff
Die Kernel Page-Table Isolation-Patches können mit Kernel 4.15 die Meltdown-Lücke schließen. Allerdings kostet das derzeit je nach Anwendung unakzeptable 5 bis 30 Prozent. Für AMD-CPUs bleiben diese Patches deaktiviert, da AMD-Prozessoren für Meltdown nicht anfällig sind. Gegen Spectre v1 haben die Entwickler derzeit noch kein Mittel, daran wird für 4.16 gearbeitet. Spectre v2 lässt sich dagegen zumindest teilweise im Kernel verhindern. In Kernel 4.15 übernehmen das die Retpoline-Patches von Google.
Riesiges Patchset von AMD
Natürlich hat der neue Kernel mehr zu bieten als die Maßnahmen gegen die alles überschattenden CPU-Sicherheitslücken. Herausragend dabei ist die Unterstützung für AMDGPU DC, die es nach mehreren Anläufen in den Mainline-Kernel geschafft hat. Der Kernel unterstützt damit AMDs GPU-Architektur Vega. Dazu zählen die Karten Radeon RX Vega 64 und Radeon RX Vega 56, die jetzt Unterstützung für HDMI 2.0 und Displayport 1.4 bieten. Bei den meisten Karten gilt das auch für Audio. Ebenfalls neu ist die Temperaturüberwachung für AMDs Zen-Prozessoren. Das gleiche gilt auch für den Nouveau-Treiber, der jetzt die Temperaturen bei Nvidias Pascal-Chips beherrscht.
Mit der Unterstützung von Apples ThunderboltIP lassen sich Rechner über die Thunderbolt-Schnittstelle vernetzen. Bei USB-Typ-C-Schnittstellen kann der Port-Manager künftig den Energiebedarf je nach angeschlossenem Gerät regeln. Der Umstieg auf Control Groups v2 ist mit 4.15 vollständig, auch wenn die erste Implementation uns noch lange begleiten wird. Zudem wurden erste Patches für die Unterstützung der neuen RISC-V-Prozessoren aufgenommen.
Das zweiwöchige Fenster für Einreichungen zu Linux 4.16 ist geöffnet, wenn alles glatt läuft, sollte der nächste Kernel Ende März erscheinen. Wie immer bietet die Seite Kernel Newbies eine leicht verständliche Zusammenfassung der Änderungen zu Kernel 4.15.
Ubuntu 17.10 »Artful Aardvark« erfährt in den kommenden Tagen zwei wichtige Änderungen. Am morgigen Donnerstag wird die im Oktober 2017 veröffentlichte Ausgabe Ubuntu 17.10 erneut als Ubuntu 17.10.1 veröffentlicht. Es ist dies das erste Mal, dass eine Ausgabe von Ubuntu, die nicht mit der Langzeitunterstützung LTS ausgestattet ist, ein Punkt-Release erhält. Grund für die Neuveröffentlichung ist ein Fehler in einem Treiber, der dazu führen konnte, das Notebooks von Lenovo und anderen Herstellern bereits nach dem Booten der Live-Medien von Ubuntu 17.10 ein korrumpiertes BIOS aufweisen konnten.
Fatale Folgen
Die Folgen reichten von nicht mehr speicherbaren BIOS-Einstellungen über den Verlust der Bootfähigkeit per USB bis hin zu gar nicht mehr bootenden Systemen. Daraufhin zog Canonical das Desktop-Image von Ubuntu 17.10 vom Download-Server zurück, weshalb auch mit Fug und Recht von einer Neuveröffentlichung gesprochen werden kann. Der Grund für den fatalen Fehler war schnell gefunden. Der Intel-SPI-Treiber, der unter anderem dazu dient, das BIOS aus dem System heraus aktualisieren zu können, war schnell als der Schuldige ausgemacht. Die Ubuntu-Entwickler hatten diesen Treiber im Kernel aktiviert. Der Hilfstext weist darauf hin, dass man genau wissen sollte was man tut, wenn man den Treiber aktiviert.
Neuveröffentlichung
Ubuntu-Entwickler Steve Langasek kündigte vor einigen Tagen auf der Ubuntu-Mailing-Liste für den 11. Januar eine Neuveröffentlichung von Ubuntu 17.10 an. Vermutlich werden auch einige andere Varianten aus der Ubuntu-Familie neue Images erhalten. Bei den Daily-Builds steht unter dem Stichwort »Artful Dot One« bereits seit Tagen ein entsprechendes Ubuntu-Image bereit. Die Neuveröffentlichung am morgigen 11.1 war angesichts des nahenden Endes der Unterstützung für Ubuntu 17.04 »Zesty Zapus« am 13. Januar notwendig geworden.
Kernel-Patches bis zurück zu Ubuntu 12.04 ESM
Dabei blieb keine Zeit, sich um die Eindämmung von Meltdown und Spectre zu kümmern. Der Ubuntu-Kernel 4.13.0.21, der mit 17.10.1 veröffentlicht wird, enthält keine Patches gegen die Lücken. Deshalb sollten Neuinstallationen von 17.10.1 gleich ein Update erhalten. Dazu wird heute noch der Kernel 4.13.0.25.26, der die KPTI-Patches gegen Meltdown enthält, veröffentlicht. Außerdem werden Kernel 4.4.0-108.131 für Ubuntu 16.04 LTS, Kernel 3.13.0.139.148 für Ubuntu 14.04 LTS und 4.4.0-108.131~14.04.1 für Ubuntu 14.04.5 LTS veröffentlicht. Für Ubuntu 12.04 ESM (Extended Security Maintenance) mit verlängertem Support steht Kernel 3.2.0-132.178 bereit, für Ubuntu 12.04.5 ESM trägt der gepatchte Kernel die Versionsnummer 3.13.0.139.129. Zudem gibt es einen neuen gepatchten Nvidia-Treiber 384.111.
Kernel-Entwickler Greg Kroah-Hartman (GregKH) hat in seinem Blog einen Statusbericht über den derzeitigen Stand der Dinge bei Meltdown und Spectre veröffentlicht. Als Essenz bleiben zwei Kernsätze:
Linux-Nutzer sollten in den nächsten Monaten noch eifriger auf zeitnahe Kernel-Updates achten.
Wer eine Distribution nutzt, die noch keinen aktualisierten Kernel mit den KPTI-Patches anbietet, sollte jetzt die Distribution wechseln.
GregKH, der Maintainer der Stable-Kernel-Reihe, verweist zum Verständnis der Ereignisse auf das Projekt-Zero-Papier der GoogleSicherheitsforscher, das er in seiner Qualität für preisverdächtig hält. Weitere technische Details, wie die Kernel-Entwickler die Lücken zu schließen versuchen, finden sich auf LWN im Artikel »Addressing Meltdown and Spectre in the kernel«, der allerdings derzeit nur für Abonnenten zugänglich ist.
Kritik an den betroffenen Unternehmen gibt es nicht nur von Linus Torvalds, sondern auch von GregKH, wenn der sagt, dies sei ein Paradebeispiel dafür, wie man nicht mit der Kernel-Entwicklergemeinde umgehen sollte. Es gibt laut GregKH dazu noch einiges zu sagen, jetzt sollen allerdings zunächst die Fehler beseitigt werden.
Meltdown – x86
Der heute erwartete Kernel 4.15-rc7 wird alle Patches gegen Meltdown enthalten, die bisher verfügbar sind. Da aber die wenigsten Anwender rc-Kernel nutzen, hat GregKH als Hüter der stabilen Kernelreihen den Page-Table-Isolation-Code, der Meltdown-Angriffe vereitelt, in den aktuellen Kernel 4.14.12 übernommen. In den nächsten Tagen wird dieser von 4.14.13 abgelöst, der einige Patches für Systeme enthält, die Bootprobleme mit 4.14.12 haben. Auch die LTS-Kernel 4.4 und 4.9 sind mit der Option CONFIG_PAGE_TABLE_ISOLATION neu gebaut und veröffentlicht worden.
Meltdown – ARM64
Die Meltdown-Patches für ARM64 sind noch im aktuellen Kernel-Zweig integriert. Sie sind fertig und sollen, sobald 4.15 in wenigen Wochen aus der Tür ist, in 4.16-rc1 gemerged werden. Anwender, die auf einen ARM64-Kernel angewiesen sind, sollten daher derzeit auf den Android Common Kernel-Zweig setzen. Die Patches sind dort in die Zweige 3.18, 4.4 und 4.9 gemerged worden.
Spectre
Bisher sind keine Patches gegen diesen Angriffsvektor in die offiziellen Kernelreihen eingebracht worden. Es liegen eine Menge Patches auf diversen Mailinglisten vor, die das Problem angehen, aber alle sind noch in heftiger Entwicklung begriffen. Teilweise gibt es Konflikte zwischen diesen Patches, die zum Teil noch nicht einmal so weit sind, dass sie gebaut werden können. Hier herrscht ziemliches Durcheinander. Das liegt daran, dass die Spectre-Probleme die letzten waren, die von den Kernel-Entwicklern angegangen wurden. Alle arbeiteten an Meltdown-Lösungen, und es lagen keine wirklichen Informationen darüber vor, was genau das Spectre-Problem überhaupt war.
Aus diesem Grund wird es noch einige Wochen brauchen, um diese Probleme zu lösen und sie Upstream zusammenzuführen. Die Korrekturen kommen in verschiedenen Subsystemen des Kernels an und werden gesammelt und in den stabilen Kernel-Updates veröffentlicht sobald sie gemerged sind. Also ist es auch hier am besten, mit den Kernel-Releases der verwendeten Distribution oder den LTS- und stabilen Kernel-Releases auf dem Laufenden zu bleiben.
Meltdown & Spectre: Alle im gleichen Boot
Die gesamte Industrie sitzt hier derzeit im gleichen Boot. Kein Betriebssystem scheint gegen Spectre bisher ausreichend gewappnet. Die vorgeschlagenen Lösungen sind nicht gerade trivial, aber einige von ihnen sind erstaunlich gut. Der Retpoline-Post von Googles Paul Turner ist ein Beispiel für einige der neuen Konzepte, die zur Lösung dieser Probleme entwickelt wurden. Dies wird in den nächsten Jahren ein Bereich mit vielen Forschungsarbeiten sein, um Wege aufzuzeigen, wie man die potenziellen Probleme im Bereich der spekulativen Ausführung bei modernen Prozessoren in den Griff bekommt.
Derzeit liegen Patches für Meltdown und Spectre lediglich für die Architekturen x86 und arm64 vor. Einige Patches sind in Unternehmens-Distributionen gesichtet worden, die hoffentlich bald in den Upstream eingeführt werden.
»Im Moment gibt es eine Menge sehr überarbeiteter, mürrischer, schlafloser und einfach nur angepisster Kernel-Entwickler, die so hart wie möglich daran arbeiten, diese Probleme zu lösen, die sie selbst überhaupt nicht verursacht haben. Bitte seid hier rücksichtsvoll. Sie brauchen die ganze Liebe und Unterstützung und kostenlose Versorgung mit ihrem Lieblingsgetränk, das wir ihnen zur Verfügung stellen können, um sicherzustellen, dass wir alle so schnell wie möglich mit reparierten Systemen arbeiten können.«
Zwar sind die Sicherheitslücken in modernen CPUs von Intel, ARM, Apple, AMD und IBM noch nicht völlig in der Tiefe ausgelotet, es reicht aber aus, um eine erste Analyse des Gefahrenpotentials zu wagen, das von Spectre und Meltdown ausgeht. Derzeit sind drei Fehler mit verschiedenen Angriffsvektoren bekannt:
Dabei entsprechen die Varianten 1 und 2 dem Angriffsvector Spectre, Variante 3 entspricht Meltdown. Von Meltdown sind alle Intel CPUs seit 1995 mit wenigen Ausnahmen betroffen. Ausgenommen sind lediglich Atom-CPUs vor 2013 und Itanium-Prozessoren. Google hat eine Liste der betroffenen Prozessoren bereitgestellt. Die von Hause aus schwachen Atom-CPUs wurden bewusst nicht mit dieser Technik ausgestattet, da sie die Rechenleistungseffizienz pro Watt verringern kann.
Meltdown
Meltdown ist die am einfachsten zu behebende Variante. Diese Variante durchbricht die grundlegende Isolierung zwischen Anwendungen und dem Betriebssystem. Dieser Angriff ermöglicht es einem Programm, auf den Speicher und damit auch auf die Geheimnisse anderer Programme und des Betriebssystems zuzugreifen.
Wenn ein Computer über einen verwundbaren Prozessor verfügt und ein nicht gepatchtes Betriebssystem verwendet, ist es möglich, dass Informationen der gerade aktiven Anwendung durchsickern, die im Kernelspeicher vorgehalten werden. Dies gilt sowohl für Personal Computer als auch für die Cloud-Infrastruktur. Dazu muss allerdings bereits Zugriff auf das Gerät bestehen. Das Problem solle durch Kernel-Patches mittlerweile für alle Plattformen eingedämmt sein.
Spectre
Spectre dagegen betrifft alle CPUs von Intel, AMD und ARM in angegegebenen Zeitraum, Es ist schwerer, Spectre auszunutzen, allerdings trifft das auch auf die Gegenmaßnahmen zu. Spectre nutzt die bei modernen CPUs zur Leistungssteigerung eingesetzte «spekulative Ausführung« aus. Dabei berechnet die CPU die wahrscheinlichste nächste Berechnung. Diese werden in einem extra Zweig (branch) gespeichert. Liegt die CPU richtig, was überwiegend der Fall ist, wird mit diesem Branch weitergemacht. Wenn nicht, werden die Daten verworfen und in einem anderen Branch fortgefahren.
Attacke per Browser
Hier können nun manipulierte Anwendungen lokal oder als Web-App oder Browser mittels einer sehr präzise getimten Side-Channel-Attack Daten aus dem Cache abgegriffen werden. Diese Lücke lässt sich allein mit Kernel-Patches nicht schliessen, dazu müssen viele Anwendungen mit einem aktualisierten Compiler neu gebaut werden. Deshalb werden wir mit Spectre noch lange zu tun haben. Denkt man beispielsweise an Debian, so müssen alle Pakete für jede der derzeit unterstützten zehn Architekturen gebaut werden.
Bei virtuellen Maschinen und Containern ist die Situation nochmals kritischer. Hier kann unter Umständen sowohl der Speicher der Host-Mschine und der von anderen VMs auf dem gleichen Host gefährdet sein. Zudem können in solchen Umgebungen die Leistungseinbußen wie bei großen Datenbanken besonders zu Buche schlagen.
Kernel, Browser und Microcode aktualisieren
Wichtig ist es, Browser so gut wie möglich abzusichern. Firefox 57.0.4 liegt da momentan vorne, da es Versuche, per Sprectre Daten abzugreifen, erschwert. Bei Chrome/Chromium und den auf der gleichen Engine basierenden Opera und Vivaldi kann über chrome://flags die Funktion enable-site-per-process aktiviert werden, die jede offene Webseite in einem eigenen Prozess rendert. Google Chrome 64 erscheint am 23. Januar und hat diese Einstellung von Hause aus aktiviert. Microsoft Edge wird am 9 Januar gegen Spectre aktualisiert.
Anwender egal welcher Distribution sollten neben dem Browser auch ihre Kernel aktualisieren. Intel bietet zudem einen ersten aktualisierten Microcode mit der Versionnummer 3.20171215.1 an, der in Debian Unstable und anderen Distributionen bereits verfügbar ist. Weitere werden folgen. Mit einem Update des Microcodes kann Intel Fehlfunktionen beheben, ohne dass die CPU ausgetauscht wird. Wie weit das für Spectre gelingt ist noch unklar. Bei Debian könnte dies die Diskussion um nicht um freie Software erneut anfeuern, handelt es sich doch beim Micocode um Software aus dem Non-free-Repository.
Bild: „Intel@Sandybridge@Ivy_Bridge-EX_(Ivytown)@Xeon_E7_V2@QDPJ_ES___Stack-DSC07905-DSC07945_-_ZS-retouched“Fritzchens Fritz Lizenz: CC0
Mittlerweile ist etwas Licht in das Dunkel um den vermeintlichen Fehler in Intel-CPUs gekommen, der gestern für mächtiges Rauschen im digitalen Blätterwald sorgte. Das ist allerdings nicht Intel zu verdanken, die sich gestern Abend zu Wort meldeten. Eigentlich sei eine Stellungnahme erst später geplant gewesen, im Licht der fehlerhaften Pressemitteilungen sehe man sich aber veranlasst, sich bereits jetzt zu äußern.
Intel wiegelt ab
Zunächst wird einmal die Gefährlichkeit der Sicherheitslücke heruntergespielt wenn Intel schreibt, nach Unternehmensansicht hätten diese Exploits nicht das Potential, Daten zu beschädigen, zu verändern oder zu löschen. Des Weiteren sei es nicht korrekt, das der Fehler, der solche Exploits erlaube, nur bei Intel-Produkten anzutreffen sei. Nach jetzigem Sachstand seien »viele Arten von Computergeräten – mit Prozessoren und Betriebssystemen verschiedener Hersteller – anfällig für diese Angriffe.« Man arbeite eng mit anderen Unternehmen, unter anderem auch AMD und ARM Holdings und mit Betriebssystemherstellern zusammen um dieses Problem schnell und konstruktiv zu beseitigen.
Die zu erwartenden Performance-Einbussen spielt Intel herunter, diese seien für Privatanwender nicht signifikant und würden mit der Zeit abgeschwächt. Hier hat Intel vermutlich sogar recht, denn die vereinzelt gemeldeten Werte von 30 bis 50 Prozent entsprechen nicht dem zu erwartenden Einbruch. Aber selbst Werte um fünf Prozent und bei NVMe-SSDs auch mehr sind nicht hinnehmbar.
Google redet Klartext
Etwas klarer wird das Bild, liest man sich die kurz darauf veröffentlichte Erklärung von Google durch, die auch mit technischen Einzelheiten aufwartet. Die Lücke sei letztes Jahr im Rahmen von Googles Forschung im Rahmen von Project Zero entdeckt worden. Dabei handelt es sich um ein Forschungsprojekt zur Sicherheit und Verhinderung von Angriffen auf Computer und Netzwerke. Bereits im zweiten Satz wird klar, dass die Aussage von Kernel-Entwickler Thomas Lendacky zutreffend war und der Hase bei der speculative execution begraben liegt. Die spekulative Ausführung verwendet untätige Ressourcen der CPU, um den folgenden Programmfluss vorauszusagen und Daten spekulativ vorzuhalten, die vermutlich demnächst gebraucht werden. Wo der bei AMD angestellte Kernel-Entwickler Lendacky – vorsichtig formuliert – vermutlich falsch lag, ist, dass AMD nicht betroffen ist.
Google stellt klar, dass fast alle modernen CPUs die »spekulative Ausführung« einsetzen. Zudem habe Jann Horn, einer der Forscher des Project Zero, demonstriert, dass Angreifer die spekulative Ausführung dafür nutzen könnten um Bereiche des Kernelspeichers auszulesen, die unprivilegiert nicht im Zugriff sein sollten. Dabei könnten Passwörter, Schlüssel und weitere Daten aus offenen Anwendungen gestohlen werden. Google widerspricht damit klar der Aussage von Intel, dass Daten nicht gefährdet seien.
Alle Hersteller betroffen
Google sagt auch klar, die Verwundbarkeit betreffe viele CPUs, unter anderem auch die von Intel, AMD und ARM. Man habe sowohl die eigenen Produkte abgesichert als auch anderen Betroffenen geholfen, deren Anwender zu schützen. Bei Android sei darauf zu achten, dass die letzten Sicherheits-Updates eingespielt seien. Das dürfte allerdings nur für Besitzer von Nexus- und Pixel-Phones so einfach zu befolgen sein. Die meisten anderen Hersteller hängen um Monate hinterher. Bei Google Chrome sei darauf zu achten, dass die aktuelle Version des Browsers genutzt wird.
Technische Ausarbeitung
Mittlerweile liegt auch Googles Papier mit der technischen Ausarbeitung der Lücke vor. Daraus geht hervor, dass Google seine Forschungsergebnisse sowie erfolgreiche Exploits gegen einige CPUs von Intel, AMD und ARM den Herstellern bereits am 1. Juni 2017 bekanntgegeben hat. Auch IBMs System Z, POWER8 (Big Endian und Little Endian) und POWER9 (Little Endian) sollen betroffen sein. Zudem wird klar, dass es mehrere Varianten gibt, die die Kennzeichnungen CVE-2017-5753, CVE-2017-5715 und CVE-2017-5754 erhalten haben. Wie mittlerweile üblich erhielt die Lücke auch Namen und drollige Icons. Dabei sind unter Spectre CVE-2017-5753 und CVE-2017-5715 zusammengefasst, Meltdown steht für CVE-2017-5754
Meltdown scheint nach jetzigem Stand Intel-CPUs seit 1995 zu betreffen, Ausgenommen sind lediglich Itanium und Atom-CPUs vor 2013. Spectre sei schwerer auszunutzen, aber auch schwerer zu stopfen. Hiervon sind laut Google alle modernen CPUS von Intel, AMD und ARM betroffen. So kann Spectre durch Page-Table Isolation im Kernel nicht ausreichend behoben werden sondern muss in vielen Anwendungen aktiv verhindert werden. Hier sieht Google die Entwicklergemeinde noch eine ganze Weile mit der Sache befasst.
Amazon, Apple, AMD
Auch Amazon meldete sich am gestrigen Abend zu Wort. AWS sei sich der Verwundbarkeiten bewusst. Die Lücke existiere seit über 20 Jahrfen in modernen Prozessor-Architekturen von Intel, AMD und ARM auf Severn, Desktops und Mobilgeräten. Der überwiegende Teil der Amazon EC2-Flotte sei bereits gegen den Fehler gepatched, die verbleibenden Server würden in den nächsten Stunden abgesichert. Für Amazon Linux liegt ein aktualisierter Kernel bereits vor. Apple meldete gestern auf Twitter, die Lücke sei teilweise bereits am 6. Dezember mit macOS 10.13.2 geschlossen worden. Die komplette Absicherung werde mit macOS 10.13.3 ausgeliefert, dass sich derzeit in der Beta-Phase befinde.
Zu guter letzt meldete sich auch AMD mit einer Stellungnahme. Der Sender CNBC meldete, AMD sehe sich nicht von allen drei Varianten der Lücke betroffen und das Risiko für AMD-Kunden sei aufgrund einer anderen Implementierung der Funktion der spekulativen Ausführung derzeit »nahe Null«. Mittlerweile hat AMD seine Ausführungen weiter konkretisiert. Linus Torvalds fordert Intel auf, die Fehler zuzugeben anstatt weiter zu leugnen