clue hat geschrieben: 
12.02.2018 10:43:28
Soll heißen, sobald die Specter/Meltdown patches in der GCC angekommen sind und zuverlässig funktioneren, dann müsste doch eigentlich Stable/OldStable/Testing/SID nochmals KOMPLETT neu durchkompiliert werden, oder etwa nicht? Alles andere wäre doch grob fahrlässig. Machen das RedHat und Suse nicht auch?
Neu durchkompilieren reicht eben nicht. Das würde nur "Retpoline" einfügen, was eben gegen die Ausnutzung von "indirect branches" hilft, also gegen "Variant 2". Gegen "Variant 1" hat Intel nur "LFENCE" anzubieten, und um das zu nutzen, müssten sämtliche Programme UMGESCHRIEBEN werden (und danach natürlich auch neu durchkompiliert werden). Richtig, Red Hat müsste eigentlich das gleiche Problem haben.
Gennau das macht mir ja Gedanken. Soweit ich verstehe, gibt es bisher keine Methode, um LFENCE automatisch "sinnvoll" einzufügen - darum dauert die Absicherung des Kernels gegen "Variant 1" ja so lange. Und wenn jetzt z.B. KDE anfängt, LFENCE in seine neuste Software einzuarbeiten ... ob die das wohl allen Ernstes noch zurückportieren? Oder soll Debian das zurückportieren? Da wäre eigentlich ein neues Debian-Release fällig ... oder ne andere Strategie, um mit der Situation umzugehen.
clue hat geschrieben: 
12.02.2018 10:43:28
Bist Du Dir sicher, dass man Computersysteme mit betroffenen Prozessoren GAR NICHT absichern kann?
Ich zitiere hier mal Intel: "No computer system can be absolutely secure."
clue hat geschrieben: 
12.02.2018 10:43:28
sondern plappere auch nur das nach, was ich auf Heise und den dortigen Kommentaren so gelesen habe.
Genau das wundert mich ja auch. Alle reden nur noch darüber, wie gut sich Linux und Windows patchen lassen und wann Intel endlich mit den Microcodes in die Hufe kommt. Darüber, was "Spectre" eigentlich bewirkt, redet gar keiner mehr, auch nicht die "Fachpresse". Das Problem ist, dass es auch nur die drei CVEs gibt - Variant 1 bis 3 - und alle drei beschreiben Übergriffe in den Kernel-Speicher. Und genau die werden zur Zeit auch nur gefixt. Eigentlich müsste für jedes angreifbare Programm (alle?) eine eigene CVE auftauchen. Ich krieg ja langsam auch das Gefühl, dass ich irgendwas falsch verstanden habe und "die anderen" Recht haben ... es sieht mir nur nicht so aus.
hikaru hat geschrieben: 
12.02.2018 11:52:05
Die Sprungvorhersage der CPU weiß gar nichts von diesen Kontextwechseln*, davon weiß nur der Kernel. Der Kernel wiederum weiß nichts von spekulierten Registerinhalten. Deshalb kannst du die Sprungvorhersage nicht bei Kontextwecheln leeren, denn es gibt keinen der alle nötigen Informationen hat um zu entscheiden, wann das nötig ist.
Richtig. Aber der Kernel weiß von den Kontextwechseln. Wenn Intel ihm ein Mittel in die Hand gibt, die Sprungvorhersagetabelle bei jedem Kontextwechsel leerzuputzen, würde das nach meinem Verständnis Spectre im Keim ersticken. Sicherlich gäbe das einen hässlichen Performance impact. Den haben wir aber eh schon, ganz ohne dass auch nur ein einziges Userspace-Programm abgesichert worden wäre. Benchmarks zu einem Apache mit Retpoline und LFENCE gibt's noch gar nicht.
Und der arme Apache müsste Retpoline und LFENCE dann sinnlos bei JEDEM Durchlauf durchführen, egal ob gerade ein Kontextwechsel stattgefunden hat oder nicht.
hikaru hat geschrieben: 
12.02.2018 11:52:05
Eine Alternative wäre der komplette Verzicht auf Spekulation, was die CPU-Hersteller vermutlich per Microcode nachliefern könnten. Aber dann sind selbst unsere High-End-CPUs nur etwa 3x so schnell wie die knapp 10 Jahre alten In-Order-Atoms.
Du übertreibst. "out of order execution" ist was anderes als "speculative execution" und das ist noch mal was anderes als "branch prediction". Nebenbei sollen wir nun genau das machen ... wer sicher gehen will, muss hinter jedem "if" ein LFENCE einfügen, um die speculative execution auszuschalten (sagt Intel). Wer sicheren Code schreiben will, tut also genau das. Ansonsten muss er spekulieren, ob sein Code sich mit Spectre ausnutzen lässt. Da wird die "speculative execution" dann vom Prozessor auf den Programmierer verlagert
(Nebenbei geht das Spectre Papier noch weiter ... unter "Variations" finden sich Vorschläge, die ganz ohne "bounds check" und "indirect branches" auskommen)