Alla AMD Ryzen-processorer som är mottagliga för nya "Inception"-attacker som läcker känslig data

click fraud protection

En ny attack kallad Inception kan användas för att läcka känslig data från vilken AMD-processor som helst.

Viktiga takeaways

  • Forskare från ETH Zürich har utvecklat en ny övergående avrättningsattack kallad Training in Transient Execution (TTE), som utnyttjar spekulativ exekvering för att läcka kärnminne och komma åt känsliga filer som /etc/shadow på Linux maskiner.
  • Inception, end-to-end-exploatet byggt med TTE, kan läcka upp till 39 byte per sekund på AMD Zen 4 processorer och framgångsrikt hämta hashade användarkontolösenord lagrade i /etc/shadow inom 40 minuter.
  • Inception skiljer sig från andra transienta exekveringsattacker genom att infoga nya förutsägelser i grenprediktorn under övergående fönster, vilket skapar kraftfullare övergående fönster som kan användas för att svämma över returstapelbufferten och få kontroll över CPU: n. Att mildra effekterna av denna attack är tydligen utmanande.

I kölvattnet av Zenbleed, har forskare från ETH Zürich designat en ny klass av övergående avrättningsattacker, kallad Training in Transient Execution (TTE). Med hjälp av TTE byggde forskarna en end-to-end-exploat som heter Inception. Det kan läcka kärnminne med en hastighet på upp till 39 byte per sekund på AMD Zen 4, och forskarna kunde läcka /etc/shadow på en

Linux maskin på 40 minuter. Den här filen innehåller hashade lösenord för användarkonton och skyddas av systemet, endast tillgänglig för rotanvändaren. Med andra ord, denna exploatering är riktigt dålig.

Hur fungerar Inception?

Som med Zenbleed, Början (CVE-2023-20569, via Pipande dator) missbrukar spekulativ avrättning i hur det fungerar. Grenförutsägelse och spekulativ exekvering hänvisar i stort sett till när din dator utför operationer som ännu inte behövs men som troligen kommer att behövas i efterföljande cykler. Det görs ofta i tider när ditt system har lediga resurser, eftersom det påskyndar den totala bearbetningen när instruktioner eller data annars inte skulle vara redo för CPU: n. Om det utförda arbetet inte behövs kasseras det vanligtvis och processorn kan hoppa tillbaka dit den behöver för att utföra nästa korrekta instruktion. När den gör detta kallas detta en grenfelförutsägelse.

Det finns dock många problem när det kommer till spekulativ exekvering, och sårbarheter som Spectre och Zenbleed är ett resultat av det. Dessa forskare parade ihop en äldre exploatering som heter "Phantom" (som påverkade Zen 1- och Zen 2-arkitekturerna) med deras TTE-attack för att skapa Inception.

"Inception" är en referens till filmen med samma namn, där premissen för filmen bygger på att plantera en idé i någons huvud när de drömmer. I det här fallet uppger forskarna att de planterar en "idé" i CPU: n medan det på sätt och vis är "drömmer." Detta gör att den exekverar felaktiga instruktioner, vilket gör det möjligt för Inception att kapa kontrollflödet av CPU: n.

BTB är Branch Target Buffer och RSB är Return Stack Buffer. Taget från Inceptions vitbok:

"I det första träningssteget T1 kör angriparen en träningsgren vid TJ, som kolliderar med BTB-posten från PHANTOMJMP-källan PJ. Bosatt i kärnans adressutrymme är PJ adressen som initierar den rekursiva PHANTOMCALL. Offrets återvändande VR tilldelas efter PJ i kontrollflödet. Målet för PHANTOMJMP är satt till PC, där den rekursiva PHANTOMCALL kommer att triggas. I träningssteg T2 utför angriparen ett träningssamtal vid TC som kolliderar med PC i BTB, vilket kommer att fastställa förutsägelsen för PHANTOMCALL. Målet för detta träningssamtal vid är satt till PC, vilket etablerar en rekursiv PHANTOMCALL-förutsägelse. Vid exekvering av PC kommer CPU: n således rekursivt att injicera RSB-förutsägelser till avslöjande gadget G, vars plats omedelbart följer PHANTOMCALL vid PC. Eftersom PC finns i kärnutrymmet kommer träningsgrenarna TJ och TC att utlösa sidfel, som vi återställer från."

Där Inception skiljer sig från de flesta transienta exekveringsattacker är att under det transienta fönstret infogar den nya förutsägelser i grenprediktorn istället. Varje infogning skapar ytterligare övergående fönster som kan vara mer kraftfulla än tidigare. I fallet Phantom (CVE-2022-23825), kan ett övergående fönster skapas med hjälp av godtyckliga instruktioner. Detta innebär att instruktioner (som en exklusiv-eller eller XOR) kan användas som en samtalsinstruktion och skapa ytterligare övergående fönster. Detta används sedan för att svämma över returstackbufferten.

Vad kan du göra?

Det finns inte så mycket du kan göra för tillfället, och även i AMD: s fall är det svårt att säga vad de faktiskt kan göra åt det heller. För att helt mildra dess inverkan skulle AMD behöva spola varumärkesprediktorn samtidigt som den växlar mellan sammanhang, vilket kan vara oerhört kostsamt för prestanda.

AMD har föreslagit en annan begränsning, och en som gör det så att AMD har valt att alla indirekta grenar tvångsvis missförutsäga en godartad plats. Tills patchar rullas ut kommer din hårdvara dock att vara känslig.

A papper om Inception kommer att presenteras kl USENIX Security 2023 och a papper om Phantom spekulationer kommer att presenteras kl MICRO 2023. Du kan läsa dessa tidningar för att lära dig mer om utnyttjandet.