Schützen Sie Linux oder Windows vor Spectre- und Meltdown-Schwachstellen

Eine der grundlegenden Komponenten in jedem Computer, der für die Verwendung eines Betriebssystems entwickelt wurde, unabhängig von seinem Entwickler, ist die CPU oder der Prozessor, der sich in riesigen Schritten entwickelt hat und uns neue Verarbeitungsgeschwindigkeiten, neue Technologien, mehr Kerne und all dies bietet, um Optimierung und Verbesserung des Systemstarts und der Ausführung der von uns dort installierten Programme.

All dies ist innovativ und erfüllt uns mit Emotionen, wenn wir einen Computer mit einem hervorragenden Prozessor kaufen, da wir sicher sind, dass dies eine gute Investition ist, aber was passiert, wenn der Prozessor, sei es Intel, AMD oder ein anderer, in seinem Design Sicherheitslücken aufweist dass Sie unsere Informationen und unsere Vertraulichkeit aufs Spiel setzen, da ändert sich das Thema und lässt uns darüber nachdenken, wie eine solche Situation bei renommierten Verarbeitern und großen Unternehmen weltweit passieren kann.

Nun, diese Sicherheitsanfälligkeit ist eine Realität, die vor einigen Tagen, am 4. Januar, entdeckt wurde, als die Sicherheitsanfälligkeiten Spectre und Meltdown entdeckt wurden, die mit dem Design des Prozessors verbunden sind, bei dem ein Angreifer auf Systeminformationen und Speicher zugreifen darf, wo es wichtig ist Elemente wie Verschlüsselungsschlüssel oder Passwörter untergebracht sind.

Das Schlimmste an diesem ganzen Problem ist, dass diese Schwachstellen Intel-, ARM- und AMD-Prozessoren betreffen, weshalb wir alle offen dafür sind, Opfer dieser Schwachstellen zu werden, und deshalb werden wir heute bei Solvetic gründlich analysieren, was diese Schwachstellen sind und wie sie sind Angriff und wie wir unsere Server und Geräte davor schützen können.

Denken wir daran, dass diese Schwachstellen alle Arten von Geräten sowohl auf privater als auch auf Unternehmensebene angreifen werden und derzeit werden die Patches, die uns vor Spectre und Meltdown schützen, von den Entwicklern von Betriebssystemen und Anwendungen veröffentlicht.

Was ist Spectre?

Spectre ist eine Schwachstelle, die den Prozessor dazu bringen kann, den spekulativen Ausführungsprozess zu starten, da moderne Prozessoren die Verzweigungsvorhersage nutzen und die spekulative Ausführung es ermöglicht, die Prozessorleistung zu maximieren. .

Spectre-Angriffe ermöglichen es, ein Opfer zu veranlassen, spekulativ bestimmte Operationen auszuführen, die bei der korrekten Ausführung des Programms nicht auftreten würden, und dies ermöglicht auf sehr einfache Weise, dass vertrauliche Informationen über einen Seitenkanal für den Angreifer durchgesickert sind.

Die Offenlegungshinweise dieser Schwachstellen haben zwei Varianten mit unterschiedlicher Komplexität und Auswirkungen von Spectre auf den Prozessor und damit auf die Sicherheit des Benutzers entdeckt.

Diese Varianten sind:

Variante 1 (CVE-2017-5753)Diese Sicherheitsanfälligkeit betrifft Intel-, AMD- und ARM-Prozessoren und ermöglicht es dem Angreifer, die Programme fehlerfrei zu täuschen, indem Best Practices befolgt werden, um alle auf dem Computer gespeicherten Benutzerinformationen zu filtern.

Dies wurde am 3. Januar dieses Jahres vom Google Project Zero-Team entdeckt und diese Variante nutzt die spekulative Ausführung exzessiv, um Limit-Check-Bypass-Aufgaben durchzuführen, was dazu führt, dass der Kernel-Code spekulativ unter Kontrolle des Angreifers umgeleitet wird.

Eine Liste von Systemen, die von dieser Variante angegriffen werden können, sind:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • RHEV-M 4.0
  • RHEV-M für Server
  • Red Hat Enterprise Linux OpenStack Platform 7.0 (Kilo) für RHEL 7
  • Red Hat Enterprise Linux OpenStack Platform 6.0 (Juno) für RHEL 7
  • Red Hat Enterprise MRG 2
  • Red Hat OpenStack-Plattform v 8/9/10/11/12
  • Debian Linux keuchend
  • Debian Linux jessie
  • Debian-Linux-Stretch
  • Debian-Linux-Buster, sid
  • SUSE Linux Enterprise Server für Raspberry Pi 12 SP2
  • SUSE OpenStack Cloud 6
  • Openstack Cloud Magnum Orchestration 7
  • SUSE Container-as-a-Service-Plattform ALLE
  • SUSE Linux Enterprise High Availability 12 SP2 / SP3
  • SUSE Linux Enterprise Live-Patching 12
  • SUSE Linux Enterprise-Modul für Public Cloud 12
  • SUSE Linux Enterprise Server 11 SP3-LTSS
  • SUSE Linux Enterprise Server 11 SP4
  • SUSE Linux Enterprise Software Development Kit 11/12 SP3 / SP4
  • SUSE Linux Enterprise für SAP 12 SP1
  • SUSE Linux Enterprise 11
  • SUSE Linux Enterprise 12
  • OpenSuse Linux basierend auf SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • Amazon Linux-AMI

Variante 2 (CVE-2017-5715)Diese Variante ist für das Auslösen einer spekulativen Ausführung durch Verwendung von Branch Target Injection verantwortlich. Es basiert auf dem Vorhandensein einer bestimmten, genau definierten Befehlsfolge im privilegierten Code sowie auf der Situation, dass Speicherzugriffe dazu führen können, dass das Datencaching des Mikroprozessors einschließlich spekulativ ausgeführter Befehle niemals kompromittiert wird.

Dank dieser Variante hätte ein Angreifer ohne Berechtigungen die Möglichkeit, die Grenzen des Systems und des Computers zu überschreiten, den privilegierten Speicher durch gezielte Side-Channel-Cache-Angriffe auszulesen und so die Sicherheit des Benutzers durchdrungen zu sehen.

Die betroffenen Systeme sind die gleichen wie die oben aufgeführten.

Um diese Varianten unter Linux zu verhindern, können wir den folgenden Prozess durchführen.

In CentOS- oder RedHat-Umgebungen führen wir zunächst die folgenden Zeilen aus:

 uname -r sudo yum update

Sobald das System aktualisiert ist, starten wir das System neu, indem wir die Zeile ausführen:

 sudo neu starten
Dann bestätigen wir mit dem Befehl erneut, dass der Kernel aktualisiert wurde:
 uname -r
Abschließend überprüfen wir, ob die Varianten im System angewendet werden, indem wir Folgendes ausführen:
 rpm -q --changelog-Kernel | egrep 'CVE-2017-5715 | CVE-2017-5753 | CVE-2017-5754' 

VERGRÖSSERN

Bei Verwendung von Ubuntu oder Debian können wir die folgenden Zeilen ausführen:

 sudo apt-get update sudo apt-get upgrade sudo shutdown -r 0

Spectre-AngriffsformenSpectre verwendet einige Angriffstechniken wie:

  • Ausnutzen der spekulativen Ausführung. Mit dieser Technik greift Spectre die Prozessoraufgabe auf der Ebene spekulativer Ausführungsbefehle mit Sequenzen an, die während der korrekten Ausführung des Programms nicht hätten ausgeführt werden dürfen, und diese Sequenzen werden schließlich umgekehrt und erzeugen vorübergehende Anweisungen, die der Angreifer ausnutzt, um den Benutzer zu filtern Informationen betroffen.
  • Angriffe mit nativem Code :. Dieser Angriff erstellt ein Programm, das geheime Daten in seinem Zugriffsspeicher enthält, und sobald dieses Programm kompiliert ist, werden die Binärdateien und gemeinsam genutzten Bibliotheken auf dem System analysiert, um Benutzerinformationen zu filtern.

Schließlich wird ein weiteres Angriffsprogramm geschrieben, das die spekulative Ausführungsfunktion der CPU ausnutzt, um die zuvor angetroffenen Sequenzen als vorübergehende Anweisungen auszuführen.

  • Angriffe mit JavaScript. Dieser Angriff wird verwendet, um die Sandbox des Browsers zu durchbrechen, indem tragbarer JavaScript-Code darin installiert wird.

Von Spectre betroffene HardwareDerzeit wurde festgestellt, dass Spectre in der Lage ist, Hardware zu verletzen, wie zum Beispiel:

  • Ivy Bridge-basierte Prozessoren
  • AMD Ryzen
  • Intel-Prozessoren
  • Qualcomm-Prozessoren

Zusammenfassend besteht der Spectre-Angriff aus folgenden Phasen:

  • Phase 1. Zunächst beginnt der Angriff mit einer Konfigurationsphase, in der der Angreifer Operationen durchführt, die zu Prozessorausfällen führen, so dass dann eine irrtümliche spekulative Ausnutzung erfolgen kann.

Während dieser Phase kann der Angreifer den Seitenkanal vorbereiten, der verwendet wird, um die Informationen des Opfers zu extrahieren.

  • Phase 2. In dieser Phase führt der Prozessor spekulativ einen oder mehrere Befehle aus, die vertrauliche Informationen aus dem Kontext des Opfers in eine Seitenkanal-Mikroarchitektur übertragen.

Dadurch kann der Angreifer eine Aktion ausführen, wie z. B. syscall, socket, und in anderen Fällen kann der Angreifer die spekulative Ausführung seines eigenen Codes ausnutzen, um sensible Informationen aus demselben Prozess durch den Benutzer zu erhalten.

  • Phase 3. In dieser Phase werden vertrauliche Daten von Spectre mithilfe von Techniken wie Flush + Reload oder Evict + Reload wiederhergestellt. Dieser Wiederherstellungsprozess besteht darin, zu messen, wie lange es dauert, die Speicheradressen in den Cache-Zeilen zu lesen, die periodisch überwacht werden.

Was ist Meltdown?

Der andere Angriff, der die Sicherheit von Benutzern beeinträchtigt, ist Meltdown, der es einem Angreifer ermöglicht, über das installierte Betriebssystem wie Microsoft Windows oder High Sierra auf die privaten Informationen des Benutzers zuzugreifen.

Sein Name wurde für die Fähigkeit vergeben, die Sicherheitsgrenzen zu überschreiten, die normalerweise von der Systemhardware auferlegt werden.

Die Meltdown-Schwachstelle wurde als CVE-2017-5754 katalogisiert, wobei darauf hingewiesen wird, dass Meltdown die grundlegende Isolation zwischen Benutzeranwendungen und dem Betriebssystem unabhängig von deren Inhalt durchdringen kann. Dieser Angriff ermöglicht einem Programm den Zugriff auf den Speicher und damit auch auf die vertraulichen Informationen anderer Programme und des Betriebssystems selbst.

Dieser Fehler wurde auch am 3. Januar vom Google Project Zero-Team und anderen zusätzlichen Teams entdeckt.
Diese Sicherheitsanfälligkeit betrifft Intel x86-64-Prozessoren, aber nicht AMD x86-64-Prozessoren.

Meltdown kann das System beeinträchtigen wie:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux
  • Debian Linux keuchend
  • Debian Linux jessie
  • Debian-Linux-Stretch
  • Deiban-Linux-Buster, sid
  • SUSE Linux Enterprise 11
  • SUSE Linux Enterprise 12
  • OpenSuse Linux basierend auf SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • Amazon Linux-AMI
  • Fenster
Derzeit haben wir die Lösung für diese Schwachstelle für die folgenden Linux-Distributionen mit ihrer Kernel-Version wie folgt:
  • RHEL 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
  • CentOS 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
  • Fedora 26 [4.14.11-200] / 27 [4.14.11-300]
  • Debian-Stretch [4.9.0-5-amd64] / Jessie [3.16.0-5-amd6] / Wheezy [3.2.0-5-amd64]
  • CoreOS [4.14.11-Coreos]
  • Arch Linux [Update zum aktuellen Rolling]
  • Gentoo Linux [Update zum aktuellen Rolling]
  • Ubuntu Linux v16.04 [4.4.0-109-generisch oder 4.13.0-26-generisch] /v17.10 [4.13.0-25-generisch] /14.04 [3.13.0-139-generisch]
  • SUSE - SLES 12 SP3 [4.4.103-6.38.1] / SLES 12 SP2 [4.4.103-92.59.1] / SLES 11 SP4 [3.0.101-108.21.1] / SLES 11 SP3-LTSS [3.0.101 -0.47.106.11.1]

Um uns vor dieser Schwachstelle CVE-2017-5754 zu schützen, können wir Folgendes ausführen:

  • Auf CentOS und RedHat:
 uname -r sudo yum update sudo reboot
  • In Fedora:
 sudo dnf --refresh update kernel 
  • Unter Debian und Ubuntu:
 uname -r sudo apt-get update sudo apt-get dist-upgrade sudo shutdown -r 0

So funktioniert MeltdownDenken wir daran, dass eines der zentralen Sicherheitsmerkmale auf Betriebsebene in modernen Betriebssystemen die Speicherisolierung ist, die dafür sorgt, dass Benutzeranwendungen keinen Zugriff auf die Speicher anderer Benutzer und Programme haben und damit verhindert, dass Anwendungen von Benutzern lesen oder schreiben können zum Kernel-Speicher.

In modernen Prozessoren wird die Trennung zwischen Kernel- und Benutzerprozessen normalerweise durch einen Prozessorbitmonitor ausgeführt, der definiert, ob ein Speicher die Fähigkeit hat, auf die Kernelseite zuzugreifen oder nicht.
Meltdown wurde als neuer Angriff entwickelt, der die Speicherisolierung vollständig überwinden kann, indem er jedem Benutzerprozess eine einfache Möglichkeit bietet, den Kernel-Speicher der laufenden Maschine zu lesen, einschließlich des gesamten physischen Speichers, der in der Kernel-Region zugewiesen ist.

Meltdown funktioniert heute auf allen gängigen Betriebssystemen und diese Schwachstelle nutzt die Seitenkanalinformationen aus, die auf den meisten modernen Prozessoren wie Intel oder AMD verfügbar sind.

Meltdown gibt einem Angreifer die Möglichkeit, Code auf einem anfälligen Prozessor auszuführen, um den gesamten Kernel einschließlich des zugewiesenen physischen Speichers in den Adressraum zu verschieben.

Der Grund für die Einfachheit und den Umfang von Meltdown sind Nebeneffekte, die durch die Ausführung außerhalb der Reihenfolge verursacht werden, dh es ist ein Merkmal aktueller Prozessoren, das entwickelt wurde, um die Latenzen von beschäftigten Ausführungseinheiten zu überwinden.

Die Meltdown-Arbeitsphasen sind:

  • Phase 1. In dieser Phase wird eine unzulässige Speicherstelle im Prozessorkern angefordert.
  • Phase 2. In dieser Phase wird eine zweite Anforderung ausgeführt, um nur dann einen gültigen Speicherplatz bedingt auszulesen, wenn die erste Anforderung einen bestimmten aktiven Wert enthält.
  • Phase 3. In dieser Phase wird die spekulative Ausführungsaufgabe ausgeführt, bei der der Prozessor die Hintergrundarbeit für die beiden vorherigen Anforderungen abschließt, bevor er überprüft, ob die ursprüngliche Anforderung ungültig ist. Sobald der Prozessor versteht, dass die Anforderungen Speicher außerhalb der Grenzen beinhalten, lehnt er beide Anforderungen ab.
  • Phase 4. Dort wird der gültige Speicherplatz erneut angefordert.

So können wir mit der Meltdown-Schwachstelle Folgendes definieren:

Der Inhalt eines vom Angreifer gewählten Speicherorts, auf den der Angreifer keinen Zugriff hat, wird in eine Systemregistrierung geladen.

Ein transienter Befehl greift basierend auf dem geheimen Inhalt des Registers auf eine Cache-Zeile zu.

Mit Flush + Reload ermittelt der Angreifer den Zugriff auf die Cache-Line und greift damit auf die im gewählten Speicherort abgelegten Informationen zu.

Sobald wir verstanden haben, wie diese Sicherheitslücken funktionieren, werden wir sehen, wie wir unsere Computer davor schützen werden, obwohl wir klarstellen müssen, dass bisher kein Angriff gemeldet wurde, der sowohl Benutzer als auch Administratoren betrifft.

1. So schützen Sie sich auf Linux-Systemen vor Spectre und Meltdown


Im Fall von Linux verwenden wir specter-meltdown-checker.sh, ein Shell-Skript, um festzustellen, ob der Linux-Kernel anfällig für die 3 CVEs ist, die wir für diese Schwachstellen erwähnt haben.

NotizDieses Skript muss als Root-Benutzer ausgeführt werden.

Schritt 1
Um dieses Skript zu installieren, gehen wir zunächst wie folgt in das Verzeichnis /tmp:

 cd / tmp / 
Schritt 2
Sobald wir uns in diesem Verzeichnis befinden, rufen wir das Skript ab, indem wir die folgende Zeile ausführen:
 wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh 

NotizEine andere Möglichkeit, es zu erhalten, besteht darin, die folgende Zeile auszuführen:

 Git-Klon https://github.com/speed47/spectre-meltdown-checker.git 

So überprüfen Sie, ob wir für Spectre oder Meltdown anfällig sind oder nichtUm die Sicherheit unserer Distribution zu überprüfen, können wir folgende Zeile ausführen:

 sudo sh spectre-meltdown-checker.sh

So einfach ist das Wir können überprüfen, ob unser System für diese neuen Bedrohungen anfällig ist.

2. So schützen Sie sich auf Windows-Systemen vor Spectre und Meltdown


In diesem Fall verwenden wir Windows 10 und müssen dazu als Administratoren auf Windows PowerShell zugreifen, indem wir mit der rechten Maustaste auf die Anwendung klicken und die Option "Als Administrator ausführen" auswählen.

Schritt 1
Sobald das PowerShell-Terminal geöffnet ist, führen wir die folgende Zeile aus:

 Install-Modul SpeculationControl
Schritt 2
In die angezeigten Fragen geben wir zur Bestätigung den Buchstaben S ein:

VERGRÖSSERN

Schritt 3
Die standardmäßige Windows-Ausführungsrichtlinie erlaubt uns nicht, dieses Skript auszuführen. Um das Skript auszuführen, müssen wir die aktuelle Konfiguration speichern, damit sie später wiederhergestellt werden kann, und dann die Ausführungsrichtlinie ändern, damit sie ausgeführt werden kann Skript. Dazu führen wir die folgenden beiden Befehle aus:

 $ SaveExecutionPolicy = Get-ExecutionPolicy Set-ExecutionPolicy RemoteSigned -Scope Currentuser

VERGRÖSSERN

Schritt 4
Jetzt können wir das Skript ausführen, indem wir Folgendes ausführen:

 Import-Modul SpeculationControl Get-SpeculationControlSettings

VERGRÖSSERN

Schritt 5
Wir können detaillierte Informationen des Systems sehen und müssen uns insbesondere zwei Zeilen ansehen:

Unterstützung des Windows-Betriebssystems für die Minderung von VerzweigungszielinjektionenDiese Zeile zeigt das Microsoft-Softwareupdate an und wenn sein Wert ist Stimmt bedeutet, dass der Computer gegen Meltdown- und Spectre-Angriffe geschützt ist.

Hardwareunterstützung für die Minderung von VerzweigungszielinjektionenDiese Zeile bezieht sich auf das Firmware- oder BIOS / UEFI-Update, das vom Computerhersteller erforderlich ist, wenn der Wert ist Stimmt Dies bedeutet, dass wir vor der Spectre-Sicherheitslücke geschützt sind.

Schritt 6
Um die Ausführungsrichtlinie auf ihre ursprüngliche Konfiguration zurückzusetzen, nachdem die Sicherheit des Systems überprüft wurde, können wir die folgende Zeile ausführen:

 Set-ExecutionPolicy $ SaveExecutionPolicy -Scope Currentuser 

VERGRÖSSERN

Schritt 7
Es lohnt sich, sich daran zu erinnern, wie wichtig es ist, das Betriebssystem auf dem neuesten Stand zu halten, da Entwickler Sicherheitspatches veröffentlichen werden, um diese Sicherheitslücken zu vermeiden:

3. Offizielle Spectre- und Meltdown-Informationen nach Herstellern


In den folgenden Links finden wir Informationen zu diesen Sicherheitslücken auf den jeweiligen Hauptentwicklerseiten und haben somit detailliertere Informationen darüber, wie Sie das Problem verhindern und einen Schritt voraus sein können:
  • Intel
  • ARM
  • AMD
  • NVIDIA
  • Microsoft Windows
  • Windows Server
  • Amazonas
  • Google
  • Android
  • Manzana
  • Lenovo
  • PS
  • Huawei
  • Cisco
  • Mozilla
  • Roter Hut
  • Debian
  • Ubuntu
  • Fedora
  • VMWare

Wie wir sehen, können wir, obwohl Sicherheitslücken immer vorhanden sind, die notwendigen Maßnahmen ergreifen, um auf Fehler aufmerksam zu machen und so zu verhindern, dass unsere Informationen beeinträchtigt werden.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave