Vinnaren i pepparkakshustävlingen!
  • 8
  • 9
2017-08-07, 14:16
  #97
Avstängd
53280s avatar
++ för ett utförlig inlägg. Men att patcha CPUn mikrokod är något man har lånat ifrån minidator världen.. Du kan knappast patcha en Z80 med ny mikrokod. Så att patch mikrokod är väl ändå ett ganska nytt fenomen.

Citat:
Ursprungligen postat av cellplast
Nej, microkod har förekommit i många år för större processorer. Och dagens processorer i mobiltelefoner, laptop och stationära datorer är överlägset mer avancerade än en gammal VAX. Däremot varierar det hur stor del av processorn som använder microkod. I gamla processorer styrdes i princip allt med microkod - finns processorer som kunde växla mellan olika microkod för att on-the-fly kunna växla mellan emulering av två olika processorer utan prestandaförlut för emulering.

Alla PC-processorer har en ganska lång lista med errata. Vissa låter man vara som de är. Vissa hanterar man genom specialskriven kod i drivrutiner respektive i kompilatorns runtime-library för att inte trigga felet. Men i vissa fall så släpper man microkodspatchar så processorn i grunden växlar till alternativ metod att lösa en viss uppgift. I enklaste fallet får processorn lära sig att skapa en exception när den hamnar i visst tillstånd - sedan får vanlig mjukvara hantera denna exception och göra workaround. I vissa fall får processorn internt köra en microkods-styrd state-maskin för att städa sig runt buggen.

Normalt så får du din microkod via BIOS - detta är en anledning till att moderkortstillverkarna släpper nya BIOS-uppdateringar efter att Intel släppt nya steppningar eller helt nya modeller av en processor. Men OS kan också ladda på microkod - Linux-kärnan t ex har support för att ladda ner microkod. Och nu inte bara för Intel-processorer utan även för t ex PPC. Är processorn kraftfull så har den normalt även support för laddning av microkod-fixar.

Just ROM är någonting världen inte tycker mycket om - försvann enorma mängder miljarder på buggar i maskprogrammerade processorer en gång i tiden. Nuförtiden försöker man lagra så mycket som möjligt i flash-minne eller liknande och sedan potentiellt ladda över i RAM för driftning.

Exempel på hantering i en Linux-distribution:
https://wiki.archlinux.org/index.php/microcode

Men microkod-blobarna är fortfarande inte största problemet med en hel bunt moderkort. Som jag nämnde tidigare så har nyare Intel-chipset en extraprocessor inbyggt i chipset-kretsen. Så skit i vad din i7:a gör - finns ytterligare en processor som kan adressera din hårddisk och ditt nätverkskort. Och du tillåts inte välja vilken programvara denna extra-processor skall köra. Vill den processorn köra nätverkskommunikation spelar det ingen roll vilken brandvägg din Linux eller BSD kör - och har du moderkort med inbyggt nätverkskort behöver du ju inte bli så förvånad om denna extraprocessor vet rätt väl hur det integrerade nätverkskortet fungerar.

Och massor med servermoderkort har ett extra nätverkskort inbyggt specifikt för fjärrstyrning av datorhårdvaran. Även i detta fall via en extraprocessor som kan helt ta över allt i datorn - t ex uppdatera BIOS, ändra BIOS-inställningar, formattera hårddisk etc. Allt utan behov av att du har något installerat operativsystem.

När allt går väl så kan man boota datorn och göra fullständig ominstallation av hela datorn över natten. När allt går mindre väl så kan någon annan väcka din dator och patcha in godtyckligt godis på filsystemet på din hårddisk - eller kanske i firmware i disken.

All datautrustning du använder - oberoende av leverantör eller operativsystem - är fortfarande potentiellt farlig. Bara en fråga om var din komfort-gräns går för hur mycket du vill lita på alla inblandade parter. Samt hur känslig information du har och vad konsekensen skulle bli om informationen kommer på vift eller blir modifierad.
Citera
2017-08-07, 22:28
  #98
Medlem
Citat:
Ursprungligen postat av Jonas1968
Myndigheter som skall granska källkoden skulle knappast acceptera att skriva på ett avtal där dom måste tiga om avsiktliga bakdörrar. Att inte ge ut information om sårbarheter så att hackers kan utnyttja dem för att ta över datorer eller knäcka kopieringsskydd är ju en annan sak.

Jo, de gör faktiskt det. Dock vore ju MS rökta ändå om någon upptäckte något sådant.
Citera
2017-08-08, 03:54
  #99
Medlem
Citat:
Ursprungligen postat av 53280
++ för ett utförlig inlägg. Men att patcha CPUn mikrokod är något man har lånat ifrån minidator världen.. Du kan knappast patcha en Z80 med ny mikrokod. Så att patch mikrokod är väl ändå ett ganska nytt fenomen.
Nej inte alls. Men Z80 är dels en väldigt gammal processor och dels en väldigt liten processor. De skulle väl behöva dubblera antalet transistorer i processorn (och alltså dubblera priset på den vilket hade varit katastrofalt när den var ny) om de skulle ha support för uppladdning av microkod. Samt att du skulle behövt dyr infrastruktur lika dyr som Z80:n själv på utsidan för att bjuda på denna microkod. Men microkod fanns även i gamla processorer - bara det att den var fast mask-programmerad direkt på kislet.

Men "PC-processorer" med laddningsbar microkod har funnits i en väldans massa år, eftersom det är billigare än att patcha fel än att behöva försena släpp av processor med 6-12 månader medan man gör spin-på-spin med korrigeringar direkt i fabrik - eller kanske rent av åka på återkallande av redan sålda processorer. Världen hade nog stor skandal när det kom fram att Pentium-processorn hade partiellt felaktigt data för divisions-lookup, varvid det t ex dök upp en massa skämt åt att det går åt 1,9997 Intel-intenjörer för att byta en lampa.

Gamla processorer typ VAX hade microkod för man kunde inte bygga avancerade state-maskiner i "hårdkodad" form - fanns inte CAD-datorer som hade kraft nog att designa så avancerade lösningar. Nya 32- och 64-bit microprocessorer har (partiell) microkod för att de blivit så avancerade att man även med feta datorer inte kan simulera allt eftersom det i kombinatorik fort blir för många möjliga kombinationer - blir samma exponentiella problemtillväxt som t ex används av krypto. Så i gamla mini- och stordatorer var microkod enda sättet man klarade av att bygga - medan i nya större microprocessorer är det i stället ett sättt att buggfixa. Och i en PC är det inte ett kostnadsproblem att låta BIOS skicka in ett antal kB binärblobb i processorn vid bootning (eller låta OS göra det en stund senare) - all hårdvara finns redan där.

Men hur som - microkoden är inte den mest lämpade för att ta över världens datorer. Någon behöver stjäla en bunt verktyg från Intel - eller någon Intel-ingenjör behöver stjäla en bunt CPU-tid i deras system - för att ta fram pirat-variant av ny microkod. Samt sedan behöver denne person lura OS-tillverkare eller BIOS-leverantör att distribuera denna hackade microkods-blobba.

Problemet är då klart större med de management-interface som finns, och som ju explicit är designade för att klara fjärradministration - vilka säkerhetshål finns medvetet införda? Och vilka säkerhetshål finns där för att någon inte tänkt till tillräckligt? Och vilka har tillgång till - eller kapacitet att knäcka krytot till - programvaran för den extra-processor som finns i nya Intel-chipset eller som massor med servrar har integrerat på utsidan av moderkortets chipset? OS och vilka program som levereras med OS är irrelevant om din fysiska maskin går hacka utan att ens inblanda något OS.
Citera
2017-08-31, 13:10
  #100
Moderator
Protons avatar
Fenomenet är på inga sätt nytt, finns ju records på sådant skräp sedan urminnes tider:

http://attrition.org/errata/cpo/

(vet inte hur ofta den uppdateras nuförtiden dock, men det är principen som räknas)

Extra alarmerande är ju att enterpriseprodukter inte är fredade från detta heller.
Citera
  • 8
  • 9

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback