To angreb på cache-kanalforudsigelsesmekanismen i AMD-processorer

En gruppe forskere fra det tekniske universitet i Graz (Østrig), tidligere kendt for at udvikle angrebsmetoder MDS, NetSpectre, Kastehammer и ZombieLoad, udførte forskning i hardwareoptimeringer, der er specifikke for AMD-processorer og har udviklet to nye metoder til sidekanalangreb, der manipulerer datalækager under driften af ​​LXNUMX-cachekanalforudsigelsesmekanismen for AMD-processorer. Teknikkerne kan bruges til at reducere effektiviteten af ​​ASLR-beskyttelse, gendanne nøgler i sårbare AES-implementeringer og øge effektiviteten af ​​Spectre-angrebet.

Der blev identificeret problemer i implementeringen af ​​kanalforudsigelsesmekanismen (vejsprædiktor) i CPU'ens datacache på første niveau (L1D), der bruges til at forudsige, hvilken cachekanal der indeholder en bestemt hukommelsesadresse. Den optimering, der bruges i AMD-processorer, er baseret på kontrol af μ-tags (μTag). μTag beregnes ved at anvende en specifik hashfunktion til den virtuelle adresse. Under drift bruger kanalforudsigelsesmotoren μTag til at bestemme cachekanalen fra tabellen. Således giver μTag processoren mulighed for at begrænse sig til kun at få adgang til en bestemt kanal, uden at søge gennem alle muligheder, hvilket reducerer CPU energiforbrug markant.

To angreb på cache-kanalforudsigelsesmekanismen i AMD-processorer

Under reverse engineering af kanalforudsigelsessystemets implementering i forskellige generationer af AMD-processorer frigivet fra 2011 til 2019, blev to nye sidekanalangrebsteknikker identificeret:

  • Collide+Probe - tillader en angriber at spore hukommelsesadgang for processer, der kører på den samme logiske CPU-kerne. Essensen af ​​metoden er at bruge virtuelle adresser, der forårsager kollisioner i hashfunktionen, der bruges til at beregne μTag for at spore hukommelsesadgang. I modsætning til Flush+Reload- og Prime+Probe-angrebene, der bruges på Intel-processorer, bruger Collide+Probe ikke delt hukommelse og fungerer uden kendskab til fysiske adresser.
  • Load+Reload - giver dig mulighed for meget præcist at bestemme hukommelsesadgangsspor på den samme fysiske CPU-kerne. Metoden er baseret på, at en fysisk hukommelsescelle kun kan være i L1D-cachen én gang. De der. adgang til den samme hukommelsescelle på en anden virtuel adresse vil få cellen til at blive smidt ud af L1D-cachen, hvilket tillader hukommelsesadgang at blive sporet. Selvom angrebet er afhængigt af delt hukommelse, tømmer det ikke cache-linjer, hvilket giver mulighed for stealth-angreb, der ikke fjerner data fra cachen på sidste niveau.

Baseret på Collide+Probe og Load+Reload-teknikkerne har forskere demonstreret flere sidekanalangrebsscenarier:

  • Muligheden for at bruge metoder til at organisere en skjult indirekte kommunikationskanal mellem to processer, der muliggør dataoverførsel med hastigheder på op til 588 kB pr. sekund, er vist.
  • Ved at bruge kollisioner i μTag var det muligt at reducere entropi for forskellige varianter af ASLR (Address Space Layout Randomization) og omgå ASLR-beskyttelse i kernen på et fuldstændig opdateret Linux-system. Muligheden for at udføre et angreb for at reducere ASLR-entropi både fra brugerapplikationer og ved at bruge JavaScript-kode udført i et sandkassemiljø og kode, der kører i et andet gæstemiljø, vises.

    To angreb på cache-kanalforudsigelsesmekanismen i AMD-processorer

  • Baseret på Collide+Probe-metoden blev der implementeret et angreb for at gendanne krypteringsnøglen fra en sårbar implementering (baseret på T-bord) AES-kryptering.
  • Ved at bruge Collide+Probe-metoden som en dataindsamlingskanal var Spectre-angrebet i stand til at udtrække private data fra kernen uden at bruge delt hukommelse.

Sårbarheden opstår på AMD-processorer baseret på mikroarkitekturer
Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ og Zen2.
AMD blev underrettet om problemet den 23. august 2019, men indtil videre udgav ikke rapporten med oplysninger om blokering af sårbarheden. Ifølge forskerne kan problemet blokeres på mikrokodeopdateringsniveauet ved at levere MSR-bits til selektivt at deaktivere kanalforudsigelsessystemet, svarende til hvad Intel gjorde for at kontrollere deaktiveringen af ​​grenforudsigelsesmekanismer.

To angreb på cache-kanalforudsigelsesmekanismen i AMD-processorer

Kilde: opennet.ru

Tilføj en kommentar