Plundervolt — en ny metode til angreb på Intel-processorer, der berører SGX-teknologien

Intel udgivet opdatering af mikrokoden, der fjerner ASLR i programmer med setuid-flaget og bestemme adressefordelingen i de indlæste biblioteker gennem manipulation af miljøvariablen LD_PREFER_MAP_32BIT_EXEC. (CVE-2019-14607), der gør det muligt gennem manipulation af mekanismen for dynamisk styring af spænding og frekvens i CPU'en at initiere skader på indholdet af hukommelsesceller, herunder i områder, der bruges til beregninger i isolerede Intel SGX-enkre. Angrebet fik navnet Plundervolt, og potentielt giver det en lokal bruger mulighed for at opnå forhøjede rettigheder i systemet, forårsage nedetid og få adgang til fortrolige oplysninger.

Angrebet udgør en fare kun i konteksten af manipulation af beregninger i SGX-enkre, da det kræver root-rettigheder i systemet for at udføre. I den mest enkle form kan en angriber opnå forvrængninger af de oplysninger, der behandles i en enk, men i mere komplekse scenarier kan muligheden for at rekonstruere de fortrolige nøgler, der opbevares i enken, være til stede, som bruges til kryptering ved hjælp af RSA-CRT og AES-NI-algoritmer. Teknikken kan også anvendes til at generere fejl i oprindeligt korrekte algoritmer for at fremprovokere sårbarheder i håndteringen af hukommelse, f.eks. for at organisere adgang til områder uden for den tildelte buffer.
Prototypen af koden til at udføre attacken udgivet på GitHub

Metodens essens består i at skabe betingelser for uventede forvrængninger af data under beregninger i SGX, som ikke beskyttes af brugen af kryptering og autentificering af hukommelsen i enken. For at forårsage forvrængninger viste det sig at være muligt at bruge almindelige programmeringsgrænseflader til at styre frekvensen og spændingen, der normalt anvendes til at reducere energiForbruget under systemets dvale og aktivere maksimal ydeevne under intensive opgaver. Frekvens- og spændingskarakteristika gælder for hele chippen og påvirker også udførelsen af beregninger i den isolerede enk.

Ved at ændre spændingen kan man skabe betingelser, hvor der ikke er tilstrækkeligt med ladning til at regenerere hukommelsescellen inde i CPU'en, og dens værdi ændres. Den vigtigste forskel fra angrebet RowHammer er det, der gør RowHammer i stand til at ændre indholdet af individuelle bits i DRAM-hukommelse ved cyklisk at læse data fra nærliggende celler, mens Plundervolt tillader ændringer af bits inde i CPU'en, når data allerede er indlæst fra hukommelsen til udførelse af beregninger. Denne egenskab muliggør omgåelse af de anvendte integritets- og krypteringsmekanismer i SGX, da værdierne i hukommelsen forbliver korrekte, men kan blive forvrængede under operationer med dem, inden resultatet skrives tilbage til hukommelsen.

Hvis denne ændrede værdi bruges i multiplikationsprocessen under kryptering, vil det resultere i et ugyldigt krypteret tekstudgang. I stand til at tilgå procesoren i SGX for at kryptere egne data, kan en angriber ved at forårsage fejl indsamle statistik om ændringerne i den krypterede tekst på udgangen og i løbet af få minutter genskabe værdien af den nøgle, der opbevares i enklaven. Den originale tekst ved indgangen og den korrekte krypterede tekst ved udgangen er kendt, nøglen ændres ikke, og udfaldet af en ugyldig krypteret tekst indikerer forvrængning af en eller flere bits til det modsatte.

Ved at analysere de indsamlede par af korrekte og forvrængede krypterede tekster fra forskellige fejl ved hjælp af metoder til differentiel fejlanalyse (DFA, Differential Fault Analysis) kan man forudsige sandsynlige nøgler, der anvendes til symmetrisk kryptering med AES, og derefter, ved at analysere skæringspunkterne mellem nøglerne i forskellige sæt, identificere den ønskede nøgle.

Afspil video

Problemet påvirker forskellige modeller af Intel-processorer, herunder Intel Core CPU'er fra 6
til 10 generation, samt femte og sjette generation Xeon E3, første og anden generation Intel Xeon Scalable, Xeon D,
Xeon W og Xeon E.

Lad os minde om, at SGX-teknologien (Software Guard Extensions) opstod i Intel Core-processorer i sjette generation (Skylake) og tilbyder en række instruktioner, der gør det muligt at afsætte brugerens niveau-applikationer i lukkede hukommelsesområder — enclaves, hvis indhold ikke kan læses eller ændres, selv af kernen og koden, der kører i ring0, SMM og VMM. Det er umuligt at overføre kontrol til koden i en enclave ved hjælp af traditionelle skiftefunktioner og manipulationer med registre og stak — til overførsel af kontrol til en enclave anvendes en specielt udviklet ny instruktion, der udfører en legitimationskontrol. I mellemtiden kan koden, der er placeret i en enclave, bruge klassiske opkaldsmetoder til at tilgå funktioner inden for enclaven og en speciel instruktion til at kalde eksterne funktioner. For at beskytte mod hardwareangreb, såsom tilslutning til DRAM-modulet, anvendes hukommelseskryptering af enclaven.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster