Plundervolt er en ny angrebsmetode på Intel-processorer, der påvirker SGX-teknologien

Intel udgivet mikrokodeopdatering, der retter sårbarhed (CVE-2019-14607) tillader gennem manipulation af den dynamiske spændings- og frekvensstyringsmekanisme i CPU'en, initiere beskadigelse af indholdet af dataceller, herunder i områder, der bruges til beregninger i isolerede Intel SGX-enklaver. Angrebet kaldes Plundervolt, og giver potentielt en lokal bruger mulighed for at eskalere deres privilegier på systemet, forårsage et lammelsesangreb og få adgang til følsomme data.

Angrebet er kun farligt i forbindelse med manipulationer med beregninger i SGX-enklaver, da det kræver rodrettigheder i systemet at udføre. I det enkleste tilfælde kan en angriber opnå forvrængning af informationen, der behandles i enklaven, men i mere komplekse scenarier er muligheden for at genskabe de private nøgler, der er gemt i enklaven, der bruges til kryptering ved hjælp af RSA-CRT og AES-NI algoritmerne, ikke. udelukket. Teknikken kan også bruges til at generere fejl i oprindeligt korrekte algoritmer for at fremprovokere sårbarheder, når man arbejder med hukommelse, for eksempel for at organisere adgang til et område uden for grænsen af ​​den tildelte buffer.
Prototypekode til at udføre et angreb offentliggjort på GitHub

Essensen af ​​metoden er at skabe betingelser for forekomsten af ​​uventede datakorruptioner under beregninger i SGX, som brugen af ​​kryptering og hukommelsesgodkendelse i enklaven ikke beskytter mod. For at indføre forvrængning viste det sig, at det var muligt at bruge standardsoftwaregrænseflader til styring af frekvens og spænding, som normalt bruges til at reducere strømforbruget under systemets inaktive tid og aktivere maksimal ydeevne under intensivt arbejde. Frekvens- og spændingskarakteristika spænder over hele chippen, inklusive indvirkningen af ​​databehandling i en isoleret enklave.

Ved at ændre spændingen kan du skabe forhold, hvor ladningen ikke er nok til at regenerere en hukommelsescelle inde i CPU'en, og dens værdi ændres. Hovedforskel fra angreb RowHammer er, at RowHammer giver dig mulighed for at ændre indholdet af individuelle bits i DRAM-hukommelsen ved cyklisk at læse data fra naboceller, mens Plundervolt giver dig mulighed for at ændre bits inde i CPU'en, når dataene allerede er blevet indlæst fra hukommelsen til beregning. Denne funktion giver dig mulighed for at omgå integritetskontrol- og krypteringsmekanismerne, der bruges i SGX til data i hukommelsen, da værdierne i hukommelsen forbliver korrekte, men kan blive forvrænget under operationer med dem, før resultatet skrives til hukommelsen.

Hvis denne ændrede værdi bruges i multiplikationsprocessen af ​​krypteringsprocessen, afvises outputtet med forkert chiffertekst. Ved at have mulighed for at kontakte en handler i SGX for at kryptere sine data, kan en angriber, hvilket forårsager fejl, akkumulere statistik om ændringer i outputchifferteksten og på få minutter gendanne værdien af ​​nøglen, der er gemt i enklaven. Den originale inputtekst og den korrekte outputchiffertekst er kendt, nøglen ændres ikke, og outputtet af en forkert chiffertekst indikerer, at en bit er blevet forvrænget til den modsatte værdi.

Efter at have analyseret værdiparrene af korrekte og korrupte chiffertekster akkumuleret under forskellige fejl ved hjælp af metoder til differentiel fejlanalyse (DFA, Differentiel fejlanalyse) Kan forudsige sandsynlige nøgler, der bruges til AES symmetrisk kryptering, og derefter, ved at analysere skæringspunkterne mellem nøgler i forskellige sæt, bestemme den ønskede nøgle.

Forskellige modeller af Intel-processorer er berørt af problemet, herunder Intel Core CPU'er med 6
10. generation, samt femte og sjette generation af Xeon E3, første og anden generation af Intel Xeon Scalable, Xeon D,
Xeon W og Xeon E.

Lad os minde dig om, at SGX-teknologi (Software Guard-udvidelser) dukkede op i sjette generation af Intel Core-processorer (Skylake) og tilbud en række instruktioner, der tillader applikationer på brugerniveau at allokere lukkede hukommelsesområder - enklaver, hvis indhold ikke kan læses eller ændres, selv af kernen og koden, der kører i ring0, SMM og VMM tilstande. Det er umuligt at overføre kontrol til koden i enklaven ved hjælp af traditionelle springfunktioner og manipulationer med registre og stakken; for at overføre kontrol til enklaven bruges en specielt oprettet ny instruktion, der udfører en myndighedskontrol. I dette tilfælde kan koden placeret i enklaven bruge klassiske kaldemetoder til at få adgang til funktioner inde i enklaven og særlige instruktioner til at kalde eksterne funktioner. Enklavehukommelseskryptering bruges til at beskytte mod hardwareangreb, såsom tilslutning til et DRAM-modul.

Kilde: opennet.ru

Tilføj en kommentar