Wie geht es weiter im CPU-Geschäft nach Meltdown & Spectre? (Nachträge 2)

Sonntag, 28. Januar 2018
 / von Leonidas
 

Nachtrag vom 2. März 2018

Laut Heise wird Microsoft im Fall der Meltdown & Spectre CPU-Sicherheitslücken nun doch auf die Möglichkeit zurückgreifen, die seitens Intel zur Verfügung gestellten Microcode-Fixes mittels eines Windows-Updates auszuliefern. Dies passiert zwar derzeit erst einmal nur für Skylake-Prozessoren (KB4090007 für Windows 10), weitere Intel-Prozessoren sollen hierbei jedoch nachfolgen, das ganze ist wohl nur eine Frage der Zeit (bzw. wie schnell Intel die entsprechenden Microcode-Fixes nachliefert). Im Idealfall würde Microsoft am Ende das komplette Spectre-2-bezogene Microcode-Fix-Portfolio von Intel abbilden bzw. den PC-Nutzern liefern können – und damit eine gewichtige Lücke für diejenigen Nutzer schließen, deren PC- oder Mainboard-Hersteller aufgrund des Alters der Geräte keine BIOS-Updates mehr aus den von Intel zur Verfügung gestellten Microcode-Fixes erstellen wollen. Selbige BIOS-Updates sind zwar die insgesamt korrektere Lösung (einmal eingespielt steht der Microcode-Fix dann umgehend beim Booten zur Verfügung, während Microcode-Fixes über Windows-Update immer erst beim Betriebssystem-Start jedesmal neu geladen werden müssen), aber als Notlösung ist die Windows-Update-Methode genauso verwendbar – und in jedem Fall besser als gar keine Fixes gegen Spectre 2 einzuspielen, gerade wenn selbige seitens Intel ja sogar vorliegen.

Nachtrag vom 14. März 2018

Wie Heise ausführen und sich auch auf Basis der entsprechenden Intel-Dokumentation (PDF) belegen läßt, war Intel zuletzt recht fleissig und hat für viele ältere Prozessoren-Serien Microcode-Fixes für Spectre 2 geschrieben. Neu hinzugekommen sind entsprechende Fixes für die Intel-Architekturen Broadwell, Haswell, Ivy Bridge und Sandy Bridge – womit inzwischen fast die komplette Garde an Core-i-Prozessoren (samt deren Server-Pendanten) abgedeckt wird, einzig fehlend hierzu sind noch die Prozessoren der Nehalem-Architektur. Ganz allgemein ist Intel damit schon fast vor dem Ende des gewählten Arbeitspensums – neben Nehalem will man nur noch für die 45nm-basierten Core-2-Prozessoren entsprechende Microcode-Fixes auflegen (nicht jedoch für die 65nm-basierten Core-2-Prozessoren). Damit hat Intel seine Hausaufgaben fast gemacht – während AMD nunmehr augenscheinlich zurückhängt, bislang nichts an Microcode-Fixes fertiggestellt hat und man sich zu den eigenen älteren Prozessoren noch gar nicht einmal positioniert hat.

Die Umarbeitung der von Intel zur Verfügung gestellten Microcode-Fixes in BIOS-Updates für jedes einzelne Mainboard erfordert dann immer noch etwas Zeit, so das derzeit entsprechende BIOS-Updates zumeist nur für Mainboards der CPU-Generationen Skylake, Kaby Lake und Coffee Lake vorliegen. Die Mainboard-Hersteller sind im Retail-Bereich allerdings durchaus dabei, diese Problematik zu lösen, wie die ComputerBase in ihrer fortlaufend aktualisierten Berichterstattung hierzu notiert. Für Fälle, wo bislang kein BIOS-Update vorliegt oder aber aufgrund des OEM-Charakters der benutzten Hardware auch keines mehr zu erwarten ist, kann dann der optionale Patch KB4090007 für Windows 10 v1709 weiterhelfen, welcher inzwischen die Microcode-Fixes für Skylake, Kaby Lake und Coffee Lake enthält – und in zukünftigen Versionen dann vermutlich auch noch alle weiteren von Intel kommenden Microcode-Fixes integrieren wird. Damit sollte dann mit der Zeit langsam aber sicher die Kuh vom Eis herunterkommen bezüglich Spectre 2 – bis natürlich auf Alt-Hardware, welche nicht mehr mit Microcode-Fixes seitens der CPU-Entwickler bedacht wird und demzufolge zum "alten Eisen" gemacht wird.

Nachtrag vom 15. März 2018

Viel zitiert wird derzeit die Intel-Aussage, wonach man noch in diesem Jahr mit den im zweiten Halbjahr erscheinenden neuen Prozessoren der Core iX-8000 Serie (vermutlich weitere Coffee-Lake-Abkömmlinge oder aber von dessen Refresh "Whiskey Lake") sowie der Server/HEDT-Serie "Cascade Lake" dann auch Hardware-Änderungen gegenüber Meltdown & Spectre bieten wird. Dies erscheint beiderseits sportlich – denn üblicherweise dauert es vom finalen Design bis zum Marktstart einer neuen CPU kaum unterhalb eines ganzen Jahres, eine minimale Silizium-Änderung im Sinne eines kleinen Fixes (nicht jedoch einer Design-Änderung) benötigt immer noch etwas mehr als ein Quartal. Gut möglich natürlich, das sich Intel hierbei seinen Wissenvorsprung zu Nutze gemacht hat: Immerhin wurde Intel als einer der ersten Hersteller bereits im letzten Sommer über Meltdown & Spectre informiert und hatte zu diesem Zeitpunkt trotzdem bereits einiges an eigenem Vorwissen.

Sehr viele Details hat Intel noch nicht bekanntgegeben – es läuft wohl auf eine neuartige Partitionierung zwischen verschiedenen Anwendungen und Zugriffsebenen hinaus, welche dann auf Hardware-Ebene vor Meltdown & Spectre 2 schützen sollen. Die Formulierung "at the Silicon Level" macht es in jedem Fall eindeutig, das man hierbei mitnichten einfach mittels Microcode-Updates bereits ab Werk arbeiten will, sondern tatsächlich am Hardware-Design der Prozessoren herumgewerkelt hat. An dieser Stelle könnte sich dann auch der nochmalige 14nm-Refresh "Whiskey Lake" erklären: Hierbei dürfte es sich einfach um Kaby/Coffee-Lake-basierte Prozessoren mit einer einzigen Silizium-Änderung handelt – eben den neuen Schutzmaßnahmen gegenüber Meltdown & Spectre. Wie breit Intel "Whiskey Lake" in den Markt bringen will, ist noch unklar, immerhin droht wenig später zum Jahreswechsel 2018/19 dann bereits die nächste Intel-Generation "Ice Lake" – welche diese Änderungen aller Vermutung nach ebenfalls erhalten wird, selbst wenn von "Ice Lake" bereits seit einiger Zeit fertige Silizium-Stücke (zur Evaluierung des Designs) existieren.

Im Zuge dieser Entwicklung wurde das gestern bereits neu aufgelegte Diagramm mit dem Patch-Stand zu Spectre 2 dann nochmals aktualisiert. Primär wurden hierbei reihenweise zukünftige CPU-Generationen der (sogenannten) "Schutzklasse 3" zugeschlagen, welche dann Hardware-seitige Fixes gegenüber Spectre 2 bieten wird. Dies geschah sowohl für Intel- als auch für AMD-Prozessoren – letztere hatten solcherart Hardware-Fixes bereits im Januar angekündigt, auch wenn seinerzeit an dieser Stelle (zu vorsichtig und damit fehlerhafterweise) noch bezweifelt wurde, ob dies so schnell umzusetzen sein würde. Doch wenn Intel diese Hardware-Fixes für Prozessoren des Jahres 2018 schaffen kann, dann sollte dies auch bei den AMD-Prozessoren des Jahres 2019 möglich sein. Wie gut diese Hardware-Fixes dann letztlich sind bzw. ob zukünftige Prozessoren-Generationen, die jetzt erst am Reißbrett der Entwickler entstehen, eventuell noch etwas besseres aufbieten können, wird sich allerdings nicht vor Vorliegen der ersten entsprechenden Prozessoren-Designs beantworten lassen.

Nachtrag vom 5. April 2018

Laut einem aktualisierten Support-Dokument (PDF) hat Intel seine Arbeiten an Microcode-Fixes gegen Spectre 2 nunmehr finalisiert – und hat dabei überraschenderweise einige frühere CPU-Generationen von diesem Schutz ausgenommen, welche selbigen eigentlich noch erhalten sollten. Denn laut früherer Intel-Ankündigung sollten eigentlich alle Intel-Prozessoren ab den 45nm-basierten Core-2-Prozessoren noch gegenüber Spectre 2 abgesichert werden – dies trifft nun in voller Breite nur noch ab der Intel-Generation "Sandy Bridge" zu. Die 45nm-basierten Core-2-Prozessoren erhalten leider gar nichts mehr an den (eigentlich versprochenen) Fixes, die nachfolgende Nehalem-Generation wird dagegen nur noch teilweise bedient: Microcode-Fixes gegen Spectre 2 gibt es bei der originalen Nehalem-Architektur (im Desktop-Bereich) nur noch für den Lynnfield-Core.

Jener wurde seinerzeit für beliebte Vierkern-Modelle (mit DualChannel-Speicherinterface) verwendet, sprich Core i5-750/760 und Core i7-860/870/875K/880. Dabei wird der vorher herausgekommene Nehalem-Core "Bloomfield" (Vierkern-Prozessoren Core i7-920/930/940/950/960/965/975 mit TripleChannel-Speicherinterface) jedoch nicht mehr mit entsprechenden Microcode-Fixes unterstützt. Sehr irritierend ist an dieser Stelle, das die Lynnfield-Abwandlungen "Clarksfield" (Mobile) und "Jasper Forest" (Server) keine Microcode-Fixes mehr erhalten, die Bloomfield-Abwandlung "Gainestown" (Server) hingegen doch noch – trotz jeweils absolut identischem Prozessoren-Die. Woran sich dieser höchst selektive Support begründet, ist schwer nachzuvollziehen: Zwar sind diverse technische Differenzen bei (einzelnen) dieser Modelle vorhanden, jene sind aber kaum auf der Ebene der CPU-Architektur zu suchen. Gut möglich, das sich Intel hierbei allein daran entschieden hat, was für es noch einen (angemeldeten) Bedarf gegeben hat – sprich, möglicherweise hat schlicht einer der Intel-Abnehmer signalisiert, das man noch eine erkleckliche Anzahl an Lynnfield-Prozessoren im realen Einsatz hat.

Daneben gibt es auch keine Microcode-Fixes gegen Spectre 2 bei den Sofia-SoCs – obwohl andere Atom/Silvermont-basierte SoCs jenen weiterhin erhalten werden. Auch hier dürften vermutlich Kosten/Nutzen-Erwägungen eine größere Rolle bei dieser Entscheidung gespielt haben. Ganz generell fixt Intel somit nur das an seiner "Altware", was noch eine gewisse Chance auf einen Praxiseinsatz hat – und sicherlich ist alles unterhalb der Sandy-Bridge-Generation (welche wie gesagt durchgehend mit Fixes bedient wird) diesbezüglich nicht mehr von größerer Bedeutung. Dennoch läßt man damit erhebliche Teile seines früheren Prozessoren-Portfolios bewußt ohne Schutz vor Spectre 2 – und dies ist ja mehr als nur die erwähnte Nehalem-Generation sowie der Core 2, die Problematik geht schließlich auf die ersten Intel-Prozessoren mit Out-of-Order-Architektur zurück, sprich den Pentium Pro aus dem Jahr 1995. Zumindest bei Core 2 sowie Nehalem/Westmere dürfte es zudem noch einige Systeme im Produktiveinsatz geben – und nur was davor liegt, arbeitet dann wohl nur noch im Rahmen von Retrosystemen.

Als Gegenargument kann man anbringen, das Virenschreiber kaum für solch alte und kaum noch vorhandenen Systeme noch eine Extrawurst braten, gerade wenn die neuen Systeme erwartbar allesamt abgesichert sind (bedingt natürlich das praktische Einspielen der Microcode-Fixes durch Windows oder von BIOS-Updates durch den PC-Nutzer). Sofern Spectre 2 aber mal den Weg in die typischen Exploit-Baukästen gefunden hat, wonach das ganze dann maschinell ausgeführt wird, könnte diese These auch wieder Essig sein – und dann sind sogar alle Uraltsysteme potentiell noch betroffen, für welche Intel noch nie irgendwelche Fixes angekündigt hatte. Gänzlich zufriedenstellend ist diese Patch-Strategie seitens Intel damit also nicht – im Normalfall hätte man erwarten können, das wenigstens ab dem originalen Core 2 noch wirklich alles entsprechend gefixt wird.

Zu Gute rechnen kann man Intel dagegen, das nun jenes, was man sich an Fixes vorgenommen hatte, vollständig erledigt ist – man in der Spalte "geplante Updates" inzwischen nichts mehr stehen hat. Zudem sollen alle neu erscheinenden Intel-Prozessoren gleich mit Microcode-Fixes ab Werk herauskommen, wie soeben schon bei der zweiten Welle von Coffee Lake schon realisiert. AMD hingegen hinkt in all diesen Fragen noch maßgeblich hinterher: Es fehlen sowohl die Microcode-Fixes für die im Jahr 2017 herausgebrachten Ryzen- und Threadripper-Prozessoren, als auch für die erst im Jahr 2018 (nach der Entdeckung von Meltdown & Spectre) herausgebrachten Raven-Ridge-APUs. Dabei steht schon zur Mitte des Monats die nächste Produktvorstellung in Form der Pinnacle-Ridge-Prozessoren an – für welche AMD eigentlich versprochen hatte, jene gleich mit Microcode-Fixes ab Werk auszuliefern. AMD sollte sicherlich versuchen, dies einzuhalten – und nachfolgend schnellstmöglich die entsprechenden Fixes für Summit Ridge und Raven Ridge ausliefern.

Nachtrag vom 5. April 2018

Die kürzliche Meldung über den neu aufgestellten Spectre-2-Schutz bei Intel enthielt noch einen entscheidenden Fehler: Selbst innerhalb der Westmere-Generation wird nicht jeder Prozessor mit einem entsprechenden Microcode-Fix versehen, einen wirklich durchgängigen Schutz gibt es somit erst ab der Sandy-Bridge-Generation. Innerhalb der originalen Nehalem-Generation gibt es schon Teile mit/ohne Schutz, bei dessen Refresh in Form der Westmere-Generation trifft man dann denselben Mischmasch an: Der eigentlich wichtigste Part in Form der Gulftown-Modelle des Desktop-Bereichs (Core i7-970, -980, -980X, -990X) wird nun auch nicht mehr gefixt – während dagegen die auf dem gleichen Die basierenden, aber unter dem eigenen Codenamen "Westmere-EX" laufenden Server-Modelle doch noch mit Microcode-Fixes versehen werden. Eine solide Erklärung seitens Intel dafür, wieso 100%ig Architektur-gleiche Prozessoren auf der einen Seite Fixes bekommen, auf der anderen Seite jedoch nicht, würde an dieser Stelle durchaus interessieren.

Sei es, wie es ist – in jedem Fall geht die Trennlinie nunmehr quer durch die komplette Nehalem/Westmere-Architektur, durchgängig abgesichert wird somit erst ab der Sandy-Bridge-Architektur. Bei älteren Prozessoren als Nehalem braucht man wie schon ausgeführt generell nicht mehr mit Microcode-Fixes gegen Spectre 2 rechnen, bei Nehalem & Westmere kommt es dagegen konkret auf das einzelne Modell an, wie gemäß nachstehender Tabelle zu ermitteln. Das Übersichts-Diagramm wurde gemäß der vorstehenden Fehlerkorrektur ebenfalls angepasst, kann aber leider in Bezug auf die einzelnen Parts von Nehalem & Westmere keine wirkliche Genauigkeit bieten, da es hier einfach zu viele Varianten und kein erkennbares Schema seitens Intel gibt. Der Text der vorgenannten kürzlichen Meldung wurde ebenfalls bezüglich dieses Fehlers bei der Betrachtung der Westmere-Generation angepasst, für welchen wir hiermit (mit Dank an das korrigierend eingreifende Forum) um Entschuldigung bitten.

Mobile Desktop Server
Nehalem 8C - - Nehalem-EX (Beckton)
Nehalem 4C (3Ch.) - Bloomfield
(Core i7-920, -930, -940, -950, -960, -965 XE, -975 XE)
Nehalem-EP/-WS (Gainestown)
Nehalem 4C (2Ch.) Clarksfield
(Core i7-720QM, -740QM, -820QM, -840QM, -920XM, -940XM)
Lynnfield
(Core i5-750, -750S, -760, Core i7-860, -860S, -870, -870S, -875K, -880)
Jasper Forest
Westmere 10C - - Westmere-EX
Westmere 6C - Gulftown
(Core i7-970, -980, -980X, -990X)
Westmere-EP/-ES
Westmere 2C Arrandale
(Core i3-3xx, Core i5-4xx/5xx, Core i7-6xx)
Clarkdale
(Core i3-5xx, Core i5-6xx)
-
= Spectre-2-Schutz; = kein Spectre-2-Schutz; alle Angaben laut Intels Support-Dokument (PDF) mit Stand vom 2. April 2018

Nachtrag vom 15. April 2018

Nachdem Intel seine Arbeiten an Spectre-2-bezogenen Microcode-Fixes inzwischen abgeschlossen hat und von AMD die ganze Zeit nichts offizielles zu hören war, tritt nun in einem Rutsch die komplette Gegenmaßnahme gegenüber Spectre 2 auf AMD-Prozessoren an. So verkündet der Chipentwickler auf seiner IT-Sicherheits-Webseite, das man Mainboard- und PC-Herstellern sowohl Microcode-Fixes zum Schutz vor Spectre 2 zur Verfügung stellt, als auch das Microsoft das Problem softwareseitig mit dem monatlichen Patchday (am 10. April 2018) für Windows 10 v1709) für AMD-Prozessoren angeht. Wichtig in diesem Zusammenhang ist der Punkt, das der Spectre-2-Schutz bei AMD nur dann wirkt, wenn beide Komponenten eingespielt sind – sowohl der Microcode-Fix in den Prozessoren selber als auch der Patch über Windows Update. Daraus ergibt sich auch, das es derzeit keinen Spectre-2-Schutz auf Windows-Systemen unterhalb von Windows 10 v1709 gibt – ob selbiger für frühere Windows-Systeme noch nachgereicht wird, wurde bislang nicht bekanntgegeben.

Leider ist AMD genauso schmallippig bei der Frage der konkret gefixten Prozessoren bzw. Prozessoren-Generationen: Die einzige Information hierzu ist, das es Microcode-Fixes noch hinunter bis zu den ersten Bulldozer-Prozessoren aus dem Jahr 2011 geben wird. Dies soll wohl andeuten, das alle späteren AMD-Prozessoren dann automatisch mit gefixt werden – jedoch sicherlich nicht Prozessoren-Neuvorstellungen nach 2011, welche noch älteren Prozessoren-Generationen angehörten. Dies betrifft die letzten Modelle der K10-Architektur, inklusive wohl auch der allerersten AMD-APU "Llano" auf Basis einer K10-Abwandlung. Doch auch die reine Jahresmarke sagt noch nicht alles aus: Vollkommen unklar ist, wie AMD in dieser Frage mit seinen LowPower-Architekturen umgeht: Werden Bobcat-, Jaguar- & Puma-basierte Prozessoren ebenfalls noch mit Microcode-Fixes gegenüber Spectre 2 bedient – oder aber nur noch diese Teile, welche nach dem Bulldozer-Release herauskamen (Jaguar & Puma)? Bezüglich dieser Details sollte sich AMD sicherlich noch einmal mit einer (erschöpfenden) Stellungnahme erklären, derzeit kann teilweise nur geraten werden.

Sicher ist hingegen mit dieser Bekanntgabe, was nun mit den aktuellen und zukünftigen Ryzen-Prozessoren passiert: Summit Ridge (Ryzen 1 & Threadripper) sowie Raven Ridge werden wie gesagt über die nachträglichen Microcode-Fixes bzw. entsprechende BIOS-Updates bedient, der am Donnerstag antretende Ryzen-1-Nachfolger "Pinnacle Ridge" (Ryzen 2) wird dagegen schon Microsode-Fixes ab Werk tragen. Ob jene schon in den ausgelieferten Prozessoren selber enthalten sind, ist nicht sicher, vermutlich zumindest bei der anfänglichen (derzeit schon gefertigten) Charge noch nicht. Aber dafür dürften die verkauften Mainboards diese Microcode-Fixes dann vorhalten – wenn nicht vom Start weg, dann wenigstens mit den ersten BIOS-Updates. Grob gesehen kann man dies als "Fixes ab Werk" einordnen, denn wenigstens dann, wenn die jetzt für den Launch vorproduzierten Mainboards & Prozessoren abverkauft wurden, dürften alle Nachlieferungen dann generell die Fixes gleich schon an Bord haben.

Für alle AMD-Prozessoren ab der nachfolgenden "Zen 2" Architektur-Stufe hatte AMD bekanntlich schon Fixes auf Silizium-Ebene versprochen, dies dürfte alle ab dem Jahr 2019 ausgelieferten AMD-Prozessoren betreffen. Nicht mit Spectre-2-bezogenen Microcode-Fixes bedient werden somit alle früheren AMD-Prozessoren bis zum K10 (und dessen Derivaten) – wobei AMD in seiner diesbezüglichen Dokumentation bislang nur K8- und K10-basierte Prozessoren als betroffen nennt. Allerdings wurden an dieser Stelle noch ältere AMD-Prozessoren auch nicht explizit als "nicht betroffen" gekennzeichnet – so das vor einer klärenden Stellungnahme weiterhin davon ausgegangen werden muß, das alle früheren AMD-Prozessoren mit Out-of-Order-Architektur grundsätzlich von Spectre 2 angreifbar wären. Natürlich gibt es kaum eine Chance, das sich solch alten Systeme noch im Produktiveinsatz befinden, insofern muß man hierfür nicht zwingend Fixes liefern – aber wenigstens die Dokumentation sollte vollständig sein.

Der Weg zum Schutz vor Spectre 2 bei älteren AMD-Prozessoren ist zudem etwas aufwendiger als bei Intel – wie auch, das nicht bei jedem System die reale Verfügbarkeit entsprechender Fixes garantiert werden kann. Denn im Gegensatz zu Intel werden bei AMD die Microcode-Fixes nur über reguläre BIOS-Updates zur Verfügung gestellt – was immer das Risiko beinhaltet, das einzelne Mainboard- und PC-Hersteller sich trotz seitens AMD zur Verfügung gestellter Microcode-Fixes um diese Supportarbeit bei älteren Systemen drücken. Bei Intel gibt es dagegen die Microcode-Fixes sowohl in Form von BIOS-Updates, als auch werden die Microcode-Fixes direkt über Windows Update verteilt. Damit werden dann auch solche Systeme erreicht, wo es keine BIOS-Updates mehr gibt. Bei Intel ist zwar noch nicht ganz sicher, ob diese Methode der Verteilung der Microcode-Fixes per Windows Update wirklich alle Prozessoren betrifft, vorteilhaft im Sinne einer größeren Patch-Abdeckung ist diese Methode so oder so. In diesem Sinne wäre anzuraten, das AMD sich bei Microsoft um denselben zusätzlichen Patch-Weg bemüht.

Ganz allgemein betrachtet muß zugunsten von AMD noch erwähnt werden, das die Ausnutzung von Spectre 2 auf AMD-Prozessoren generell sehr viel aufwendiger ist, in der Praxis somit ein deutlich vermindertes Risiko auf AMD-Hardware besteht. Immerhin müsste ein Angreifer einen Angriff mittels Spectre 2 speziell auf AMD-Prozessoren abstimmen – was angesichts des geringen Marktanteils von AMD gerade im professionellen Bereich als "zu viel Arbeit für zu wenig Gewinn" erscheint. Diese Argumentation funktioniert allerdings nicht mehr, sobald ein entsprechender Spectre-2-Angriff Einzug in einen der üblichen Exploit-Baukästen halten sollte – dann kann das ganze automatisiert erfolgen, besteht keine keine zusätzliche Arbeit mehr. Insofern sollte man sich nicht all zu sehr von der These täuschen lassen, das AMD-Hardware gegenüber Meltdown & Spectre grundsätzlich viel sicherer ist – dies ist eine rein technische Einordnung, gepatcht werden sollte trotzdem zwingend. Mittels der nun vorliegenden Microcode-Fixes bei AMD & Intel kann man sich nunmehr bald auf die Suche bei den Mainboard- und PC-Herstellern nach entsprechenden BIOS-Updates begeben, spätestens zum Monatsende sollte jene dann entsprechend reagiert haben.

Nachtrag vom 4. Mai 2018

Gemäß der c't drohen Intel weitere (neue) Spectre-Lücken, derzeit erst einmal "Spectre Next Generation" (Spectre NG) genannt. Aus Sicherheitsgründen gibt es noch keine Details zu den insgesamt acht gefundenen neuen Lücke, wovon die Hälfte wohl wirklich kritisch sein soll und eine davon (sehr einfach) über die Grenzen virtueller Maschinen springen können soll – was im Server-Bereich natürlich einen GAU darstellt. Nachdem die Themenlage "Meltdown & Spectre" inzwischen fast wieder vom Tisch erschien, meldet sich jene somit eindrucksvoll zurück – und bestätigt die früheren Warnungen von Sicherheits-Experten, das man speziell von Spectre noch einiges mehr hören wird. Primär betroffen ist bislang Intel, bei ARM sollen einige Prozessoren auch betroffen sein, bei AMD gibt es derzeit nur einen Verdacht, basierend auf der letztlich grundlegend gleichen Funktionsweise der CPUs. Denn in allen Fällen machen sich die Sicherheitslücken primär das spekulative Ausführen von Befehlen zunutze – eine Grundfunktion heutiger Prozessoren, aus welcher jene auch einen gehörigen Batzen an Performance ziehen.

Mittels "Spectre NG" darf jene "Speculative Execution" (eingeführt mit der Out-of-Order-Architektur des Pentium Pro im Jahr 1995) nunmehr als grundsätzlich in Frage gestellt betrachtet werden. Es ist also unsicher, ob die Prozessoren-Entwickler die sich aus diesem Architektur-Prinzip ergebenden Schwachstellen jemals wirklich abdichten können – denn es besteht natürlich die gute Chance, das auch nach "Spectre NG" noch weitere Lücken in diese Richtung hin gefunden werden. Man will den Teufel dabei nicht an die Wand malen, aber wenn hier noch mehr kommt, dann könnten die dafür notwendigen Patches irgendwann auch einmal wirklich erhebliche Performance-Einbußen nach sich ziehen. Zukünftige Prozessoren werden wohl echte Architektur-Änderungen mit sich bringen müssen, um dieser Problematik im generellen Maßstab zu begegnen – und für aktuelle Prozessoren fängt die Hängepartie der entsprechenden Patches von vorn an. Unsicher ist zudem, ob die als "Spectre-2-sicher" angekündigen Prozessoren-Generationen (bei Intel ab dem Coffee-Lake-Achtkerner, bei AMD ab der Zen-2-Generation) auch etwas gegen "Spectre NG" tun können, oder genauso nun wieder auf (neue) Patches angewiesen sind. In jedem Fall wird uns das Thema wohl (leider) weiterhin begleiten – nun unter der Aufwerfung grundsätzlicher Fragen zur Sicherheit einiger Architektur-Grundlagen heutiger CPUs.

Nachtrag vom 8. Mai 2018

Bei Golem hat man sich mit den (realen) Performance-Auswirkungen von "Meltdown & Spectre" abseits vorheriger Schreckens-Prognosen beschäftigt. Hierbei zeigte sich vieles als nicht so heiß gegessen wie gekocht, im schlimmsten Fall verlieren Server-Installationen um die 10% an insgesamter Performance, im Desktop-Bereich fällt dieser Performance-Verlust üblicherweise deutlich geringer aus. Ältere CPU-Generationen können hiervon tendentiell stärker betroffen sein, die ganz alten CPU-Generationen bekommen aber sowieso kaum noch Patches gegen Meltdown & Spectre. Abzuwarten bleibt, was "Spectre NG" hieran eventuell noch ändert: Die neu gefundenen Spectre-Lücken könnten potentiell zu stärkeren Einschränkungen der spekulativen Befehlsausführung führen bzw. jene ineffizienter werden lassen – was man dann genauso deutlich merken würde. Inbesondere, wenn am Ende noch mehr dieser Spectre-Lücken gefunden würden, sollte sich das Performance-Bild nochmals verschlechtern. Je näher zudem neue Intel-Generationen rücken, wo diese Problematik auf Architektur-Ebene angegangen wird, um so höher ist zudem die Chance, das die entsprechenden Patches weniger denn auf die eine gute Performance achten. Intel arbeitet jetzt halt zugunsten der jetzt zu verkaufenden CPUs – und zukünftig zugunsten der dann zu verkaufenden CPUs.

Nachtrag vom 22. Mai 2018

Bei Heise hat man sich in zwei Beiträgen – No.1 & No.2 – mit den acht neuen CPU-Sicherheitslücken von "Spectre Next Generation" (Spectre NG) bzw. den nun langsam anrollenden Patches hierfür beschäftigt. Leider ist der Informationsstand hierzu ziemlich ungenügend, denn Intel erwähnt derzeit nur zwei dieser acht neuen CPU-Sicherheitslücken, der Rest fällt derzeit glatt hinten runter bei offiziellen Meldungen seitens Intel. Für die zwei genannten CPU-Sicherheitslücken – Spectre V3a und Spectre V4 – wird es als primären Schutz wiederum Microcode-Fixes bzw. BIOS-Updates geben, welche "im Laufe der nächsten Monate" erscheinen sollen. Betroffen von Spectre V4 sind laut Intel alle CPUs ab der zweiten Core-Generation ("Sandy Bridge") – wobei jene Auflistung eher danach aussieht, als hätte Intel frühere Prozessoren generell nicht mehr gecheckt, jene dürften somit vermutlich genauso betroffen sein (werden aber generell nicht mehr mit Sicherheits-Anstregungen bedient). Inzwischen wird das Thema der verschiedenen Spectre-Sicherheitslücken dann langsam arg unübersichtlich – gerade bei den langen genannten Zeiträumen und dem vorliegenden Stückwerk zu deren Behebung.

Fast hat es den Anschein, als würde dieser Umstand sogar zugunsten der CPU-Entwickler (und damit primär Intel) arbeiten: Denn eine große Lücke und der dafür ausstehende Patch sind medial besser ausschlachtbar und damit für den Hersteller gefährlicher als ein Dutzend verschiedener Lücken, zu denen es mal Patches und mal keine gibt – da schaltet der Massenmedien-Konsument längst ab, dies ist dann außer für Fachleute nicht mehr überblickbar. Somit kommen Intel, Microsoft & Co. derzeit damit durch, das man diese CPU-Sicherheitslücken letztlich nur teilweise auf einigen Systemen absichert, und dies dann vor allem im Zeitrahmen von einigen Monaten und nicht umgehend. Zur Ehrenrettung von Intel & Co. sei allerdings erwähnt, daß das ganze sicherlich eine Heidenarbeit sein dürfte, welche irgendwie nebenbei (neben der normalen Arbeit) mitzuerledigen ist – und das sich bis dato immer noch keine Spectre-Angriffe in freier Wildbahn eingestellt haben. Speziell auf Consumer-Systemen sind jene auch nicht unbedingt zu erwarten, da sich hierfür einfachere Angriffsvektoren finden lassen. Für den Server-Bereich sind die entsprechenden Patches jedoch natürlich zwingend – genauso auch, wie eventuell bereits stattgefundene Angriffe sich (bedingt durch den Charakter der Lücke) schwer bis gar nicht nachweisen lassen.


Nachtrag vom 2. März 2018

Laut Heise wird Microsoft im Fall der Meltdown & Spectre CPU-Sicherheitslücken nun doch auf die Möglichkeit zurückgreifen, die seitens Intel zur Verfügung gestellten Microcode-Fixes mittels eines Windows-Updates auszuliefern. Dies passiert zwar derzeit erst einmal nur für Skylake-Prozessoren (KB4090007 für Windows 10), weitere Intel-Prozessoren sollen hierbei jedoch nachfolgen, das ganze ist wohl nur eine Frage der Zeit (bzw. wie schnell Intel die entsprechenden Microcode-Fixes nachliefert). Im Idealfall würde Microsoft am Ende das komplette Spectre-2-bezogene Microcode-Fix-Portfolio von Intel abbilden bzw. den PC-Nutzern liefern können - und damit eine gewichtige Lücke für diejenigen Nutzer schließen, deren PC- oder Mainboard-Hersteller aufgrund des Alters der Geräte keine BIOS-Updates mehr aus den von Intel zur Verfügung gestellten Microcode-Fixes erstellen wollen. Selbige BIOS-Updates sind zwar die insgesamt korrektere Lösung (einmal eingespielt steht der Microcode-Fix dann umgehend beim Booten zur Verfügung, während Microcode-Fixes über Windows-Update immer erst beim Betriebssystem-Start jedesmal neu geladen werden müssen), aber als Notlösung ist die Windows-Update-Methode genauso verwendbar - und in jedem Fall besser als gar keine Fixes gegen Spectre 2 einzuspielen, gerade wenn selbige seitens Intel ja sogar vorliegen.



Nachtrag vom 14. März 2018

Wie Heise ausführen und sich auch auf Basis der entsprechenden Intel-Dokumentation (PDF) belegen läßt, war Intel zuletzt recht fleissig und hat für viele ältere Prozessoren-Serien Microcode-Fixes für Spectre 2 geschrieben. Neu hinzugekommen sind entsprechende Fixes für die Intel-Architekturen Broadwell, Haswell, Ivy Bridge und Sandy Bridge - womit inzwischen fast die komplette Garde an Core-i-Prozessoren (samt deren Server-Pendanten) abgedeckt wird, einzig fehlend hierzu sind noch die Prozessoren der Nehalem-Architektur. Ganz allgemein ist Intel damit schon fast vor dem Ende des gewählten Arbeitspensums - neben Nehalem will man nur noch für die 45nm-basierten Core-2-Prozessoren entsprechende Microcode-Fixes auflegen (nicht jedoch für die 65nm-basierten Core-2-Prozessoren). Damit hat Intel seine Hausaufgaben fast gemacht - während AMD nunmehr augenscheinlich zurückhängt, bislang nichts an Microcode-Fixes fertiggestellt hat und man sich zu den eigenen älteren Prozessoren noch gar nicht einmal positioniert hat.


Spectre 2 Fix-Status für AMD/Intel CPU-Architekturen unter Windows (v6)

Die Umarbeitung der von Intel zur Verfügung gestellten Microcode-Fixes in BIOS-Updates für jedes einzelne Mainboard erfordert dann immer noch etwas Zeit, so das derzeit entsprechende BIOS-Updates zumeist nur für Mainboards der CPU-Generationen Skylake, Kaby Lake und Coffee Lake vorliegen. Die Mainboard-Hersteller sind im Retail-Bereich allerdings durchaus dabei, diese Problematik zu lösen, wie die ComputerBase in ihrer fortlaufend aktualisierten Berichterstattung hierzu notiert. Für Fälle, wo bislang kein BIOS-Update vorliegt oder aber aufgrund des OEM-Charakters der benutzten Hardware auch keines mehr zu erwarten ist, kann dann der optionale Patch KB4090007 für Windows 10 v1709 weiterhelfen, welcher inzwischen die Microcode-Fixes für Skylake, Kaby Lake und Coffee Lake enthält - und in zukünftigen Versionen dann vermutlich auch noch alle weiteren von Intel kommenden Microcode-Fixes integrieren wird. Damit sollte dann mit der Zeit langsam aber sicher die Kuh vom Eis herunterkommen bezüglich Spectre 2 - bis natürlich auf Alt-Hardware, welche nicht mehr mit Microcode-Fixes seitens der CPU-Entwickler bedacht wird und demzufolge zum "alten Eisen" gemacht wird.



Nachtrag vom 15. März 2018

Viel zitiert wird derzeit die Intel-Aussage, wonach man noch in diesem Jahr mit den im zweiten Halbjahr erscheinenden neuen Prozessoren der Core iX-8000 Serie (vermutlich weitere Coffee-Lake-Abkömmlinge oder aber von dessen Refresh "Whiskey Lake") sowie der Server/HEDT-Serie "Cascade Lake" dann auch Hardware-Änderungen gegenüber Meltdown & Spectre bieten wird. Dies erscheint beiderseits sportlich - denn üblicherweise dauert es vom finalen Design bis zum Marktstart einer neuen CPU kaum unterhalb eines ganzen Jahres, eine minimale Silizium-Änderung im Sinne eines kleinen Fixes (nicht jedoch einer Design-Änderung) benötigt immer noch etwas mehr als ein Quartal. Gut möglich natürlich, das sich Intel hierbei seinen Wissenvorsprung zu Nutze gemacht hat: Immerhin wurde Intel als einer der ersten Hersteller bereits im letzten Sommer über Meltdown & Spectre informiert und hatte zu diesem Zeitpunkt trotzdem bereits einiges an eigenem Vorwissen.

Sehr viele Details hat Intel noch nicht bekanntgegeben - es läuft wohl auf eine neuartige Partitionierung zwischen verschiedenen Anwendungen und Zugriffsebenen hinaus, welche dann auf Hardware-Ebene vor Meltdown & Spectre 2 schützen sollen. Die Formulierung "at the Silicon Level" macht es in jedem Fall eindeutig, das man hierbei mitnichten einfach mittels Microcode-Updates bereits ab Werk arbeiten will, sondern tatsächlich am Hardware-Design der Prozessoren herumgewerkelt hat. An dieser Stelle könnte sich dann auch der nochmalige 14nm-Refresh "Whiskey Lake" erklären: Hierbei dürfte es sich einfach um Kaby/Coffee-Lake-basierte Prozessoren mit einer einzigen Silizium-Änderung handelt - eben den neuen Schutzmaßnahmen gegenüber Meltdown & Spectre. Wie breit Intel "Whiskey Lake" in den Markt bringen will, ist noch unklar, immerhin droht wenig später zum Jahreswechsel 2018/19 dann bereits die nächste Intel-Generation "Ice Lake" - welche diese Änderungen aller Vermutung nach ebenfalls erhalten wird, selbst wenn von "Ice Lake" bereits seit einiger Zeit fertige Silizium-Stücke (zur Evaluierung des Designs) existieren.


Spectre 2 Fix-Status für AMD/Intel CPU-Architekturen unter Windows (v7)

Im Zuge dieser Entwicklung wurde das gestern bereits neu aufgelegte Diagramm mit dem Patch-Stand zu Spectre 2 dann nochmals aktualisiert. Primär wurden hierbei reihenweise zukünftige CPU-Generationen der (sogenannten) "Schutzklasse 3" zugeschlagen, welche dann Hardware-seitige Fixes gegenüber Spectre 2 bieten wird. Dies geschah sowohl für Intel- als auch für AMD-Prozessoren - letztere hatten solcherart Hardware-Fixes bereits im Januar angekündigt, auch wenn seinerzeit an dieser Stelle (zu vorsichtig und damit fehlerhafterweise) noch bezweifelt wurde, ob dies so schnell umzusetzen sein würde. Doch wenn Intel diese Hardware-Fixes für Prozessoren des Jahres 2018 schaffen kann, dann sollte dies auch bei den AMD-Prozessoren des Jahres 2019 möglich sein. Wie gut diese Hardware-Fixes dann letztlich sind bzw. ob zukünftige Prozessoren-Generationen, die jetzt erst am Reißbrett der Entwickler entstehen, eventuell noch etwas besseres aufbieten können, wird sich allerdings nicht vor Vorliegen der ersten entsprechenden Prozessoren-Designs beantworten lassen.



Nachtrag vom 5. April 2018

Laut einem aktualisierten Support-Dokument (PDF) hat Intel seine Arbeiten an Microcode-Fixes gegen Spectre 2 nunmehr finalisiert - und hat dabei überraschenderweise einige frühere CPU-Generationen von diesem Schutz ausgenommen, welche selbigen eigentlich noch erhalten sollten. Denn laut früherer Intel-Ankündigung sollten eigentlich alle Intel-Prozessoren ab den 45nm-basierten Core-2-Prozessoren noch gegenüber Spectre 2 abgesichert werden - dies trifft nun in voller Breite nur noch ab der Intel-Generation "Sandy Bridge" zu. Die 45nm-basierten Core-2-Prozessoren erhalten leider gar nichts mehr an den (eigentlich versprochenen) Fixes, die nachfolgende Nehalem-Generation wird dagegen nur noch teilweise bedient: Microcode-Fixes gegen Spectre 2 gibt es bei der originalen Nehalem-Architektur (im Desktop-Bereich) nur noch für den Lynnfield-Core.


Spectre 2 Fix-Status für AMD/Intel CPU-Architekturen unter Windows (v8)