Sehr geehrte Kunden,
proBeS Cloud Services GmbH prüft und identifiziert (mit höchster Priorität) betroffene Systeme in Bezug auf Sicherheitslücken, die in CVE-2017-5715, CVE-2017-5753 und CVE-2017-5754 beschrieben sind. Dieser Artikel beschreibt den aktuellen Status über durchgeführte Wartungsarbeiten und Serviceverfügbarkeit. Probleme im Zusammenhang mit diesen Sicherheitsanfälligkeiten in Cloud-gehosteten Services (DaaS, BaaS, DRaaS, File Services, etc.) die von proBeS Cloud Services – verwaltet werden, sind gemäß dem von Herstellern (wie VMware, Microsoft, Google, Mozilla, etc.) bereitgestellten Leitfaden behoben worden.
Die Sicherheitsprobleme
Meltdown
Meltdown erlaubt unprivilegierten Prozessen die Abgrenzung zwischen Kernel und Prozessspeicher zu umgehen und damit dem vollständigen Kerneladressraum auszulesen.
Meltdown macht es sich zu Nutze, dass die CPU bei falschen Vorhersagen (Branch Prediction) unter Umständen Code ausführt, der eigentlich nie zur Ausführung hätte kommen dürfen. Was an und für sich noch keine negative Auswirkung hat, da die Sprungvorhersage (Branch Prediction) dies einige Takte später feststellt und die Ergebnisse der fälschlicherweise ausgeführten Instruktionen verwirft. Falls aber die spekulativ ausgeführten Befehle einen Speicherzugriff beinhalten, landen diese angefragten Daten auch tatsächlich in dem gewünschten Register. Da eine CPU bei spekulativ ausgeführtem Code keine Ausnahme ausführt (diese werden aufgestaut, bis die CPU weiß, ob die Sprungvorhersage richtig oder falsch war) kann so durch geschickte Programmierung, Code konstruiert werden, der beliebigen Speicher in die CPU Register lädt und Instruktionen ausführen kann. Diese Instruktionen werden ausgenutzt, um in einer entsprechend präparierten Datenstruktur im CPU Cache eine Markierung zu hinterlassen.
Über eine geschickte Seitenkanalattacke kann festgestellt werden, ob eine bestimmte RAM Adresse im CPU Cache vorhanden ist (die oben angesprochene Markierung im Cache), oder nicht. Was zur praktischen Umsetzung eines Senders und Empfänger führt.
- Der „Sender“ Prozess greift auf eine Adresse im Speicher zu, den er eigentlich nicht lesen kann.
- Die CPU führt den Zugriff durch und bemerkt dabei, dass es sich um eine Schutzverletzung (Segmentation Fault) handelt und löst die Ausnahme (Exception) aus.
- Dadurch werden folgende Instruktionen eigentlich nie ausgeführt. Da die Sprungvorhersage jedoch solche Ausnahmen niemals vorhersagen kann, provoziert der Zugriff ebenfalls eine Verzweigungsfehlvorhersage (Branch-misprediction) und die folgenden Instruktionen werden von der CPU noch spekulativ ausgeführt.
- Nachfolgender Code sieht den Inhalt des zugegriffenen Speichers und basierend auf dem erhaltenen Wert greift er auf eine erlaubte Adresse zu und wird dadurch in den Cache geladen.
- Der Empfänger kann über bekannte Verfahren herausfinden, welche Adresse in Schritt 4 im Cache geladen wurde und den Inhalt des Kernelspeicher reproduzieren.
Spectre
Spectre ist eine verwandte, aber in Details unterschiedliche Attacke zu Meltdown. Während Meltdown primär auf Intel (kompatiblen) CPUs auftritt ist Spectre CPU unabhängig ausnutzbar und funktioniert auf vielen unterschiedlichen Plattformen. Analog zu Meltdown nutzt Spectre einen Seitenkanal in der Mikroarchitektur, um die Daten zu exfiltrieren (praktisch identisch zu dem Cache Array Trick in Meltdown).
Im Unterschied zu Meltdown konstruiert Spectre keinen eigenen Sender, sondern nutzt bereits vorhandenen Code des Zielprozesses und beeinflusst dann den Branch-Predictor der CPU so, dass gewünschte Instruktionen spekulativ ausgeführt werden. Im Gegensatz zu Meltdown liest Spectre Adressen aus, auf die der angegriffene Prozess tatsächlich zugreifen kann. Damit kommt es nicht zu einer Ausnahme und dem Abbruch des beteiligten Prozesses, da nur auf „legal“ lesbare Daten zugegriffen wird. Der Angriff besteht an dieser Stelle durch relativ einfache Möglichkeiten, beliebige Zielprozesse als Sender für den verdeckten Seitenkanal zu missbrauchen.
Aufgrund der Architektur und Auslegung aller Betriebssysteme, ist das Auffinden von geeignetem und ausnutzbarem Code für Spectre durchschaubar und bestimmte Best Practices für sichere Programmierung (Grenzen von Array Indices vor dem Zugriff testen) zu ausnutzbaren Code Mustern führen.
Maßnahmen zur Risikominderung
Ergebnisse zur Konformität (Compliance Report)
Konformitäts-Regeln und Berichte
Die Auswertung unserer Infrastruktur und Systemkomponenten erfolgt über eine System Center Configuration Manager – Configuration Baseline und definierten Configuration Items. Damit werden alle bestehenden sowie neue Systeme, in regelmässigen Abständen einer Prüfung unterzogen und ggf. einer automatisierten Korrektur unterzogen oder mit entsprechenden Updates versorgt. Diese Regeln werden vollautomatisiert über unsere Managementplattform bereitgestellt und verwaltet. Bekannte und neue Sicherheitsbedrohungen, können durch diese Maßnahmen, in kürzester Zeit identifiziert und behoben werden. Mit kontiunierlichen Statusberichten werden möglichen Risiken in Echtzeit sichtbar und ermöglichen uns eine schnellstmögliche Reaktion.
Name | Baseline Policy | Compliance State |
---|---|---|
ADV180002 – Speculative Execution Side-channel Vulnerabilities | Overall | Compliant |
1 – CVE-2017-5715 Hardware support for branch target injection mitigation | Required | Compliant |
2 – CVE-2017-5715 Windows OS support for branch target injection mitigation is present | Required | Compliant |
3 – CVE-2017-5715 Windows OS support for branch target injection mitigation is enabled | Required | Compliant |
4 – CVE-2017-5754 Windows OS support for kernel VA shadow is present | Required | Compliant |
5 – CVE-2017-5754 Windows OS support for kernel VA shadow is enabled | Required | Compliant |
6 – CVE-2017-5715 Speculation Control Settings KB4072698 | Required | Compliant |
Selbstverständlich unterstützen wir Sie bei allen Themen zur Risikominimierung und der Umsetzung von Konformitätsregeln! Bleiben Sie informiert – in unserem Newsletter erhalten Sie neueste Informationen zu aktuellen Themen.