Schlagwort: Spectre

  • Gefahrenpotential von Meltdown und Spectre

    Meltdown und Spectre
    Bild: Google

     

    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.

  • CPU-Fehler: Intel wiegelt ab

    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