Schwachstellen auf Hardware-Ebene, neu betrachtet
Im August letzten Jahres untersuchte ich mehrere CPU-Fehler, die ernsthafte Sicherheitsbedrohungen darstellten. Die Abhilfemaßnahmen für diese Schwachstellen bestanden im Allgemeinen darin, entweder zusätzliche Befehle einzubauen oder alternative CPU-Befehle zu verwenden - Strategien, die insgesamt zu einer verminderten Systemleistung führen. Mein Argument war, dass solche Schwachstellen Ihre Infrastruktur effektiv auf den technologischen Stand einer früheren Hardware-Generation zurückwerfen, obwohl Sie für die neueste bezahlen, was einfach bedeutet, dass Sie Geld verschwenden.
Dann tauchte Spectre Anfang April wieder auf, und der bekannte Zyklus wiederholte sich. Gehen wir noch einmal zurück und vertiefen wir dieses Thema.
Spectre. Noch einmal.
Spectre ist der etwas skurrile Name für einen Fehler, der 2017 entdeckt wurde und sich seitdem zu einer Familie von Sicherheitslücken entwickelt hatentwickelt hat, die alle ähnliche oder eng verwandte Architekturfehler in CPUs ausnutzen. Mit dem Ende des Mooreschen Gesetzes (die Beobachtung, dass sich die Anzahl der Transistoren auf einem Chip etwa alle zwei Jahre verdoppelt) haben sich die Fortschritte bei CPUs dramatisch verändert. Während in den 90er und frühen 2000er Jahren neue CPU-Generationen eines Anbieters in der Regel eine Verdoppelung der Leistung bedeuteten, stoßen die heutigen Fortschritte an physikalische Grenzen. Es wird immer schwieriger, mehr Transistoren auf gleichem Raum unterzubringen, ohne die Hardware bis zum Schmelzpunkt zu überhitzen.
Anstatt schnellere CPUs zu produzieren, haben sich die Hersteller daher auf die Erhöhung der Anzahl der Kerne konzentriert. Ursprünglich war der Leistungszuwachs durch Multi-Core-CPUs bescheiden, da die Software nicht für die effektive Nutzung der parallelen Ausführung ausgelegt war. Zwar hat sich die Software seither weiterentwickelt, um mehrere Kerne besser zu nutzen, doch die physikalischen Zwänge der Wärmeableitung stellen weiterhin eine große Herausforderung dar. Heute gibt es CPUs mit über 100 Kernen und 400W TDP (Thermal Design Power), aber diese Chips arbeiten immer noch mit Taktraten, die mit denen eines 3GHz Pentium 4 von vor über 15 Jahren. Die zögerliche Arbeit an CPUs mit höherem TDP führt zu stumpfen Kühllösungen, wie Betrieb des gesamten Systems unter Wasser.
In ihrem Bestreben, die CPU-Leistung innerhalb der bestehenden thermischen Grenzen zu maximieren, haben die Hersteller verschiedene Verbesserungen eingeführt. Dazu gehören größere Cache-Größen, mehrere Caching-Ebenen, bessere Kommunikation zwischen den Chips, Integration von GPU- und Speicher-Controllern direkt in die CPU und Verbesserungen bei den Motherboard-Designs, um Signalverschlechterungen über PCIe-Lanes zu bewältigen. Eine weitere wichtige Entwicklung war die Einführung von Verzweigungsvorhersage- und Isolationsmechanismen, um zu verhindern, dass Prozesse auf einem Kern auf Daten auf einem anderen Kern zugreifen - was in Umgebungen wie Cloud Computing, wo mehrere virtuelle Maschinen auf derselben physischen Hardware arbeiten können, von entscheidender Bedeutung ist.
Die Komplexität dieser neuen Techniken bedeutet jedoch, dass Probleme bei der Umsetzung unvermeidlich sind. Verzweigungsvorhersage (ein Spezialfall der spekulativen Ausführung) z. B. geht es nicht nur darum, die aktuellen Anweisungen schneller auszuführen. Die CPU antizipiert mögliche künftige Anweisungen auf der Grundlage früherer Anweisungen und führt mögliche Pfade im Voraus aus. Diese präemptive Ausführung soll die Effizienz steigern, ähnlich wie ein Kellner in einem Restaurant, der sich darauf vorbereitet, Pommes frites zu Ihrer Bestellung hinzuzufügen, bevor Sie bestätigen, dass Sie sie haben möchten. Wenn Sie das System jedoch mit Anfragen überfordern, kann es zu Fehlern kommen - z. B. wenn Sie einen Milchshake bekommen, obwohl Sie Pommes frites bestellt haben.
Sicherheitsforscher, die vielleicht etwas mehr Zeit zur Verfügung hatten, haben es geschafft, den Mechanismus der Verzweigungsvorhersage auszunutzen, um auf Daten zuzugreifen, die eigentlich unzugänglich sein sollten, so dass ein normaler Benutzer privilegierte Systemdaten lesen oder ein Tenant einer virtuellen Maschine auf Daten eines anderen Tenants oder sogar des Host-Systems zugreifen kann. Diese Angriffe können zwar nur Daten mit einer Geschwindigkeit von einigen Kilobits pro Stunde extrahieren, doch für einen entschlossenen Angreifer reicht dies aus, um über einen längeren Zeitraum vertrauliche Informationen - wie private Schlüssel - zu extrahieren.
Die Idee bei der neuen Variante ist, dass man nicht nur Daten in vorhergesagten Zweigen betrachten kann, sondern dass man die CPU dazu bringen kann Code in anderen Zweigen auszuführen, die er sonst nicht ausführen würde. Dies ist sogar bei Systemen möglich, bei denen bereits Abhilfemaßnahmen für frühere Spectre-Angriffe ergriffen wurden, so dass jede Abhilfemaßnahme zusätzlich zu den bereits vorhandenen leistungssteigernden Korrekturen erfolgt.
Entschärfung von Hardware-Schwachstellen
Wie gehen die Hardware-Hersteller mit diesen Problemen um? Die Korrekturen für aktuelle Entwürfe umfassen Hardwareänderungen, die nur in neuen, in den kommenden Jahren hergestellten Chips erscheinen werden. Sie können nicht rückwirkend Schwachstellen in bereits auf dem Markt befindlichen CPUs beheben. Daher wirken die meisten "Korrekturen" für diese Art von Schwachstellen eher wie "Kill Switches" für die problematischen Funktionen, die entweder deaktiviert oder gedrosselt werden, um die Risiken zu mindern. Leider bedeutet dies einen erheblichen Kompromiss in Bezug auf die Leistung: Die Verzweigungsvorhersage beispielsweise ist für einen erheblichen Teil der Leistungssteigerung moderner CPUs verantwortlich. Die Deaktivierung dieser Funktion führt zu einer spürbaren Verlangsamung.
Wenn es keine Korrekturen gibt, greifen die Hersteller von Betriebssystemen auf andere Ansätze zurück - der Linux-Kernel zum Beispiel hat einen völlig anderen Ansatz für Funktionsaufrufe und Rückgaben gewählt, um den Angriffsvektor zu blockieren. Mehr Anweisungen bedeuten jedoch mehr auszuführenden Code und damit eine langsamere Ausführung, was die Leistung ebenfalls beeinträchtigt.
Wenn die neuesten CPUs nur etwa 10 % schneller sind als ihre Vorgänger und eine Spectre-bedingte Abschwächung die Leistung um mehr als diesen Wert verringert, dann ist die effektive Leistung schlechter als die der älteren Generation. Diese Auswirkung könnte tiefgreifend sein, insbesondere für Vorgänge wie das Training von KI-Modellen, bei denen eine 10 %ige Leistungsreduzierung kostspielig sein könnte.
Dieses aufkommende Problem sollte bei der Unternehmensplanung berücksichtigt werden, einschließlich der Geschäftsstrategie und der Notfallwiederherstellung. Stellen Sie sich bei Ihrer nächsten Übung die Frage, ob Ihre Infrastruktur einen Leistungsabfall von 10 % oder 15 % verkraften und trotzdem Ihre Geschäftsziele erreichen könnte. Wie würden Sie ein solches Szenario bewältigen?
Diese Überlegungen sind nicht länger hypothetisch, sondern wesentliche Bestandteile moderner Cybersicherheitsstrategien und unterstreichen, wie wichtig es ist, in einem Umfeld, in dem Hardware-Schwachstellen greifbare Auswirkungen auf die operativen Fähigkeiten haben können, die Nase vorn zu haben.