Plundervolt er en ny angrepsmetode på Intel-prosessorer som påvirker SGX-teknologi

Intel utgitt mikrokodeoppdatering som fikser sårbarhet (CVE-2019-14607) tillater gjennom manipulering av den dynamiske spennings- og frekvenskontrollmekanismen i CPU, initier skade på innholdet i dataceller, inkludert i områder som brukes til beregninger i isolerte Intel SGX-enklaver. Angrepet kalles Plundervolt, og lar potensielt en lokal bruker eskalere privilegiene sine på systemet, forårsake tjenestenekt og få tilgang til sensitive data.

Angrepet er farlig bare i sammenheng med manipulasjoner med beregninger i SGX-enklaver, siden det krever rotrettigheter i systemet for å utføre. I det enkleste tilfellet kan en angriper oppnå forvrengning av informasjonen som behandles i enklaven, men i mer komplekse scenarier er ikke muligheten for å gjenskape de private nøklene lagret i enklaven som brukes til kryptering ved hjelp av RSA-CRT og AES-NI algoritmene. ekskludert. Teknikken kan også brukes til å generere feil i innledningsvis korrekte algoritmer for å provosere frem sårbarheter ved arbeid med minne, for eksempel for å organisere tilgang til et område utenfor grensen til den tildelte bufferen.
Prototypekode for å utføre et angrep publisert på GitHub

Essensen av metoden er å skape forhold for forekomsten av uventede datakorrupsjoner under beregninger i SGX, som bruken av kryptering og minneautentisering i enklaven ikke beskytter mot. For å introdusere forvrengning, viste det seg at det var mulig å bruke standard programvaregrensesnitt for å kontrollere frekvens og spenning, vanligvis brukt for å redusere strømforbruket under systemets tomgangstid og aktivere maksimal ytelse under intensivt arbeid. Frekvens- og spenningsegenskaper spenner over hele brikken, inkludert virkningen av databehandling i en isolert enklave.

Ved å endre spenningen kan du skape forhold der ladningen ikke er nok til å regenerere en minnecelle inne i CPUen, og verdien endres. Hovedforskjell fra angrep RowHammer er at RowHammer lar deg endre innholdet av individuelle biter i DRAM-minnet ved å syklisk lese data fra naboceller, mens Plundervolt lar deg endre biter inne i CPU-en når dataene allerede er lastet inn fra minnet for beregning. Denne funksjonen lar deg omgå integritetskontrollen og krypteringsmekanismene som brukes i SGX for data i minnet, siden verdiene i minnet forblir korrekte, men kan bli forvrengt under operasjoner med dem før resultatet skrives til minnet.

Hvis denne modifiserte verdien brukes i multiplikasjonsprosessen av krypteringsprosessen, blir utdataene avvist med feil chiffertekst. Ved å ha muligheten til å kontakte en behandler i SGX for å kryptere dataene sine, kan en angriper, forårsake feil, akkumulere statistikk om endringer i utdatachifferteksten og på noen få minutter gjenopprette verdien av nøkkelen som er lagret i enklaven. Den opprinnelige inndatateksten og den riktige utgående chifferteksten er kjent, nøkkelen endres ikke, og utdata fra en feil chiffertekst indikerer at en bit har blitt forvrengt til motsatt verdi.

Etter å ha analysert verdiparene til korrekte og korrupte chiffertekster akkumulert under forskjellige feil, ved bruk av metoder for differensiell feilanalyse (DFA, Differensiell feilanalyse) Kan forutsi sannsynlige nøkler som brukes til AES symmetrisk kryptering, og deretter, ved å analysere skjæringspunktene mellom nøkler i forskjellige sett, bestemme ønsket nøkkel.

Spill av video

Ulike modeller av Intel-prosessorer er berørt av problemet, inkludert Intel Core CPUer med 6
10. generasjon, samt femte og sjette generasjon av Xeon E3, første og andre generasjon av Intel Xeon Scalable, Xeon D,
Xeon W og Xeon E.

La oss minne deg på at SGX-teknologi (Software Guard -utvidelser) dukket opp i sjette generasjon Intel Core-prosessorer (Skylake) og tilbud en serie instruksjoner som lar applikasjoner på brukernivå tildele lukkede minneområder - enklaver, hvis innhold ikke kan leses eller modifiseres selv av kjernen og koden som kjører i ring0-, SMM- og VMM-modus. Det er umulig å overføre kontroll til koden i enklaven ved hjelp av tradisjonelle hoppfunksjoner og manipulasjoner med registre og stabelen; for å overføre kontroll til enklaven brukes en spesiallaget ny instruksjon som utfører en autoritetssjekk. I dette tilfellet kan koden plassert i enklaven bruke klassiske kallemetoder for å få tilgang til funksjoner inne i enklaven og spesielle instruksjoner for å kalle eksterne funksjoner. Enklave-minnekryptering brukes til å beskytte mot maskinvareangrep som for eksempel tilkobling til en DRAM-modul.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster