Login
Newsletter
Werbung

Fr, 26. April 2019, 14:27

Software::Security

JavaScript-Engine V8 ein Jahr nach Spectre

Entwickler der JavaScript-Engine V8 haben beschrieben, welche Folgen der Prozessorfehler Spectre nach sich zog. Mit Varianten von Spectre muss ab jetzt für immer gerechnet werden, die Lösung liegt in einer Änderung der Webbrowser-Architektur.

Natascha Eibl

Kurz nachdem die ersten Varianten der katastrophalen Prozessorfehler Meltdown und Spectre publiziert wurden, wurde auch erkannt, dass bösartige Webseiten mit Hilfe von JavaScript damit auch Informationen aus Browsern auslesen konnten. Gegenmaßnahmen im Betriebssystem genügten an dieser Stelle nicht. Auch die Entwickler von JavaScript-Engines wie V8 von Google, die unter anderem in Chromium und Node.js eingesetzt wird, waren gefordert.

Eine wichtige Komponente der Spectre-Angriffe ist die präzise Messung, wie lange ein Speicherzugriff dauert. Daher wurde zunächst die Auflösung der Timer in den Browsern reduziert, in Chromium beispielsweise von 5 auf 100 Mikrosekunden, und die Präzision reduziert. Auch die SharedArrayBuffer-Schnittstelle musste entfernt werden, denn eine Untersuchung ergab, dass mit dieser Schnittstelle höchst präzise Timer konstruierbar waren. Doch schnell stellte sich heraus, dass das nicht genügte. Denn durch wiederholte Zeitmessung und raffinierte Algorithmen lässt sich die Genauigkeit so stark steigern, dass wiederum Angriffe möglich sind.

Währenddessen wurden auch in den JIT-Engines Maßnahmen gegen Spectre getroffen, ähnlich wie im Linux-Kernel. Doch auch hier bleiben Lücken, und zwar nach Angaben des Google-Teams aus mehreren Gründen. Zum einen musste unverhältnismäßig viel Zeit in das Auffinden von angreifbaren Stellen gesteckt werden, vor allem wenn man bedenkt, dass die Bedrohung durch Spectre nicht besonders hoch ist und es eine Vielzahl von sehr viel ernsteren potentiellen Sicherheitslücken gibt. Die technischen Maßnahmen gegen Spectre werden zudem als Komplikation empfunden, die langfristigen Wartungsaufwand erfordert. Das Testen dieser Maßnahme wurde nahezu unmöglich, und schließlich wurde auch noch erkannt, dass nicht alle Varianten von Spectre mit Software-Maßnahmen zu verhindern sind.

Die Schlussfolgerung des V8-Teams ist, dass die einzige effektive Maßnahme gegen Spectre darin besteht, dass kritische Daten nicht im selben Adressraum liegen dürfen wie die Prozesse, die nicht vertrauenswürdigen Code ausführen. In Chromium wurden entsprechende Maßnahmen bereits vor dem Aufkommen von Spectre begonnen. Unter der Bezeichnung Site Isolation wurde diese Arbeit bis Mai 2018 auf so vielen Plattformen wie möglich umgesetzt. Damit läuft jede Webseite in ihrem eigenen, in einer Sandbox zusätzlich beschränkten Prozess, der keinen Zugriff auf die Daten anderer Prozesse hat. Dies erwies sich als so erfolgreich, dass bis heute laut dem V8-Team kein erfolgreicher Angriff auf Spectre-Basis bekannt ist. Die Erkenntnis, dass Varianten von Spectre aufgrund der Prozessorarchitektur grundsätzlich immer existieren werden, wurde von den Entwicklern in einem Whitepaper publiziert und begründet, das allen Interessierten eine Fülle von Details liefert.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung