Archiv Prozessoren 8.660 Themen, 54.742 Beiträge

Diskussion um Microcode Update

cpuquäler / 9 Antworten / Flachansicht Nickles

Nach dem Rätselhaften Patch von Microsoft gibt es nun eine Diskussion in der Open Source Lobby. Sind die Fehler im C2D gefährlich? Kann dadurch Schadcode eingeschleust werden? Oder wird hier nur Trouble um nichts gemacht?

http://www.nickles.de/static_cache/538253808.html

Meine Meinung: Trouble um nichts! Die Fehler sind geringfügig und lassen sich (wenn überhaupt) nur sehr schwer ausnutzen. Außerdem gibt es diverse Möglichkeiten sich mit Bios-Updates oder Patches zu schützen. Die Fehler, die jeden Tag in Software entdeckt werden (nicht nur Betriebssysteme) stellen jede eventuell vorhandene Sicherheitslücke in Prozessoren in den Schatten, sodass sich eine solche Diskussion erübrigt.

Gruß CPUQuäler

Vorher ja... Olaf19
Andreas42 cpuquäler „Diskussion um Microcode Update“
Optionen

Hi!

Ich will einfach mal zusammenkratzen, was ich an Hintergrund wissen zu dem Thema habe. Mir scheint, dass könnte helfen, die Sache zu bewerten.

Microcode in CPUs
Die Intel-CPUs (ob das auch bei AMD so ist, weiss ich nicht), nutzen schon seit Jahren einen Trick, um die interne Bearbeitung ihrer Opcodes zu erleichtern. Sie haben einen Onlinecompiler, der aus x86-Opcodes (die sehr komplexe Operationen bedeuten können) einfacher Micro-Opcodes in der CPU generieren, die einfacher zu bearbeiten sind. Der Prozessor compiliert quasi intern die x86-Opcodes, die er ausführen muss.

Ein Grossteil der CPU-Tuningmassnahmen (intern) der letzten Jahre, spielt sich auf der Ebene dieser Micro-Opcodes ab. Das ganze parallelisieren wirkt nur für diese Opcodes und nicht für die komplexeren x86-Opcodes.

Die Wikipedia erklärt des etwas trocken: http://de.wikipedia.org/wiki/Microcode

Dort steht aber auch, dass man den Microcode in den CPUs ändern kann, d.h. die CPU kann nachträglich(!) geflasht werden. Diese Art der Microcodeupdates gibt es schon länger. AFAIK sind diese BIOS- oder Windows-Microcodeupdates keine Updates für das Bios oder Windows an sich, sondern sie flashen die CPU neu (= sie spielen eine neue Version des Microcode-Compilers in die CPU ein).

Es gibt u.a. einen Linux-Treiber, der genau solche Updates durchführen kann: http://urbanmyth.org/microcode/

Dort steht, dass dieses Update der CPU nicht permanent erfolgt, sondern bei jedem Kaltstart erfolgen muss. Ich denke, damit kommen wir der Sache näher...

Wie gesagt: die Technik ist alter. Schon die ersten PIV konnten AFAIK auf diese Art nachträglich "korrigiert" werden.

Die frage ist nun, ob Fehler bei der internen Ausführung eines oder mehrere x86-Opcodes in der CPU ausgenutzt werden können, um damit Sicherheitsfunktionen im Betriebssystem auszuhebeln.

Ich denke, dass dies denkbar ist, aber gleichzeitig unwahrscheinlich. IMHO führen die Fehler in der CPU eher dazu, dass ein Programm oder das Betriebssystem falsch arbeitet. Das löst dann i.d.R. einen internen CPU-Fehler aus, der dazu führt, dass die CPU das bearbeitete Programm stoppt. Tritt dies beim Bearbeiten einer Funktion des Beitriebssystems auf, dann tritt jemand auf, den wir alle kennen und lieben: der berühmt berüchtigte blaue-Bildschirm. ;-)

OK, der muss nicht kommen, dass Programm kann auch einfach Amoklaufen oder Mist produzieren. Kleinere Fehlermeldungen können auch passieren.

Nehmen wir jetzt an, dabei könnte eine Sicherheitslücke entstehen, die man ausnutzen kann. Es gibt dann zwei Möglichkeiten das zu beheben:

1. Durch ein Microcode-Update, dass bei jedem Start ausgeführt wird.
Suboptimal, da man die Ausführung unterbinden kann.

2. Man kann ein normales Sicherheitsupdate für das Betriebssystem oder das betroffene Programm herausbringen.
IMHO die optimale Lösung. Aber es ist dann gleichzeitig auch der Normalfall, der zur Behebung von normalen Sicherheitslücken behoben wird.

IMHO ist eine Sicherheitslücke, die zum Teil auf einem Fehler der CPU beruht, trotzdem nur eine normale Sicherheitslücke, die man wie jede Sicherheitslücke durch ein Programmupdate beheben kann. Trotzdem sind die Microcode-Updates für die CPU natürlich sinnvoll. Schliesslich ist ein korrigierter Fehler besser als ein nicht korrigierter...

Bis dann
Andreas