Rebleed: Et nyt spekulativt eksekveringsangreb, der rammer Intel og AMD

Det kom nyheden for nyligEn gruppe forskere fra ETH Zürich har identificeret et nyt angreb til den spekulative udførelsesmekanisme for indirekte hop i CPU'en, som gør det muligt at udtrække information fra kernehukommelsen eller organisere et angreb på værtssystemet fra virtuelle maskiner.

Sårbarhederne fik kodenavnet Retbleed (allerede katalogiseret under CVE-2022-29900, CVE-2022-29901) og ligner i sin natur Spectre-v2-angreb.

Forskellen bunder i at organisere den spekulative eksekvering af vilkårlig kode ved at behandle "retur" (retur) instruktionen, som henter adressen til at hoppe fra stakken, i stedet for indirekte at hoppe ved hjælp af "jmp" instruktionen, indlæse adressen fra hukommelsen eller et CPU-register.

Om det nye angreb nævnes, at en angriber kan skabe betingelser for en gaffelforudsigelse forkert og organiser et bevidst spekulativt spring til en kodeblok, som ikke er tilsigtet af programmets eksekveringslogik.

I sidste ende, processoren vil afgøre, at grenforudsigelsen ikke var berettiget og vil rulle handlingen tilbage til sin oprindelige tilstand, men de behandlede data Under spekulativ udførelse de vil sidde i cachen og mikroarkitektoniske buffere. Hvis en fejlagtigt udført blok udfører en hukommelsesadgang, vil dens spekulative udførelse føre til installation i den generelle cache og læsning af data fra hukommelsen.

For at bestemme de data, der er tilbage i cachen efter den spekulative udførelse af operationer, kan angriberen bruge metoder til at bestemme de resterende data gennem tredjepartskanaler, for eksempel ved at analysere ændringer i cachelagret dataadgangstid og ikke cache.

Til bevidst udtrækning af information fra områder på et andet privilegieniveau (f.eks. fra kernehukommelsen) bruges "enheder": scripts til stede i kernen, egnet til spekulativ læsning af data fra hukommelsen, afhængigt af eksterne forhold kan det påvirkes af en angriber.

For at beskytte mod klassiske Spectre-klasseangreb, som bruger indirekte og betingede greninstruktioner, bruger de fleste operativsystemer "retpoline"-teknikken, som er baseret på at erstatte indirekte grenoperationer med "ret"-instruktionen, for hvilken der kræves en separat stack-tilstandsforudsigelse. enhed bruges i processorer, bruger ikke en grenforudsigelsesblok.

Ved introduktionen af ​​retpoline i 2018 blev Spectre-lignende adressemanipulation anset for at være upraktisk til spekulativ forgrening med "ret"-instruktionen.

Forskerne, der udviklede angrebsmetoden Rebleed demonstrerede muligheden for at skabe mikroarkitektoniske forhold at indlede en spekulativ overgang ved at bruge "ret"-instruktionen og frigivet et færdigt værktøjssæt til at identificere passende instruktionssekvenser (gadgets) for at udnytte sårbarheden i Linux-kernen, hvor sådanne forhold optræder.

I løbet af studiet, en arbejdsbedrift blev forberedt som tillader, på systemer med Intel CPU'er, fra en uprivilegeret proces i brugerrummet at udtrække vilkårlige data fra kernehukommelsen med en hastighed på 219 bytes pr. sekund og med 98% nøjagtighed.

En processorer AMD, effektiviteten af ​​udnyttelsen er meget højere, da lækagehastigheden er 3,9 KB per sekund. Som et praktisk eksempel er det vist, hvordan man bruger den foreslåede udnyttelse til at bestemme indholdet af filen /etc/shadow. På systemer med Intel-CPU'er blev et angreb for at bestemme root-adgangskode-hashen udført på 28 minutter og på systemer med AMD-CPU'er på 6 minutter.

Angrebet blev bekræftet for 6-8 generationer af Intel-processorer der blev udgivet før Q2019 1 (inklusive Skylake), og AMD-processorer baseret på Zen 1, Zen 2+ og Zen 2021 mikroarkitekturer, der blev udgivet før QXNUMX XNUMX. På nyere processormodeller, såsom AMD Zen3 og Intel Alder Lake, samt ARM-processorer, problemet er blokeret af eksisterende beskyttelsesmekanismer. For eksempel hjælper brugen af ​​IBRS (Indirect Branch Restricted Speculation) instruktioner med at beskytte mod et angreb.

Forberedte et sæt ændringer til Linux-kernen og Xen-hypervisoren, som blokerer problemet programmæssigt på ældre CPU'er. Den foreslåede Linux-kerne-patch ændrer 68 filer, tilføjer 1783 linjer og fjerner 387 linjer.

Desværre medfører beskyttelse betydelige overheadomkostninger: I tekster lavet på AMD- og Intel-processorer anslås ydeevneforringelsen at være mellem 14 % og 39 %. Det er mere at foretrække at bruge beskyttelse baseret på IBRS instruktioner, tilgængelig i nyere generationer af Intel CPU'er og understøttet siden Linux kerne 4.19.

Endelig, hvis du er interesseret i at vide mere om det, kan du konsultere detaljer i følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.