Seitenkanalangriff

aus SecuPedia, der Plattform für Sicherheits-Informationen

Anzeige
Wechseln zu: Navigation, Suche

In der IT-Sicherheit handelt es sich grundsätzlich bei einem Seitenkanalangriff (Englisch: Side-channel attack) um einen Angriff, der auf Informationen basiert, die durch die physische Implementierung eines Computersystems gewonnen werden und nicht durch Schwächen im implementierten Algorithmus selbst. Wenn sich beispielsweise Prozesse auf einem Rechner die Speicherbereiche teilen, können sie aus der Nutzung des Speichers durch den anderen Prozess auf die durchgeführten Operationen schließen.

In der Vergangenheit wurde diese Angriffsart vornehmlich genutzt, um ein kryptographisches Gerät bei der Ausführung der kryptologischen Algorithmen zu beobachten und Zusammenhänge zwischen den beobachteten Daten und dem verwendeten Schlüssel zu finden mit dem Ziel, die Verschlüsselung zu brechen.

Meltdown und Spectre

Logo Meltdown,Bildquelle: https://meltdownattack.com/

Anfang 2018 wurden zwei Seitenkanalangriffe von verschiedenen Stellen ( Googles Project Zero, Cyberus Technology sowie der TU Graz) entdeckt, die erstmalig großflächig die Sicherheit von Computerchips beeinträchtigen. Das angegriffene Prinzip als Bestandteil des Designs heutiger Prozessoren ist, dass heutige Prozessoren mögliche Anfragen vorausahnen. Um die Performance zu erhöhen bzw. Last auszubalancieren, wird seitens der Prozessoren auf der Prozessorebene spekuliert, was die nächsten Daten und Befehle sein könnten, die verwendet werden sollen. Diese werden präventiv schon mal im Speicherraum abgelegt. Falls es zu einer tatsächlichen bereits erahnten Abfrage kommt, liegen schon (Teil)Ergebnisse im Speicher vor. Zum Ausnutzen dieser Lücke wird dafür gesorgt, das diese Spekulationen möglichst schiefgehen und die Zeit des Erkennens der fehlerhaften Spekulation möglichst lang wird, um in der Zwischenzeit auf den Speicherraum zuzugreifen. Meltdown (Kernschmelze) nutzt diesem Mechanismus zu unautorisierten Zugriffen auf den Speicher fremder Prozesse bei Intel-Prozessoren (Ausnahmen sind ältere Modelle ohne diesen Mechanismus wie z.B. Intel Atom vor 2013). Problematisch ist Meltdown vor allem für virtuelle Maschinen im Rahmen einer Server-Virtualisierung sowie für das Cloud Computing, da man hierbei von einer Instanz ausgehend den Zugriff auf eine anderen bekommen kann. Spectre (Schreckgespenst) ist eine Sicherheitslücke in 2 Varianten, von der prinzipiell alle modernen Prozessoren betroffen sind und bewirkt, dass Prozessen der Zugriff auf anderweitig nicht zugänglichen Inhalt des virtuellen Speichers in ihrem Adressraum ermöglicht wird. Diese Lücke ist zwar schwieriger auszunutzen, da die Speicherstruktur bekannt sein muss, kann aber beispielsweise schon durch Surfen (z.B. Drive-by-Download) auf eine solch böswillige Webseite im Internet mit dem im Browser installieren JavaScript ausgeführt werden und so gespeicherte Passwörter abgreifen. Deshalb sollte man als erste Schutzmaßnahme einen Browser verwenden, der die Spectre-Lücke minimiert.

Logo Spectre,Bildquelle: https://spectreattack.com/

Insgesamt haben die o.a. Sicherheitslücke nicht das Potenzial, Daten zu verändern oder zu löschen. Es können aber sensible Daten aus Speicherbereichen unbefugt ausgelesen werden. Auch müssen die Angriffe konkret auf die Ziel-Prozessor-Architektur zugeschnitten werden. Diverse Hersteller haben Software-Updates angekündigt (s.u. unter Weblinks). Oft erschweren diese allerdings nur die Ausnutzung der Sicherheitslücke. Zusammengefasst kann dazu folgende Kurzübersicht gegeben werden:

  • Spectre Variant 1 Aktualisierung der Drittanbieter-Software (CVE 2017-5753)
  • Spectre Variant 2 Aktualisierung der Firmware und des BIOS (CVE 2017-5715)
  • Meltdown Aktualisierung des Betriebssystems (CVE 2017-5754)


Zunächst schloss beispielsweise Microsoft, im Gegensatz zu einigen Linux-Distributionen, die Spectre Variant 2-Lücke (branch target injection) nicht selbst durch ein eigene Updates. Microsoft favorisierte die Indirect Branch Control-Technik von Intel (mit den neuen Prozessor-Flags IBRS, STIBP und IBPB), die ein Microcode-Update des Prozessors voraussetzt. Für diese Updates sah Microsoft die Hersteller in der Pflicht. Ab Anfang März 2018 setzte aber bei Microsoft ein Umdenken ein, für Skylake-Prozessoren wurden nun Updates ausgeliefert, weitere Prozessortypen sollen folgen (bisher auch Intels Kaby Lake- und Coffee Lake-Prozessoren[1][2] sowie alle AMD-Prozessoren mit Windows 10[3]). Google hat dagegen eine neue Compiler-Option namens Retpoline entwickelt, die ohne Microcode-Update auskommt[4] und vornehmlich bei Linux mit älteren Prozessoren eingesetzt wird. Allerdings können damit nicht alle Probleme gelöst werden (so z.B. bei Verschlüsselungs- und Sicherheitsprogrammen, die aus Sicherheitsgründen als "no dumpable" markiert sind), so dass nun auch bei Linux die o.g. Indirect Branch Control-Technik von Intel beispielsweise bei Skylake-Prozessoren implementiert wird[5]. Zur Minimierung der Spectre Variant 1-Lücke (bounds check bypass) gibt es bei Microsoft Updates der Anwendungs-Binarys und des Browsers (KB4056568 beim Internetexplorer, siehe Bild).
IE 11 mit installiertem KB4056568
Auch andere Browser (Firefox, Chrome) stellten Updates zur Verfügung[6]. Im Wesentlichen wird hierbei der Time Stamp Counter (TSC) zur Zeitmessung etwas unpräziser gemacht, um den Cache-Aliasing-Konflikt abzuschwächen. Als Schutz gegen die Spectre Variant 1-Lücke in Analogie zu den Microsoft Binary-Updates stellt Linux nun das neues Makro array_index_nospec() zur Verfügung, welches allerdings erst durch die Entwickler in die Applikationen integriert werden muss. Die Meltdown-Lücke (rogue data cache load) wird bei Windows per Update durch eine bessere Trennung der Speicherbereiche von Kernel und Anwendungen (Isolate Kerne and User Mode Page Tables) und bei Linux mit KPTI (Kernel page-table Isolation) minimiert. Endgültig können die Meltdown- und Spectre-Probleme wohl nur durch eine neue Hardware-Generation von Chips, die den System- und die Userbereiche im Speicher trennen, gelöst werden. Insofern erinnert die Lage an die Situation beim VW-Abgasskandal in der Autoindustrie. Intel hat für die zweiten Hälfte des Jahres 2018 solche neuen geschützten Prozessoren angekündigt[7].

Insgesamt wird der Nutzer mit dem Problem doch sehr allein gelassen [8]. Die Hersteller hatten genug Zeit durch den eingeräumten Wissens-Vorlauf, um saubere Prozesse zur gemeinsamen Schließung der Sicherheitslücken aufzusetzen. Nun ist doch wieder der Nutzer gefordert und muss sich "seine" Updates selbst zusammensuchen. Da verschiedene Antivirenprogramme bei Windows-Rechnern mit dem Microsoft-Update nicht kompatibel waren, wurde zunächst das Update nur an Rechner ausgerollt, deren Antivirenprogramm vom Hersteller explizit als kompatibel markiert wurde. Dies musste der Nutzer im Zweifelsfall in der Registry selbst kontrollieren. Sofern das eigene Antivirenprogramm nicht kompatibel war, wurde zu einer (vorübergehenden) Deinstallation geraten. Unter Windows 8.1 oder 10 bleibt dann zumindest der Windows Defender als Antiviren-Lösung automatisch aktiv (bei Windows 7 händisch einstellbar) und schützt das System. Das dies auch aus anderen Gründen sinnvoll sein kann, zeigt der Tipp - Virenscanner. Im Zuge des monatlichen Patchday bei Microsoft wurde im März 2018 für Windows 10, im April 2018 für alle anderen Windows-Betriebssysteme diese Prüfung wieder abgeschafft, da nun die Inkompatibilitäten ausgeräumt worden sind[9]. Hat man einen AMD-Prozessor, konnte es zu weiteren Problemen bis hin zu Systemabstürzen zu kommen[10].

Analyse-Tool "Windows Analystics" im Einsatz

Die Krönung bildete allerdings die Update-Politik bei 32-Bit-Windows-Systemen, die erst später gegen Meltdown gepatcht werden sollten[11][12]. Es wurden zunächst zwar durchaus Sicherheitspatche gegen Spectre ausgeliefert, die aber nur zusammen mit einem entsprechenden Microcode Update der Firmware aktiv werden. Somit waren 32-bit-Windows- Systeme trotz installierten Sicherheitspatch technisch auf dem gleichen Stand wie ohne Patch. Zwischenzeitlich hat Microsoft doch nachgezogen und zumindest für Windows 10 entsprechende Meltdown-Patche bereitgestellt[13]. Allerdings ist die Situation unter Linux auch nicht viel besser; hier befinden sich die entsprechenden Sicherheitspatche noch auf dem Weg in den Kernel.

Ende März 2018 wurde bekannt, dass das Windows Update gegen Meltdown beim 64-bit Windows 7 fehlerhaft war und die Lage noch verschlimmerte (Total Meltdown). Das reguläre März-Update sorgte für Abhilfe[14].

Im betrieblichen Einsatz lässt sich der Check auf Meltdown- und Spectre-Lücken per Microsofts Analyse-Tool "Windows Analystics" durchführen.

Tool InSpectre

Zur privaten Eigenprüfung kann nun das Tool InSpectre empfohlen werden. Die Unsicherheiten bezüglich der Meldungen einzelner Virenscanner zu diesem Tool konnen zwischenzeitlich ausgeräumt werden[15]. Als Maßnahmen sollte man derzeit darauf achten, Rechner mit Intel-Prozessoren gegen Meltdown zu patchen (was im Normalfall per automatischem Betriebssystem-Update - wie bei Windows/Linux - erfolgt). Gegen Spectre Variant-1 hilft derzeit (noch) das Updaten des Browsers (Update von Firefox und Chrome, Internet Explorer automatisch per Microsoft-Update). Auf Grund der derzeitigen Schwierigkeiten[16] beim Microcode-Update des Prozessors gegen die sehr schwierig auszunutzende Spectre Variant-2 kann hier derzeit noch abgewartet werden[17]. Allerdings darf bezweifelt werden, dass insbesondere für ältere Systeme noch Patche entwickelt werden. Intel hat zwischenzeitlich bestätigt, dass einige ältere Intel-Prozessoren schutzlos bleiben[18].

Für die Zukunft ist zu vermuten, dass nun noch weitere solche Hardware-Sicherheitslücken in Computerchips entdeckt werden[19], so dass sich eine ganz neue Klasse solcher Probleme etablieren wird. Auch verhindern die derzeitigen Updates die Ausnutzung der Sicherheitslücken (insbesondere Spectre Variant 1[20]) nicht vollständig; sie werden lediglich erschwert. Ein hundertprozentiger Schutz vor solchen Angriffen ist derzeit nur möglich, wenn dem Prozessor verboten wird, Instruktionen spekulativ auszuführen. Dies geht stark zu Lasten der Performance; es ist also immer eine Abwägung zwischen Performance und Sicherheit zu treffen.


Seitenkanalangriffe über Firmware

Der moderne PC besteht längst nicht mehr nur aus "dummen" Komponenten (Mainboard, CPU, RAM, Festplatte ...). In diese Hardware sind Mikrocontroller integriert, die über sogenannte Firmware gesteuert wird. Verwendet wird dazu proprietärer und meist binärer Microcode, der selten ausführlich dokumentiert ist. Dies betrifft auch Grafikkarten mit VGA-BIOS sowie Ethernet-, WLAN- und Bluetooth-Controller, Storage- und RAID-Hostadapter, externe Festplatten, Tastaturen, Gaming-Mäuse, USB-Sticks und -Hubs, Displays und Drucker.

Herausragend sind dabei extra Subsysteme zur Kontrolle der "normalen" Haupt-Prozessoren, wie die Management Engine (ME) für Intel-Chips oder der AMD Security Prozessor mit Zugriff auf RAM sowie sämtliche Schnittstellen und BUS-Systeme zum Starten des Betriebssystems und Festlegung des Chip-Funktionsumfanges. Hier wurden schon entsprechende Sicherheitslücken festgestellt[21][22]. Ein komplettes Abschalten ist mit Ausnahme einiger weniger AMD-Plattformen nicht möglich, da die Rechner sonst nicht mehr starten können. Intels Management Engine (ME) bietet weiterhin als eigene Funktionalität sogar einen Fernzugriff auf bestimmte Chipsätze an.

Aber auch über die o.a. anderen Subsysteme sind Sicherheitslücken möglich, so beispielsweise bei USB-Controllern etwa zum Einbau eines Keyloggers oder zum Zugriff auf Netzwerkverbindungen[23].

Insgesamt erweist sich damit der absolut sichere Computer in eigener Hand als Illusion.


Weblinks


Einzelnachweis

  1. "Spectre-Lücke: Microcode-Updates nun doch als Windows Update" in heise.de/Security vom 02.März.2018
  2. "Spectre-Lücke: Intels Microcode-Updates für Linux und Windows" in heise.de/Security vom 13.März.2018
  3. "AMD-Prozessoren bekommen Windows-10-Update gegen Spectre-V2-Lücke" in heise.de/Security vom 11.April.2018
  4. "Spectre-Lücke: AMD-Prozessoren unter Windows bislang ungeschützt" in heise.de/Security vom 26.Januar.2018
  5. "Kernel-Log:Neue Linux-Kernel verbessern Spectre-und Meltdown-Schutz" in heise.de/Security vom 09.Februar.2018
  6. "Prozessor-Bug: Browser-Hersteller reagieren auf Meltdown und Spectre" in heise.de/Security vom 04.Januar.2018
  7. "Spectre und Meltdown: Intel-Prozessoren mit vollem Hardwareschutz bereits 2018" in heise.de/Security vom 15.März.2018
  8. "Kommentar zu Meltdown & Spectre: Chaos statt Kundendienst" in heise.de/Security vom 12.Januar.2018
  9. "Meltdown- & Spectre-Updates für alle: Microsoft entfernt Antiviren-Registry-Schlüssel" in heise.de/Security vom 12.April.2018
  10. "Windows/Meltdown: Patch für 32 Bit, AMD-Problem behoben" in heise.de/Security vom 19.Januar.2018
  11. "Meltdown-Patches: 32-Bit-Systeme stehen hinten an" in heise.de/Security vom 12.Januar.2018
  12. ADV180002 | Guidance to mitigate speculative execution side-channel vulnerabilities (FAQ 7.) in Microsoft Security TechCenter vom 03.Januar.2018
  13. "Windows/Meltdown: Patch für 32 Bit, AMD-Problem behoben" in heise.de/Security vom 19.Januar.2018
  14. "Kernel-Lücke Total Meltdown: Meltdown-Patch für Windows 7 verschlimmert die Lage dramatisch" in heise.de/Security vom 28.März.2018
  15. "InSpectre – Tool für einen Test auf Meltdown und Spectre Anfälligkeit" in Deskmodder.de vom 16.Januar.2018
  16. "Meltdown & Spectre: Windows-Update deaktiviert Schutz gegen Spectre V2" in heise.de/Security vom 29.Januar.2018
  17. "Meltdown & Spectre: Immer mehr Malware, echte Angriffe unklar" in heise.de/Security vom 02.Februar.2018
  18. "Sicherheitslücke Spectre V2: Ältere Intel-Prozessoren bleiben schutzlos" in heise.de/Security vom 04.April.2018
  19. "Meltdown und Spectre: Vermutlich Scherze mit "spekulativen Angriffen" Skyfall und Solace" in heise.de/Security vom 19.Januar.2018
  20. "Meltdown & Spectre: Microsofts Compiler-Fix weitgehend wirkungslos" in heise.de/Security vom 15.Februar.2018
  21. "Intel Management Engine gehackt" in heise.de/Security vom 21.September.2017
  22. "Sicherheitsforscher beschreiben 12 Lücken in AMD-Prozessoren" in heise.de/Security vom 13.März.2018
  23. "Hintertüren in USB-Controllern auch in Intel-Systemen vermutet" in heise.de/Security vom 16.März.2018


Siehe übergeordnete Stichworte


Siehe auch



Diese Seite wurde zuletzt am 13. April 2018 um 10:25 Uhr von Oliver Wege geändert.

Anzeigen