Das aktuelle Jahr 2018 ist interessant, da fast jeden Monat Informationen zu neuen Hardware-Schwachstellen vorliegen : Spectre und Meltdown .
In jüngerer Zeit - vor ein paar Wochen! - Es wurden hochkarätige Nachrichten über die Sicherheitslücken Foreshadow und L1Terminal Fault veröffentlicht , von denen berichtet wird, dass sie sogar den SGX- Mechanismus (Sofware Guard Extensions) umgehen, der zuvor als nahezu unzerbrechlich galt.
Wie gefährlich sind diese Sicherheitslücken? Kann man sich gegen sie verteidigen und wenn ja, wie? Wir werden weiter unten darüber sprechen.
Kurzanleitung
Foreshadow oder L1TF ist eine ganze Gruppe von Sicherheitslücken, zu denen gehören:
- CVE-2018-3615 - SGX umgehen;
- CVE-2018-3620 - um den Kernel des Betriebssystems sowie SMM (System Management Mode) anzugreifen;
- CVE-2018-3646 - zum Angriff auf virtuelle Maschinen.
Die Autoren vieler Veröffentlichungen sind besonders besorgt über die Möglichkeit, den SGX-Schutz zu umgehen: Spectre und Metldown wussten nicht, wie dies zu tun ist, und dies macht sensible Daten schutzlos. Um zu verstehen, wie dieser Alarm gerechtfertigt ist, analysieren wir die Funktionsprinzipien des SGX-Mechanismus.
Was ist SGX und wie kann ich es umgehen?
Die Abkürzung SGX steht für Software Guard Extensions. Dies ist der Name des Befehlssatzes für Intel-Prozessoren, mit dem private Code- und Datenbereiche hervorgehoben werden. Im Jahr 2015 veröffentlichte Matthew Hoykstra (Matthew Hoeskstra), einer der Entwickler von SGX, einen Artikel (siehe auch russische Übersetzung ), in dem er die folgenden Ziele für die Entwicklung dieser Technologie identifizierte:
- Anwendungsentwicklern die Möglichkeit geben, kritische Daten vor unbefugtem Zugriff oder Änderungen durch schädliche Software zu schützen, die mit höheren Berechtigungen ausgeführt wird.
- Anwendungen ermöglichen, die Integrität und Vertraulichkeit sensibler Daten und Codes sicherzustellen, ohne den Betrieb des Berechtigungssystems zu beeinträchtigen und ohne dessen Planung und Kontrolle der Plattformressourcen zu beeinträchtigen;
- Lassen Sie die Plattform vertrauenswürdigen Code messen und verwenden Sie die Anwendung, um ein signiertes Zertifikat und andere Zertifikate zu erstellen, die bestätigen, dass der Code in einer vertrauenswürdigen Umgebung korrekt initialisiert wurde.
- Benutzern die Möglichkeit geben, Anwendungen zu steuern, ohne die Freiheit zu beschränken, Anwendungen und Dienste zu installieren und zu entfernen;
- Ermöglichen Sie Entwicklern, vertrauenswürdige Anwendungen mit ihnen bekannten Tools und Prozessen zu erstellen.
- Steigern Sie die Produktivität vertrauenswürdiger Anwendungen
- Ermöglichen Sie Anwendungen, vertrauenswürdige Code- und Datenbereiche zu ermitteln, selbst wenn ein Angreifer die Plattform physisch kontrolliert und direkte Angriffe auf den Speicher ausführen kann (siehe ein Beispiel hier ).
Der zitierte Artikel enthält viel mehr Marketing als technische Details. Es beschreibt im Allgemeinen, WAS die SGX-Technologie Ihnen ermöglicht, aber es gibt kein Wort darüber, wie dies getan wird. Wir werden dies im Folgenden ausführlich beschreiben. In unserer Präsentation stützen wir uns hauptsächlich auf einen detaillierten Artikel, der von der Internationalen Vereinigung für kryptologische Forschung (IACR, Internationale Vereinigung für kryptologische Forschung) veröffentlicht wurde.
SGX erstellt im Speicher eine geschützte Region - PRM (Processor Reserved Memory) , die auch als Enklave bezeichnet wird. Der Prozessor schützt die Enklave vor Zugriffsversuchen, einschließlich solcher aus dem Kernel, Hypervisor und SMM (System Management Mode), sowie vor Zugriffsversuchen von Peripheriegeräten.
PRM verfügt über einen speziellen Cache, den sogenannten EPC (Enclave Page Cache) , der aus vier Kilobyte-Seiten besteht, auf denen der Enklavencode und die Daten gespeichert sind. Wenn eine vertrauenswürdige Funktion aufgerufen wird, "sieht" die Anwendung nur Enklavendaten. Jeder externe Zugriff, auch vom Betriebssystem aus, ist verboten.
Bei jedem Versuch, auf die Enklave zuzugreifen, erfolgt das sogenannte Zertifizierungsverfahren. Die Enklave fordert einen von der Hardware signierten Bericht an, der Informationen zu seinem Wert enthält. Dieser Bericht wird an den Zertifizierungsserver gesendet. Der öffentliche Teil des Anwendungsschlüssels wird an die Enklave gesendet. Anschließend wird je nach Enklave und Plattform ein privater Schlüssel generiert. Der Schlüssel wird mit einem Signaturschlüssel verschlüsselt und für die zukünftige Verwendung gespeichert.
Wie in den offiziellen Intel-Veröffentlichungen erwähnt, kann SGX vor allen Arten von Angriffen auf Daten und Code schützen: sowohl vom System und der Benutzersoftware als auch vom Bootloader. SGX kann sich jedoch nicht vor sogenannten Seitenkanalangriffen schützen. SGX kann das berüchtigte Spectre und Meltdown nicht umgehen.
In letzter Zeit gab es jedoch Angriffe (sogar schon vor Foreshadow - siehe zum Beispiel hier ), mit denen Sie den SGX-Schutz umgehen können. Darüber hinaus ist Foreshadow nur der lauteste und sensationellste von ihnen.
In der SGX-Dokumentation heißt es: "Es ist unmöglich, aus Enklaven zu lesen, und es kann nichts in sie geschrieben werden, unabhängig davon, ob Privilegien auf irgendeiner Ebene vorhanden sind." In Wirklichkeit ist dies jedoch weit davon entfernt.
Bereits im Frühjahr dieses Jahres erschienen Informationen über einen Angriff namens SGX Spectre, mit dem Sie Daten aus Enklaven extrahieren können. Wie Forscher der Ohio State University gezeigt haben (siehe zum Beispiel hier ), ist dies dank „Lücken“ im SDK möglich, mit denen Entwickler die SGX-Unterstützung in ihre Anwendungen integrieren können. Zu den betroffenen SDKs gehörten Intel SGX SDK, Rust-SGX und Graphene-SGX. Eine detaillierte Analyse dieses Angriffs finden Sie in diesem Artikel . Ein Video mit einem guten Beispiel wurde auch auf Youtube gepostet.
Das Video ist natürlich nicht überzeugend: Die bloße Tatsache, die Enklave zu betreten, bedeutet nicht, dass wichtige Daten gestohlen werden können. Es ist jedoch zu beachten, dass die Integrität und Vertraulichkeit des SGX-Mechanismus verletzt werden.
Foreshadow unterbricht die Isolation durch einen sogenannten Seitenkanalangriff.
Wie im berüchtigten Spectre and Meltdown verwendet die Sicherheitsanfälligkeit den Mechanismus der spekulativen Ausführung von Befehlen. Es basiert auf dem folgenden Punkt: Beim Zugriff auf den Speicher an einer virtuellen Adresse, die aufgrund des Fehlens des Present-Flags in der PTE-Tabelle (Seitentabelleneinträge) zu einem Terminalseitenfehler führt, berechnen Intel-Prozessoren spekulativ die physische Adresse und laden die Daten, falls dies der Fall ist Verfügbar im L1-Cache. Spekulative Berechnungen werden durchgeführt, bevor die Verfügbarkeit von Daten im physischen Speicher und die Verfügbarkeit dieser Daten zum Lesen überprüft werden. Wenn das PTE kein Present-Flag enthält, wird die Operation verworfen. Die Daten werden jedoch im Cache „abgelegt“ und können daraus extrahiert werden. Daten können an absolut jede physikalische Adresse extrahiert werden. Dies eröffnet Angreifern enorme Möglichkeiten und ermöglicht es beispielsweise, Daten auf dem Host vom Gastcomputer zu extrahieren. Demo-Videos sind bereits erschienen:
Das Video sieht jedoch ehrlich gesagt nicht sehr überzeugend aus und ähnelt den zahlreichen Demonstrationen der Sicherheitslücken Spectre und Meltdown, die Anfang dieses Jahres im Internet gesurft sind: Es scheint, dass wir den Schutz überwunden haben - aber wie geht es weiter? Natürlich ist der SGX-Bypass kein guter Anwendungsfall.
Warum Angst haben?
Im Gegensatz zu Spectre und Meltdown bedroht Foreshadow nur Intel-Prozessoren. In den Beschreibungen wird darauf hingewiesen, dass mit Hilfe dieses Angriffs nicht nur vertrauliche Daten aus der Enklave extrahiert werden können, sondern auch ein privater Zertifizierungsschlüssel, der das Vertrauen in das gesamte SGX-Ökosystem untergräbt.
Verschiedene Foreshadow-Varianten bedrohen den sogenannten System Management Mode (SMM), den Kern des Hypervisor-Betriebssystems. Einige Experten stellen fest, dass Sie mit Foreshadow Daten von virtuellen Maschinen in einer Cloud eines Drittanbieters stehlen können. Es gibt Veröffentlichungen, in denen darauf hingewiesen wird, dass Sie mit dem neuen Angriff sogar die zuvor berechneten Patches umgehen können, um sich vor Spectre- und Meltdown-Angriffen zu schützen.
Wie bei Spectre und Meltdown sollten jedoch alle wichtigen Aussagen mit äußerster Vorsicht behandelt werden. Es wurden noch keine Fälle von Diebstahl wichtiger und vertraulicher Daten mit sensationellen Angriffen registriert. Die veröffentlichten Prototypen von Exploits (wie die Autoren selbst warnen) sind nichts anderes als experimentelle Beispiele, die aus der Praxis herausgerissen wurden und nicht immer für alle funktionieren, insbesondere wenn es um virtuelle Maschinen geht. Daher ist es zu früh, um in Panik zu geraten: Um nicht nur in die Enklave einzudringen, sondern auch wirklich wichtige Informationen daraus zu extrahieren, müssen Sie es wirklich, wirklich versuchen.
Bisher gab es keine wirklich schwerwiegenden Angriffe.
Patches und Leistung
Das Thema Patches, die vor Hardware-Schwachstellen schützen (und wenn nicht, dann deren Konsequenzen ausgleichen), ist ebenfalls sehr relevant. Erinnern Sie sich an die jüngste Geschichte mit Spectre und Meltdown: Viele Maßnahmen wurden in einem Brandbefehl ergriffen, was nicht zu den besten Konsequenzen führte: plötzlicher Neustart des Systems, starker Leistungsabfall usw. Microsoft musste sogar Updates veröffentlichen , die Intel-Patches deaktivieren. In den ersten drei Monaten dieses Jahres wurden nur 32 Klagen gegen Intel eingereicht.
Große Unternehmen reagierten umgehend auf die Veröffentlichung von Informationen zur Foreshadow-Sicherheitsanfälligkeit: Intel , Red Hat , SUSE , VMware und Oracle gaben relevante Erklärungen ab. Nicht weniger schnell wurden Updates für Cisco-Produkte und für den Linux-Kernel veröffentlicht.
Nicht ohne Zwischenfälle: Intel veröffentlichte schnell Mikrocode-Updates, aber ohne seltsame Zwischenfälle: Plötzlich wurde ein Verbot der Veröffentlichung von Leistungstestergebnissen vor und nach dem Update angekündigt (dann wurde das Verbot jedoch aufgehoben ). Was es war, ist schwer zu sagen. Und das Thema der Auswirkung von Patches auf die Leistung verdient zweifellos eine separate Studie und einen separaten Artikel. Und es ist möglich, dass wir in naher Zukunft einen solchen Artikel veröffentlichen.
Fazit
In diesem Artikel haben wir einen kurzen Überblick über die Schwachstellen der Foreshadow-Klasse gegeben. Natürlich ist es im Rahmen eines Artikels unmöglich, über alle Aspekte der Schwachstellen der Foreshadow-Gruppe zu sprechen. Daher bieten wir eine Auswahl nützlicher Links für diejenigen, die mehr erfahren möchten:
Wenn Sie Erfahrung in der Analyse von Hardware-Schwachstellen und deren Folgen haben, können Sie dies gerne kommentieren.