TLBlöda
TLBleed är en hårdvarasårbarhet i vissa moderna processorer som har en kommandoöversättningsbuffert och stöder simultan multithreading. Sårbarheten tillåter en användarapplikation (en lokal angripare, när ett speciellt program startas) som körs på en av hårdvarutrådarna att obehörigt extrahera information om exekveringen av en annan tråd med hjälp av en hemlig kanal . Informationsläckage kan potentiellt användas för att säkert komma åt känslig data som behandlas av en annan tråd.
Kort beskrivning
TLBleed är en sidokanalsattack och delar därför likheter med andra mikroprocessorsårbarheter som Meltdown och Spectre . Den traditionella metoden för att utnyttja sådana sårbarheter baseras på att mäta åtkomsttiden till individuella processorcacheceller för att avgöra vilka specifika celler som laddades in i cachen av den attackerade processen. På så sätt är det möjligt att extrahera indirekt information om utförandet och skyddade uppgifter om offerprocessen. I fallet med en TLBleed-attack är sidokanalen inte en vanlig datacache, utan den associativa översättningsbufferten (TLB), en speciell cache som lagrar överensstämmelse mellan virtuella minnessidor och processorns fysiska minnessidor, som används för att påskynda översättningen av virtuella adresser. En viktig attackmöjlighet tillhandahålls av det faktum att i implementeringen av simultan multithreading mode (SMT) i Intel-processorer, delas den associativa översättningsbufferten och används av alla hårdvarutrådar samtidigt (en liknande tredjepartskanal kan finnas i mikroprocessorn implementeringar av andra företag, men en sådan analys har ännu inte tagits fram).
Kärnan i attacken är följande. Åtkomsttiden till individuella TLB-celler avgör vilka sidor i minnet som den attackerade processen kommer åt. Samtidigt räcker inte ens den minsta adresseringsgranulariteten (4096 byte på moderna system) för att direkt erhålla data från den attackerade processen (till exempel använder Meltdown-sårbarheten indirekt adressering för att ladda och sedan identifiera en specifik cachecell, adress som avgör en del av hemligheten ). Men genom att analysera arten av minnesåtkomst (ordning för åtkomst till minnessidor, intervall mellan åtkomster) med hjälp av maskininlärningsmetoder är det möjligt att identifiera en del av den körbara koden. Om, till exempel, i krypteringsalgoritmen, vid bearbetning av en logisk "1", anropas en sektion av koden, och vid bearbetning av en logisk "0" - en annan, visar det sig vara möjligt att helt återställa de krypterade data.
Historik
Den ursprungliga studien offentliggjordes av en grupp forskare vid Free University of Amsterdam den 22 juni 2018. Detaljerna om sårbarheten avslöjades senare av projektledaren Ben Gras vid Black Hats datasäkerhetskonferens . [1] [2] Trots att sårbarheten visades på många Intel-processorer med flera moderna arkitekturer, vägrade företaget att ansöka om en CVE-identifierare för sårbarheten, med hänvisning till dess obetydlighet. Enligt forskarna återspeglar denna position inte det verkliga tillståndet, eftersom TLBleed är en väsentligt ny typ av attack, utgör ett betydande hot och kan fungera som en startpunkt för sökandet efter andra liknande sårbarheter. [3]
Mekanism
För att implementera den beskrivna attacken är det nödvändigt att lösa ett antal tekniska problem:
- Ta reda på i förväg TLB-konfigurationen (associativitet, storlek) på den använda processorn. För att göra detta kan du använda öppna informationskällor [4] eller använda reverse engineering med hjälp av instruktioner på låg nivå [5] . Förutom data om TLB-parametrar krävs det också att ta reda på överensstämmelsen mellan virtuella adresser och TLB-celler för att därefter kunna spåra tillståndet för godtyckliga celler genom att komma åt de nödvändiga virtuella adresserna. I det enklaste fallet bestäms platsen för den associativa översättningsbufferten av de låga bitarna i sidadressen, men mer komplexa mappningsfunktioner kan användas, såsom bitvis XOR av strömnumret och vissa bitar av sidadressen.
- Hitta ett sätt att spåra åtkomsterna av den attackerade processen till TLB-cellerna. Författarna till studien använder en klassisk åtkomsttidsattack för att avgöra om en viss TLB-cell har använts av offerprocessen. Ytterligare komplexitet introduceras av det faktum att den associativa översättningsbufferten i moderna processorer som regel är en struktur på två nivåer (liknande den hierarkiska organisationen av cachen , L1 TLB och L2 TLB). Icke desto mindre är det möjligt att avgöra från åtkomsttiden om adressen för den önskade sidan finns i TLB för en av nivåerna (annars utförs proceduren för flernivåöversättning av den virtuella adressen, vilket tar hundratals processorcykler ).
- Kör skadlig kod på samma hårdvarukärna som tråden i offerprocessen. Det hävdas att uppfyllandet av detta villkor för själva genomförandet av sårbarheten är mycket svårt och kräver icke-triviala insatser. Men moderna operativsystem tillhandahåller mekanismer för att binda processer till specifika processorhårdvarukärnor, vilket avsevärt förenklar uppgiften. [6]
- Använda statistik över åtkomster av offerprocessen till olika TLB-celler för att återställa information om utförandet av den attackerade processen. Angriparen ges fullständig valfrihet i hur och vilken information som ska utvinnas från den insamlade statistiken. I synnerhet kan man försöka avgöra vilken del av koden som den attackerade processen exekverar vid ett eller annat tillfälle. I det här fallet ställs uppgiften som återställandet av beroendet , där är vektorn för anrop till TLB-celler beroende på tiden, och är den nödvändiga kodsektionen. I många fall är denna information tillräcklig för att korrekt återge de bearbetade uppgifterna. I synnerhet utförs vissa operationer i krypteringsalgoritmer beroende på de inkommande bitarna, vilket gör det möjligt att utnyttja sårbarheten.
Inflytande
Från och med augusti 2018 har sårbarheten bara visats på Intel-processorer. Det antas att processorer från andra företag, där sidöversättningsbufferten delas av hårdvarutrådar, också kan vara sårbara för denna typ av attack, men inga implementeringar av konceptet har presenterats. [7] AMD hävdar att dess processorer inte påverkas av sårbarheten. [3]
Efter publiceringen av information om sårbarheten inaktiverade OpenBSD- projektet helt stödet för simultan multithreading i systemet. [8] [9] Chefen för OpenBSD Theo de Raadt menar att, trots att sårbarheten teoretiskt sett kan elimineras genom att förbjuda processer i olika sammanhang att köras på gemensamma processorkärnor, i praktiken är en sådan lösning inte genomförbar på grund av komplexiteten . [åtta]
Försvarsmekanismer
- Det huvudsakliga och självklara sättet att eliminera sårbarheten är att inaktivera läget för simultan multithreading ( Hyper Threading ). Uppenbarligen leder inaktivering av SMT till en betydande prestandaminskning och ineffektiv användning av mikroprocessorns hårdvara. Tillämpas på OpenBSD- systemet . [åtta]
- Separation av mjukvaruåtkomst av hårdvarutrådar i TLB-cache-raden. För att använda metoden krävs det att förbjuda var och en av hårdvarutrådarna från att komma åt vissa områden av virtuellt minne, så att TLB-linjerna som används av trådarna inte skär varandra. Metoden är svår att implementera, eftersom den bryter mot konceptet koherent virtuellt minne . Detta tillvägagångssätt kan dock potentiellt tillämpas på operativsystemnivå och kräver inga hårdvaruförändringar.
- Hårdvaruåtkomstseparation av trådar i TLB. I själva verket kräver det uppdelning av den gemensamma TLB:n i flera oberoende buffertar adresserade av var och en av strömmarna separat. Prestandaförsämring bör förväntas på grund av en minskning av den totala TLB-storleken per hårdvarugänga.
Se även
- Meltdown är en liknande spekulativ exekveringsattack som bryter isoleringen mellan processer och operativsystemets kärna inom samma exekveringskontext.
- Spectre är en liknande attack baserad på spekulativ exekvering som bryter isoleringen mellan alla processer i systemet
Anteckningar
- ↑ Black Hat USA 2018 . www.blackhat.com Datum för åtkomst: 19 december 2018. Arkiverad från originalet den 7 januari 2019. (obestämd)
- ↑ TLBleed Side-Channel CPU Attack Detaljerad på Black Hat . eWEEK. Hämtad: 19 december 2018. (obestämd)
- ↑ 12 Williams, Chris . Möt TLBleed: En CPU-attack som läcker kryptonyckel som Intel anser att vi inte borde oroa oss för , The Register ( 22 juni 2018). Arkiverad från originalet den 8 december 2018. Hämtad 19 december 2018.
- ↑ WikiChip - WikiChip . en.wikichip.org. Hämtad 19 december 2018. Arkiverad från originalet 26 oktober 2020.
- ↑ [ https://www.cs.vu.nl/~giuffrida/papers/revanc_eurosec17.pdf RevAnC: A Framework for Reverse Engineering Hardware Page Table Caches] // the 10th European Workshop. Arkiverad från originalet den 20 december 2018.
- ↑ sched_setaffinity(2) - Linux manualsida . man7.org. Hämtad 19 december 2018. Arkiverad från originalet 20 december 2018. (obestämd)
- ↑ Halfacree, Gareth . Forskare varnar för TLBleed Hyper-Threading vuln (engelska) , bit-tech.net (25 juni 2018). Arkiverad från originalet den 13 februari 2019. Hämtad 19 december 2018.
- ↑ 1 2 3 OpenBSD-chefen de Raadt säger att det inte är någon enkel lösning på det nya Intel CPU- felet . www.itwire.com (25 juni 2018). Hämtad 25 juni 2018. Arkiverad från originalet 25 juni 2018.
- ↑ OpenBSD inaktiverar hyperthreading-stöd för Intel-processorer på grund av sannolika dataläckor . www.itwire.com (21 juni 2018). Datum för åtkomst: 19 december 2018. Arkiverad från originalet den 9 juli 2018.
Länkar
Hackerattacker på 2010-talet |
---|
Största attackerna |
|
---|
Grupper och grupper av hackare |
|
---|
ensamma hackare |
|
---|
Upptäckte kritiska sårbarheter |
- 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)
- Meltdown (2018)
- Spectre (2018)
- Blue Keep (2019)
|
---|
Datavirus |
|
---|
2000 -tal • 2010 -tal • 2020-tal |