News Spectre: Intels zukünftige CPUs sind nur optional sicher

Hhm:
Zu 3: Ja, aber der Bug alleine liefert ja noch keine Daten an irgendwen, der sie nicht sehen soll, es braucht doch schon eine Schadsoftware, die den Bug der CPUs ausnutzt, oder?
zu 1 + 2: Torvalds will eine vernünftige Lösung. Dann halte ich es für ineffizient, die, von denen er sie fordert, als morons zu beschimpfen.
 
@bernd

Ja aber bei Spectre geht es darum, dass die CPU mit normalem Code trainiert wird, bestimmte spekulative Befehle auszuführen.
Das kann man prinzipiell nicht "einfach so" erkennen. Da die Befehle welche genutzt werden, erstmal ganz normaler Code ist.

Stell dir vor, die Spekulative Befehlsausführung trainiert sich selbst, sprich sie lernt ein wenig.

Man kann das mit dem Kochen vergleichen. Stell dir vor, Du möchtest eine Suppe kochen. Dazu gehört in der Regel Zucker und Salz.
Nun zeigt Dir ein Koch, 6x verschiedene süße Suppengerichte und wie diese zubereitet werden. Es bringt dir bei, dass du während die Suppe einköchelt, immer Zucker hinzugeben musst.

Damit dies effizient geschieht, holst Du den Zucker ab diesem Training immer schon aus dem Schrank, bevor Du überhaupt das Rezept gelesen hast. (Vorbereitung ist alles!) Damit es im Falle des Falles direkt verfügbar ist. Nun gibt man dir die Aufgabe eine herbe Suppe zu kochen, an welche kein Zucker kommt.

Bis Du an dieser Stelle im Rezept angekommen bist, steht das Zucker unbenutzt auf dem Tisch. Du hast es natürlich so gelernt und entsprechend schon vorher herausgeholt. Während dieser Zeit, steht es für alle anderen frei zugänglich auf dem Tisch.

Nun merkst Du, dass Du diesmal Salz anstelle von Zucker benötigst. Du räumst den Zucker also zurück in den Schrank und holst das Salz hinaus.
Was während den 15 Minuten, in dem der Zucker auf dem Tisch stand, passiert ist, weißt Du nicht. Da man es nicht benötigte und sich somit auch nicht weiter darum gekümmert hat. Gut möglich, dass da zwischenzeitlich jemand was mit gemacht hat.

So in etwa funktioniert Spectre. Was Du nun von dem AV erwartest, ist dass dieses in der Lage wäre zu erkennen, dass überhaupt kein Zucker benötigt wird. Geht natürlich nicht.

Denn das eigentliche Problem ist, es gibt gar keinen schadhaften Code der Dich dazu bringt den Zucker auf den Tisch zu stellen.

Das hast du für dich alleine entschieden, weil Du es so gelernt hast / bzw. trainiert wurdest. Die Vorgänge während des Trainings waren auch absolut ok, da nur süße Suppen gekocht wurden.

Das Antivirenprogramm hätte also nicht nur das Rezept vorab komplett kennen müssen, sondern auch wissen müssen, das Du in deinem Kopf denkst "Ich hol schon mal den Zucker raus". Und diesen Vorgang direkt verbieten. Als einzige Gegenmaßnahme verbleibt eigentlich nur, in deinem Kopf das Gelernte "süße Suppen kochen" komplett zu löschen, bevor Du die herbe Suppe kochst.

Das geht natürlich leider nicht..
Beide Vorgänge sind für sich genommen erstmal vollkommen legitim. Plus dass ein AV nicht in deinen Kopf schauen und wissen kann, dass du beim nächsten mal direkt den Zucker rausholst.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Iscaran
Schönes Bild.

Sun_set_1 schrieb:
@bernd

Was während den 15 Minuten, in dem der Zucker auf dem Tisch stand, passiert ist, weißt Du nicht. Da man es nicht benötigte und sich somit auch nicht weiter darum gekümmert hat. Gut möglich, dass da zwischenzeitlich jemand was mit gemacht hat.

Dieser jemand, der da zwischenzeitlich was damit gemacht hat, das wäre für mich die Schadsoftware, die den Hardwarebug auszunutzen weiß. Mein Intel-Rechner alleine hat zwar jetzt eine bekannte Schwachstelle mehr - leider auf Hardwarebene und damit nicht leicht zu beseitigen - aber die wird hoffentlich noch nicht angegriffen.

Sun_set_1 schrieb:
@bernd
Was Du nun von dem AV erwartest, ist dass dieses in der Lage wäre zu erkennen, dass überhaupt kein Zucker benötigt wird. Geht natürlich nicht.
Verstehe ich glaube ich: Die CPU müsste entweder unterscheiden, wer den Zucker, den man zur Verbesserung der Geschwindigkeit noch nicht wegräumt, benutzen darf oder ihn eben rechtzeitig wieder wegräumen. Klappt offenbar nicht so ganz.
Aber ein AV-Programm könnte doch eine Software erkennen, die nach bestimmten Abläufen nach Zucker auf meinem Küchentisch im Rechner Ausschau hält. Das soll natürlich nicht heißen, dass Intel keine Hausaufgaben mehr hat.
 
Zuletzt bearbeitet:
Sun_set_1 schrieb:
So in etwa funktioniert Spectre. Was Du nun von dem AV erwartest, ist dass dieses in der Lage wäre zu erkennen, dass überhaupt kein Zucker benötigt wird. Geht natürlich nicht.
Denn das eigentliche Problem ist, es gibt gar keinen schadhaften Code der Dich dazu bringt den Zucker auf den Tisch zu stellen.


Es gibt per se keinen "schadhaften" Code, denn JEDER Code besteht aus ganz normal ausführbaren Befehlen. Spectre macht da keine Ausnahme. Und AV-Scanner können so etwas erkennen. Und zwar über eine Verhaltensanalyse.
Mir ist zwar nicht bekannt, was Avast hier genau erkennt (evtl. das flushen des Caches in einer Schleife für den Timing Angriff), aber er fängt beim Kompilieren den spectre variant1 PoC ab.
SpectreV.png
 
AV Scanner können überhaupt nichts erkennen. Das ist ein Irrglaube und verbreiteter Unsinn von den AV Herstellern. AV Scanner können nur Bekanntes erkennen. Durch kleinste primitive Änderungen am Code, tappt jede AV Crapware im Dunkeln. Auch hier gilt, ist Brain.exe die stärkste Waffe.
Saubere Quellen, Spectre sichere Software und ein Whitelisting können hier mehr ausrichten.
 
@kisser,

Vielleicht haben sie einfach nur ne Signatur für die kompilierte EXE vom PoC hinzugefügt? Wäre zugegeben etwas billig.... ;)

Edit: Ich bezweifele eine Heuristik auf Hardwarelevel auch. Manche Software will vielleicht sogar die Branch Speculation modifizieren?
 
bernd_b schrieb:
Verstehe ich glaube ich: Die CPU müsste entweder unterscheiden, wer den Zucker, den man zur Verbesserung der Geschwindigkeit noch nicht wegräumt, benutzen darf oder ihn eben rechtzeitig wieder wegräumen. Klappt offenbar nicht so ganz.
Genau das ist das Problem. Es darf ihn eigentlich niemand benutzen, weil er dafür keine Rechte hat. Die CPU erkennt das "eigentlich" auch und haut dem anderen der in den Zucker greifen will mit einer Fliegenklatsche drauf (wirft eine Exception). Das Problem ist aber, dass diese Exception zu spät kommt und die Daten bis dahin längst ausgelesen werden können.

bernd_b schrieb:
Aber ein AV-Programm könnte doch eine Software erkennen, die nach bestimmten Abläufen nach Zucker auf meinem Küchentisch im Rechner Ausschau hält. Das soll natürlich nicht heißen, dass Intel keine Hausaufgaben mehr hat.

Könnte Sie, wenn sie genau dieses eine Angriffsszenario kennt. Aber das tut sie nicht und kann sie nicht. AV-Software ist an sich dafür viel zu dumm, weil sie eben nicht entscheiden kann ob dieser Zucker nun absichtlich da steht oder versehentlich. Gleiches gilt für die hundert anderen Gewürze die schon mal bereitgestellt werden.
Die einzige Abhilfe ist sich strikt nach Rezept (Code) zu halten und nichts im Vorfeld bereitzustellen. Dann ist das Problem gelöst, aber die Geschwindigkeit bricht enorm ein. Stell dir vor du musst für jede Prise Zucker durch die halbe Küche laufen, Schrank öffnen, Zucker-Prise rausholen, wieder zurück zum Herd.
Diese Art der Lösung würde die CPU-Geschwindigkeit um zig Jahre zurückwerfen. Der Entdecker des Bugs hats sehr drastisch ausgedrückt: "Dann wären wir wieder in den 90ern".
 
yummycandy schrieb:
@kisser,
Vielleicht haben sie einfach nur ne Signatur für die kompilierte EXE vom PoC hinzugefügt? Wäre zugegeben etwas billig.... ;)

Genau genommen wäre das ein Fehlalarm, weil der PoC ja nicht bösartig ist.
Da je nach Compiler-Version und/oder -Optionen die .exe etwas anders ist glaube ich das auch nicht.
Avast hat übrigens nur diese temporär beim Kompilieren existente Datei abgefangen, die eigentliche spectre.exe ist problemlos auf die Platte geschrieben worden und lässt sich ausführen ohne dass Avast meckert.
 
Zurück
Oben