Microcode Decryptor, ett verktyg som låter dig avkoda mikrokoden för Intel-processorer

En grupp av Säkerhetsforskare från uCode-teamet släppte släpper projektets källkod mikrokodsdekryptering och det gör det möjligt att göra exakt vad namnet antyder: det är ett verktyg som består av tre Python-skript och är tillgängligt på GitHub.

Mikrokodsdekryptering gör det möjligt att avkoda mikrokoden för vissa Intel-processorer som Atom, Pentium och Celeron baserade på Goldmont och Goldmont Plus mikroarkitekturer, vilket öppnar dörren till olika scenarier, som att förstå hur Intel har implementerat vissa processorfunktioner eller implementerat olika funktioner och säkerhetsfixar.

Red Unlock-tekniken utvecklades av samma forskare 2020 kan användas för att extrahera den krypterade mikrokoden. Den föreslagna möjligheten att dechiffrera mikrokoden gör det möjligt att utforska mikrokodens interna struktur och metoderna för att implementera x86-maskininstruktioner. Dessutom återställde forskarna firmwareuppdateringsformatet, krypteringsalgoritmen och nyckeln som användes för att skydda mikrokoden (RC4).

För att avgöra vilken krypteringsnyckel som ska användas, en sårbarhet i Intel TXE användes för att aktivera ett odokumenterat felsökningsläge, kodnamnet "Red Unlock" av forskarna. I felsökningsläge lyckades vi ladda en dump med en fungerande mikrokod direkt från CPU:n och extrahera algoritmen och nycklarna från den.

Mikrokodsdekryptering den tillåter bara att dechiffrera mikrokoden, men det tillåter inte att ändra det, eftersom mikrokodens integritet dessutom verifieras av en digital signatur baserad på RSA-algoritmen.

När det gäller hur utvecklingen av Microcode Decryptor var möjlig nämner de att det hände för tre år sedan när Goryachy och Ermolov hittade en kritisk sårbarhet, indexerad som Intel SA-00086, som gjorde det möjligt för dem att exekvera koden som de själva valde inom det chipoberoende kärnan som inkluderade ett undersystem som kallas Intel Management Engine.

Intel har fixat buggen och släppt en patch, men eftersom chips alltid kan rullas tillbaka till en tidigare firmwareversion och sedan utnyttjas, finns det inget sätt att effektivt ta bort sårbarheten.

Efter det (för fem månader sedan) kunde trion av forskare använda sårbarheten för att komma åt ett serviceläge inbyggt i Intel-chips, i en nick till filmen The Matrix döpte forskarna sitt verktyg för att komma åt denna felsökare som tidigare odokumenterade Chip Red P-piller, eftersom det gör det möjligt för forskare att uppleva det inre funktionen hos ett chip som vanligtvis är förbjudet.

En talesperson för Intel sa att:

"Det ska inte finnas någon säkerhetsrisk" som ett resultat av verktygets tillgänglighet. Faktum är att företaget sa att att tillåta fler människor att granska Intels mikrokod kan hjälpa chiptillverkaren att identifiera fler sårbarheter i framtiden. För alla som är framgångsrika med att göra det, betyder det potentiellt att tjäna lite pengar genom Intels bug-bounty-program.

”Forskarnas förmåga att analysera mikrokod kan möjliggöra upptäckten av nya sårbarheter. Eftersom denna mikrokod har avslöjats, bjuder Intel in forskare att delta i mikrokodbug-bounty-programmet ifall några problem upptäcks”, berättade de för oss.

För sin del kommenterade utvecklarna av detta verktyg det

"Möjligheten att läsa CPU-mikrokod kan hjälpa till att förstå hur Intel implementerade teknologier som Intel Trusted Execution Technology (TXT) eller mildrade allvarliga sårbarheter som Meltdown och Spectre."

Yermolov, en av de andra forskarna, tillade att tillgången på verktyget innebär att folket nu kan du utforska XuCode, en x86-kodvariant i 64-bitarsläge som används för att implementera delar av Intel SGX som laddas ned som en mikrokoduppdatering. SGX är Intels teknologi för att skapa säkra minnesenklaver: Dessa är skyddade områden som andra program och användare, inklusive operativsystemet eller hypervisorn, inte kan störa.

XuCode är ganska intressant: de x86-specifika instruktionerna för att hantera SGX-enklaver är så komplexa att de är uppdelade i sekvenser av XuCode-instruktioner som utför de nödvändiga operationerna.

Dessa XuCode-instruktioner är standard för 86-bitars x64-arkitekturen med vissa tillägg, och delas upp i vanliga x86-mikrooperationer av processorn. När en applikation använder en SGX-instruktion på hög nivå kan processorn hoppa till sin XuCode för att fungera.

Dessa XuCode-sekvenser lagras i mikrokod och kan nu extraheras med ovanstående Python-skript och analyseras med standard x86 reverse engineering-kit.

Slutligen om du är intresserad av att veta mer om det Om verktyget kan du kontrollera detaljerna på följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.