Werbung
Vor einigen Monaten machte ein Forscherteam, unter anderem mit Mitarbeitern von Google, auf sich aufmerksam, welches verstecke Fehler in CPUs erkennen wollte. Strahlung aus dem Weltall, aber auch innerhalb unserer Atmosphäre sind eine Quelle solcher Fehler. Auch durch thermische Belastung kann es zu Bitflips kommen.
Arbeiten mehrere tausend Rechenkerne zusammen mit mehreren Terabyte an Daten im Arbeitsspeicher, kommt es einerseits zu den Bitflips und andererseits zu nicht immer identischen Verhalten der CPU-Kerne. Diese zu erkennen, ist nicht ganz einfach. Der Begriff Silent Data Corruption (SDC) beschreibt, dass solche Fehler eben leise geschehen und mit normalen Mitteln nicht erkannt werden können.
Google beschreibt in einem Dokument (via GitHub), wie man zur Erkennung dieser Fehler das Projekt Silifuzz ins Leben gerufen hat. Als Fuzzing wird in der Software-Entwicklung eine Methode beschrieben, die als Test der Software einerseits den Betrieb der Software mit zufälligen Daten simuliert, aber auch Fehler erkennbar machen soll: Stichwort Penetration Tests. Google verwendet für sein Silifuzzing CPU-Simulatoren und Disassembler – man testet also zunächst in Software. Tritt hier ein Fehler auf, sollte dieser auch im Einsatz echter Prozessoren auftreten – zumindest mit einer gewissen Wahrscheinlichkeit.
Das Silifuzzing simuliert 500.000 Testszenarien. Diese fanden in den Simulationen bereits Fehler, die auch auf echten Servern nachgestellt werden konnten. Zwar habe man diese Fehler mittels anderer Methoden finden können, allerdings habe das Silifuzz 45 % mehr konkreter Fälle ausfindig machen können.
Aufgetretene Fehler waren fehlerhafte Berechnungen von Ganzzahl- und Fließkomma sowie Vektor-Berechnungen. Aber auch Floating Point Data Pointer Register (RDP) haben fehlerhafte Resultate geliefert. Die Hardware lieferte außerdem störende Signale auf Feedback-Schleifen, die ansonsten bei arithmetischen Fehlern genutzt werden sollen (SIGFPE, SIGSEGV oder SIGILL).
Google hat laut eigenen Angaben eine große Anzahl an Fehlern entdeckt, vier von ihnen im Detail analysiert und gemeinsame Muster unter den anderen analysiert. Silifuzzing soll eine von vielen Methoden werden, die in Zukunft genutzt werden sollen, um solche Fehler zu erkennen. Probleme wie eine Silent Data Corruption werden in Zukunft zunehmen – so die Einschätzung Googles.