TLBleed
TLBleed er en hardwaresårbarhed i nogle moderne processorer, der har en kommandooversættelsesbuffer og understøtter simultan multithreading. Sårbarheden tillader en brugerapplikation (en lokal angriber, når et særligt program startes), der kører på en af hardwaretrådene, til uautoriseret at udtrække information om udførelsen af en anden tråd ved hjælp af en skjult kanal . Informationslækage kan potentielt bruges til sikker adgang til følsomme data, der behandles af en anden tråd.
Kort beskrivelse
TLBleed er et sidekanalangreb og deler derfor ligheder med andre mikroprocessorsårbarheder såsom Meltdown og Spectre . Den traditionelle tilgang til at udnytte sådanne sårbarheder er baseret på måling af adgangstiden til individuelle processorcacheceller for at bestemme, hvilke specifikke celler der blev indlæst i cachen af den angrebne proces. På denne måde er det muligt at udtrække indirekte oplysninger om udførelsen og beskyttede data for offerprocessen. I tilfælde af et TLBleed-angreb er sidekanalen ikke en almindelig datacache, men den associative translation buffer (TLB), en speciel cache, der gemmer korrespondancer mellem virtuelle hukommelsessider og processorens fysiske hukommelsessider, som bruges til at fremskynde oversættelsen af virtuelle adresser. En vigtig angrebsmulighed er tilvejebragt af det faktum, at i implementeringen af simultan multithreading -tilstand (SMT) i Intel-processorer, deles den associative oversættelsesbuffer og bruges af alle hardwaretråde samtidigt (en lignende tredjepartskanal kan eksistere i mikroprocessoren implementeringer af andre virksomheder, men en sådan analyse er endnu ikke lavet).
Essensen af angrebet er som følger. Adgangstiden til individuelle TLB-celler bestemmer, hvilke hukommelsessider den angrebne proces får adgang til. Samtidig er selv den minimale adresseringsgranularitet (4096 bytes på moderne systemer) ikke nok til direkte at indhente data fra den angrebne proces (f.eks. bruger Meltdown-sårbarheden indirekte adressering til at indlæse og derefter identificere en specifik cachecelle, adresse, som bestemmer en del af hemmeligheden ). Men ved at analysere arten af hukommelsesadgang (rækkefølge af adgang til hukommelsessider, intervaller mellem adgange) ved hjælp af maskinlæringsmetoder , er det muligt at identificere en sektion af den eksekverbare kode. Hvis for eksempel i krypteringsalgoritmen, når man behandler en logisk "1", kaldes en sektion af koden, og når man behandler en logisk "0" - en anden, viser det sig at være muligt helt at gendanne de krypterede data.
Historie
Den oprindelige undersøgelse blev offentliggjort af en gruppe videnskabsmænd ved Free University of Amsterdam den 22. juni 2018. Detaljerne om sårbarheden blev senere afsløret af projektleder Ben Gras på Black Hat -computersikkerhedskonferencen . [1] [2] På trods af, at sårbarheden blev påvist på mange Intel-processorer med flere moderne arkitekturer, nægtede virksomheden at ansøge om en CVE-identifikation for sårbarheden, med henvisning til dens ubetydelighed. Ifølge forskerne afspejler denne position ikke tingenes virkelige tilstand, eftersom TLBleed er en væsentlig ny type angreb, udgør en væsentlig trussel og kan tjene som udgangspunkt for søgningen efter andre lignende sårbarheder. [3]
Mekanisme
For at implementere det beskrevne angreb er det nødvendigt at løse en række tekniske problemer:
- Find på forhånd ud af TLB-konfigurationen (associativitet, størrelse) på den brugte processor. For at gøre dette kan du bruge åbne informationskilder [4] eller bruge reverse engineering ved hjælp af instruktioner på lavt niveau [5] . Ud over data om TLB-parametre er det også nødvendigt at finde ud af korrespondancen mellem virtuelle adresser og TLB-celler for efterfølgende at kunne spore tilstanden af vilkårlige celler ved at få adgang til de nødvendige virtuelle adresser. I det enkleste tilfælde bestemmes placeringen af den associative oversættelsesbuffer af sideadressens lave bits, men mere komplekse kortlægningsfunktioner kan anvendes, såsom bitvis XOR af strømnummeret og visse bits af sideadressen.
- Find en måde at spore adgangen til den angrebne proces til TLB-cellerne. Forfatterne af undersøgelsen bruger et klassisk adgangstidsangreb til at afgøre, om en bestemt TLB-celle er blevet brugt af offerprocessen. Yderligere kompleksitet introduceres af det faktum, at den associative oversættelsesbuffer i moderne processorer som regel er en struktur på to niveauer (svarende til den hierarkiske organisering af cachen , L1 TLB og L2 TLB). Ikke desto mindre er det muligt ud fra adgangstiden at bestemme, om adressen på den påkrævede side er i TLB'en på et af niveauerne (ellers udføres proceduren med flerniveauoversættelse af den virtuelle adresse, hvilket tager hundredvis af processorcyklusser ).
- Kør ondsindet kode på den samme hardwarekerne som tråden i offerprocessen. Det hævdes, at opfyldelsen af denne betingelse for selve implementeringen af sårbarheden er meget vanskelig og kræver en ikke-triviel indsats. Men moderne operativsystemer giver mekanismer til at binde processer til specifikke processorhardwarekerner, hvilket i høj grad forenkler opgaven. [6]
- Brug af statistik over offerprocessens adgang til forskellige TLB-celler til at gendanne oplysninger om udførelsen af den angrebne proces. Angriberen får fuldstændig valgfrihed i, hvordan og hvilke oplysninger der skal udtrækkes fra den indsamlede statistik. Man kan især forsøge at bestemme, hvilken del af koden den angrebne proces udfører på et eller andet tidspunkt. I dette tilfælde er opgaven stillet som genoprettelse af afhængigheden , hvor er vektoren af opkald til TLB-celler afhængigt af tidspunktet, og er den nødvendige kodesektion. I mange tilfælde er disse oplysninger tilstrækkelige til nøjagtigt at gengive de behandlede data. Specielt udføres visse operationer i krypteringsalgoritmer afhængigt af de indkommende bits, hvilket gør det muligt at udnytte sårbarheden.
Indflydelse
Fra august 2018 er sårbarheden kun blevet påvist på Intel-processorer. Det antages, at processorer fra andre virksomheder, hvor sideoversættelsesbufferen er delt af hardwaretråde, også kan være sårbare over for denne type angreb, men der er ikke præsenteret nogen implementeringer af konceptet. [7] AMD hævder, at dets processorer ikke er påvirket af sårbarheden. [3]
Efter offentliggørelsen af information om sårbarheden deaktiverede OpenBSD -projektet fuldstændig understøttelse af samtidig multithreading i systemet. [8] [9] Chefen for OpenBSD Theo de Raadt mener, at på trods af at sårbarheden teoretisk kan elimineres ved at forbyde processer i forskellige kontekster at køre på fælles processorkerner, er en sådan løsning i praksis ikke mulig på grund af kompleksitet . [otte]
Forsvarsmekanismer
- Den vigtigste og indlysende måde at eliminere sårbarheden på er at deaktivere tilstanden for simultan multithreading ( Hyper Threading ). Det er klart, at deaktivering af SMT fører til et betydeligt fald i ydeevne og ineffektiv brug af mikroprocessorhardwaren. Anvendt på OpenBSD -systemet . [otte]
- Softwareadgangsadskillelse af hardwaretråde i TLB-cachelinjen. For at bruge metoden er det påkrævet at forbyde hver af hardwaretrådene at få adgang til bestemte områder af virtuel hukommelse, således at TLB-linjerne, der bruges af trådene, ikke skærer hinanden. Metoden er svær at implementere, da den bryder med konceptet om sammenhængende virtuel hukommelse . Denne tilgang kan dog potentielt anvendes på operativsystemniveau og kræver ikke hardwareændringer.
- Hardwareadgangsadskillelse af tråde i TLB. Faktisk kræver det opdeling af den fælles TLB i flere uafhængige buffere adresseret af hver af strømmene separat. Ydeevneforringelse bør forventes på grund af et fald i den samlede TLB-størrelse pr. hardwaretråd.
Se også
- Meltdown er et lignende spekulativt eksekveringsangreb, der bryder isolationen mellem processer og operativsystemkernen inden for den samme eksekveringskontekst.
- Spectre er et lignende angreb baseret på spekulativ udførelse, der bryder isolationen mellem alle processer i systemet
Noter
- ↑ Black Hat USA 2018 . www.blackhat.com Dato for adgang: 19. december 2018. Arkiveret fra originalen 7. januar 2019. (ubestemt)
- ↑ TLBleed Side-Channel CPU Attack Detaljeret på Black Hat . eUGE. Hentet: 19. december 2018. (ubestemt)
- ↑ 12 Williams, Chris . Mød TLBleed: Et CPU-angreb, der lækker kryptonøgle, som Intel mener, at vi ikke skal bekymre os om , The Register ( 22. juni 2018). Arkiveret fra originalen den 8. december 2018. Hentet 19. december 2018.
- ↑ WikiChip - WikiChip . en.wikichip.org. Hentet 19. december 2018. Arkiveret fra originalen 26. oktober 2020.
- ↑ [ https://www.cs.vu.nl/~giuffrida/papers/revanc_eurosec17.pdf RevAnC: A Framework for Reverse Engineering Hardware Page Table Caches] // den 10. europæiske workshop. Arkiveret fra originalen den 20. december 2018.
- ↑ sched_setaffinity(2) - Linux-manualside . man7.org. Hentet 19. december 2018. Arkiveret fra originalen 20. december 2018. (ubestemt)
- ↑ Halfacree, Gareth . Forskere advarer om TLBleed Hyper-Threading vuln (engelsk) , bit-tech.net (25. juni 2018). Arkiveret fra originalen den 13. februar 2019. Hentet 19. december 2018.
- ↑ 1 2 3 OpenBSD-chefen de Raadt siger, at der ikke er nogen nem løsning på den nye Intel CPU- fejl . www.itwire.com (25. juni 2018). Hentet 25. juni 2018. Arkiveret fra originalen 25. juni 2018.
- ↑ OpenBSD deaktiverer hyperthreading-understøttelse for Intel CPU'er på grund af sandsynlige datalækager . www.itwire.com (21. juni 2018). Dato for adgang: 19. december 2018. Arkiveret fra originalen 9. juli 2018.
Links
Hackerangreb fra 2010'erne |
---|
Største angreb |
|
---|
Grupper og fællesskaber af hackere |
|
---|
enlige hackere |
|
---|
Opdaget kritiske sårbarheder |
- Heartbleed (SSL, 2014)
- Bashdoor (Bash, 2014)
- PUDLE (SSL, 2014)
- Rootpipe (OSX, 2014)
- JASBUG (Windows, 2015)
- Stagefright (Android, 2015)
- DROWN (TLS, 2016)
- Badlock (SMB/CIFS, 2016)
- Dirty Cow (Linux, 2016)
- EternalBlue ( SMBv1 , 2017)
- DoublePulsar (2017)
- KRACK (2017)
- ROCA (2017)
- BlueBorn (2017)
- Nedsmeltning (2018)
- Spectre (2018)
- Blue Keep (2019)
|
---|
Computervirus |
|
---|
2000'erne • 2010'erne • 2020'erne |