Login
Newsletter
Werbung

Do, 4. Januar 2018, 12:25

Software::Security

Prozessorfehler mit katastrophalen Ausmaßen

Googles »Project Zero« hat zusammen mit mehreren Sicherheitsforschern drei Sicherheitslücken in der Hardware festgestellt, die alle modernen Prozessoren mehr oder weniger stark betreffen. Sie ermöglichen das unbemerkte Auslesen beliebigen Speichers des Rechners und können somit Passwörter und andere sensible Daten verraten. Die Behebung der Fehler wird kostspielig oder mit erheblichen Geschwindigkeitseinbußen verbunden sein.

Natascha Eibl

War Heartbleed vor bald vier Jahren bereits ein katastrophaler Fehler, so war er wenigstens noch auf die Systeme limitiert, die OpenSSL benutzten. Drei neue Sicherheitslücken, die unter den Namen Meltdown und Spectre zusammengefasst wurden, betreffen dagegen nahezu alle Computer-Nutzer weltweit, da sie auf Hardware-Fehlern beruhen. Besonders umfassend sind anscheinend Intel-Prozessoren betroffen.

Als im November Linux-Patches erschienen, die separate Seitentabellen für Kernel- und Prozessadressen vorsahen, gab es bereits erste Spekulationen, dass dahinter etwas Größeres stecken könnte. Der damals vorgestellte Patch »KAISER« wurde schnell weiterentwickelt und wird unter dem Namen KPTI bereits in Linux 4.15 erscheinen, obwohl er erst außerordentlich spät integriert wurde. Der Patch wurde außerdem bereits auf 4.14 zurückportiert. Ein Artikel von The Register am 2. Januar löste dann die vermutlich erst für später geplante Publikation der Sicherheitslücken aus, die eine enorme Tragweite haben.

Natascha Eibl

Von Meltdown und Spectre ist ersteres (CVE-2017-5754) die schlimmere Variante. Meltdown erhielt seinen Namen davon, dass es die fundamentalen Sicherheitsbarrieren zwischen Programmen und Kernel »abschmilzt«. Spectre (CVE-2017-5753 und CVE-2017-5715) hingegen bricht die gegenseitige Isolation der einzelnen Programme, ist noch schwerer zu bekämpfen als Meltdown und wird die Entwickler daher wie ein Gespenst noch lange verfolgen. Außerdem spielt der Name auf die spekulative Ausführung von Code an, die aber auch bei Meltdown entscheidend ist.

Die gefundenen Fehler beruhen auf der Tatsache, dass alle modernen Prozessoren (ab ca. 1995) versuchen, die Befehlsausführung zu beschleunigen. Wenn sie auf eine Verzweigung im Code stoßen, müssten sie normalerweise warten, bis entschieden werden kann, ob ein Sprung durchgeführt werden muss oder nicht. Dies würde aber die Prozessor-Pipeline leeren, weshalb die Prozessoren Mechanismen besitzen, den wahrscheinlichsten Zweig, der weiter ausgeführt wird, vorherzusagen, und die Befehle dieses Zweiges auszuführen. Stellt sich die Vorhersage als falsch heraus, was normalerweise nur bei wenigen Prozent der Verzweigungen der Fall ist, werden die bereits »spekulativ« ausgeführten Befehle verworfen, so dass sie keine Auswirkungen auf den Prozessorzustand haben sollten. Eine Auswirkung gibt es aber: Bei Zugriffen auf den Speicher werden die Caches mit den entsprechenden Speicherinhalten geladen.

Nun gibt es keine Möglichkeit, den Inhalt der Caches auszulesen. Misst man jedoch die Ausführungszeiten, so findet man einen erheblichen Unterschied zwischen Daten, die sich im Cache befinden, und solchen, die sich noch nicht im Cache befinden. Dieser Unterschied kann bei geschickter Programmierung genutzt werden, um ein Bit an beliebiger Stelle im Speicher auszulesen, ohne dass ein Speicherschutz das verhindern würde. Bei mehrfacher Anwendung kann man ganze Bytes und schließlich den ganzen Speicher lesen. Das ist nicht schnell, aber mit 1500 bis 2000 Bytes pro Sekunde schnell genug, um Angreifern eine praktikable Möglichkeit zu geben, Passwörter und andere sensitive Daten zu erbeuten.

Vom Meltdown-Fehler sind nahezu alle Intel-Prozessoren betroffen. Ob auch AMD- und ARM-Chips anfällig sind, ist derzeit noch nicht geklärt. Spectre hingegen trifft vermutlich nahezu jeden Prozessor, der spekulative Ausführung nutzt. Noch nicht bekannt ist, ob gegen die Probleme mit einem Microcode-Update vorgegangen werden kann. Sicher ist, dass Patches in den Betriebssystemen und Virtualisierung gegen Meltdown helfen. Linux, MS Windows, Mac OS X, iOS und Android haben Patches in Vorbereitung oder, im Falle der neuesten Android-Updates, bereits aktiviert. Erste Messungen legen nahe, dass diese Patches zwischen 5 und 30 Prozent an Geschwindigkeit kosten. Eine kostspielige Alternative wären neue Prozessoren, sobald korrigierte Chips verfügbar sind. Kaum überschaubar bleibt das Risiko bei den zahlreichen Systemen, die kein Update erhalten.

Details zu den Sicherheitslücken enthalten sowohl die Arbeiten der Sicherheitsforscher als auch ein Beitrag von Project Zero. Während die eigentliche Lösung nur auf Betriebssystem- oder Hardware-Ebene möglich ist, hat beispielsweise Mozilla Maßnahmen für Firefox ergriffen, um die Angriffe durch JavaScript zu erschweren. Weitere Informationen zu Meltdown und Spectre werden in nächster Zeit sicherlich noch zahlreich eintreffen.

Werbung
Pro-Linux
Pro-Linux @Twitter
Neue Nachrichten
Werbung