Auch Intels Core-i7-Prozessoren brauchen bei der TLB Invalidation Aufmerksamkeit

Wie nach fast jeder Vorstellung neuer Prozessoren ist auch um Intels erste Nehalem-CPUs eine Diskussion um Bugs entbrannt.

In Pocket speichern vorlesen Druckansicht 66 Kommentare lesen
Lesezeit: 3 Min.

Über Fehler in Prozessoren wird in Fachkreisen gerne diskutiert. Neuvorstellungen von Produkten bieten willkommene Anlässe, die zahlreichen der von AMD und Intel euphemistisch "Errata" genannten Bugs zu ventilieren. Anders als einige andere Hersteller von Mikroprozessoren veröffentlichen AMD und Intel Informationen über gefundene Fehler; AMD schreibt diese in sogenannte Revision Guides, Intel nutzt dazu Specification Updates. Sowohl der Revision Guide for AMD Family 10h Processors als auch das Specification Update für den Core i7 (PDF-Dateien) beschreiben jeweils Dutzende von Fehlern. Manche davon schätzen die CPU-Hersteller als so schwerwiegend ein, dass sie sie mit einem überarbeiteten Maskensatz in kommenden Fertigungsschargen beheben, also in einem neuen CPU-Stepping. Andere beheben sie durch sogenannte Microcode-Updates, die das Mainboard-BIOS beim Initialisieren des Prozessors einspielt oder die Betriebssysteme wie Windows und Linux über spezielle Treiber in den dafür vorgesehenen Speicherbereich des Prozessors laden. Wieder andere Fehler treten nach Einschätzung der CPU-Hersteller nur extrem selten oder nur unter sehr speziellen Bedingungen auf, sodass sich eine Fehlerbehebung nicht lohnt. Und über eine weitere Fehlerklasse informieren die CPU-Hersteller Software-Entwickler vor allem deshalb, damit diese sie beim Schreiben von Code für Betriebssysteme oder Applikationen berücksichtigen und quasi "um sie herum programmieren" können.

Manche Experten stufen einige CPU-Fehler als sicherheitskritisch ein; sie könnten sich etwa von Angreifern ausnutzen lassen, um Schadcode auszuführen. Mitte vergangenen Jahres etwa hatte der OpenBSD- und OpenSSH-Gründer Theo de Raadt ein Diskussion um bestimmte Fehler der Intel-Core-2-Prozessoren losgetreten. Er kritisierte unter anderem, dass Intel spezielle Vorgaben macht, wie Betriebssysteme die TLB Invalidation handhaben sollten. Dabei geht es um das Verwerfen von Daten in bestimmten Puffern, den Translation Look-Aside Buffers (TLB). Sämtliche Specification Updates für alle Core-2-Prozessoren von Intel enthalten einen Hinweis auf dieses Problem, das Intel in einer mittlerweile veröffentlichten Application Note (PDF-Datei) beschreibt. Auch für den Core i7 empfiehlt Intel, dass Programmierer die TLB Invalidation genau berücksichtigen; ausführlicher erklärt der Band 3A des Intel 64 and IA-32 Architectures Software Develope's Manual (8,9 MByte PDF) den Umgang mit den Cache-Strukturen der aktuellen Intel-Prozessoren.

Das Gefahrenpotenzial von CPU-Bugs ist nur schwer einzuschätzen. Mit zunehmender Funktionsfülle der Prozessoren wächst die Zahl solcher Fehler; einige hängen beispielsweise mit den Virtualisierungsfunktionen zusammen, die ja eigentlich in Verbindung mit geschützten Betriebsmodi und per Speichercontroller abgeschotteten Hauptspeicherbereichen (AMD: Secure Virtual Machine, SVM/Intel: Trusted Execution Technology, TXT) für höhere Sicherheit sorgen sollen. Doch der bereits vor zwei Jahren demonstrierte Blue-Pill-Angriff setzt genau hier an; das Rootkit ist mittlerweile frei verfügbar.

Zwischenzeitlich war auch ein theoretisch möglicher Angriff über den System Management Mode, den alle aktuellen x86-Prozessoren kennen, erläutert worden. Und Kris Kaspersky von der Firma Endeavor Security, der auch auf dem letzten Intel-Entwicklerforum vertreten war, hatte auf der Sicherheitskonferenz "Hack in the Box" über potenzielle Risiken zahlreicher weiterer CPU-Bugs gesprochen. Ein Proof of Concept enthält seine inzwischen veröffentlichte Präsentation (PDF-Datei) indes nicht. (ciw)