Nedsmeltning (sårbarhed)

Meltdown  er en hardware -sidekanallækage- sårbarhed , der findes i en række mikroprocessorer, især dem, der er fremstillet af Intel og ARM-arkitekturen . Meltdown bruger fejl i implementering af spekulativ kommandoudførelsepå nogle Intel- og ARM-processorer (men ikke AMD [1] [2] ), hvilket får processoren til at ignorere sidetilladelser, når den spekulativt udfører hukommelseslæseinstruktioner.

Sårbarheden gør det muligt for en lokal angriber (når han starter et særligt program) at få uautoriseret læseadgang til privilegeret hukommelse (hukommelse brugt af operativsystemkernen). [3] [4] [5] .

Angrebet blev tildelt CVE - sårbarheds-id'et CVE-2017-5754 [6] .

Historie

Meltdown-angrebet blev uafhængigt opdaget af forskere ved Google Project Zero , Cyberus Technology og Graz University of Technology i midten af ​​2017 og har været under lukket diskussion og patching i flere måneder. Offentliggørelsen af ​​detaljer og rettelser var planlagt til den 9. januar 2018, men detaljerne om sårbarheden blev offentliggjort den 4. januar 2018 samtidig med Spectre- angrebet på grund af udgivelser fra The Register [7] journalister , der lærte om KAISER/KPTI rettelserne fra Linux-kernens mailingliste [8] .

Kort beskrivelse

Evnen til at angribe genereres af tre mekanismer, der giver dig mulighed for at fremskynde processoren, og hver af disse mekanismer skaber ikke individuelt en sårbarhed:

Moderne højtydende mikroprocessorer har evnen til at udføre ny kode uden at vente på, at de tidligere handlinger er fuldført. For eksempel, hvis en greninstruktion venter på at modtage data fra hovedhukommelsen for at træffe en beslutning, kan en inaktiv processor have travlt med at udføre en af ​​grenretningerne (og i nogle arkitekturer, endda begge grene) i håb om at få resultatet af beregningen klar, når resultatet af grenen er kendt. Denne teknik kaldes spekulativ udførelse. Hvis gættet lykkes, ændrer den spekulativt udførte kode de synlige værdier af registrene (arkitektonisk tilstand), og eksekveringen fortsætter. Hvis udførelsesgrenen blev antaget forkert, ændrer instruktionerne fra den ikke processorens synlige tilstand, og den faktiske udførelse vil vende tilbage til forgreningspunktet.

På grund af de særlige kendetegn ved nogle implementeringer, under spekulativ eksekvering, udføres hukommelsesadgang faktisk uanset den eksekverende process adgangsrettigheder til denne hukommelse; dette gør det muligt at udføre kommandoer uden at vente på et svar fra hukommelsescontrolleren . Hvis denne gren af ​​spekulativ udførelse senere viser sig at være korrekt, vil en fejlagtig hukommelsesadgangsundtagelse blive kastet. Hvis grenen kasseres som fejlagtig, vil der ikke blive kastet nogen undtagelse; men variabler indlæst i cachen under udførelse af gren vil forblive i cachen. Derfor foreslog forfatterne af angrebet en metode til at analysere tilstedeværelsen af ​​data i cachen (baseret på adgangstiden til dem), som, hvis angrebet er korrekt konstrueret, kan give en idé om, hvad der skete i den kasserede spekulativ udførelsesgren og indholdet af mere privilegeret hukommelse.

Mekanisme

Angrebet kan udføres omtrent som følger. [9]

For at læse bit 0 fra det beskyttede hukommelsesområde Ap skal angriberen:

  1. Rydder cachen for adresserne A0 u og A1 u (fra angriberens læse-/skriveadresserum)
  2. Grene efter en tilstand kendt af angriberen
  3. I en kodegren, der efter konvention aldrig bør udføres (men vil blive eksekveret ved spekulativ eksekvering):
  4. Læser værdien V(A p ) fra det beskyttede hukommelsesområde på adressen Ap
  5. Ved at udføre en bitvis operation på værdien V(Ap ) opnås adressen A0u eller A1u
  6. Læser hukommelse på given adresse (A0 u eller A1 u )

Under normal udførelse forårsager trin 4 en sikkerhedsfejl, men under spekulativ eksekvering på sårbare arkitekturer ignoreres denne fejl midlertidigt, og fortsætter med trin 5 og 6. Som et resultat indlæses en af ​​værdierne i cachen - fra adresse A0 u eller A1 u . Efter at have fundet ud af grentilstanden, annullerer processoren alle resultaterne af trin 4, 5 og 6, men cachens tilstand forbliver uændret.

Derefter er det nok for angriberen at læse "deres" adresser A0 u og A1 u , og måle adgangstiden til dem. Og ud fra målingerne bestemmes hvilken bit (0 eller 1) der blev læst fra det beskyttede hukommelsesområde Ap .

Ved at gentage denne algoritme for andre bits af værdien V(A p ), kan du få hele indholdet af det beskyttede hukommelsesområde som helhed.

Indflydelse

Ifølge forskerne er "enhver Intel-mikroprocessor, der implementerer ude-af-ordens eksekvering , potentielt modtagelig for angreb, det vil sige enhver processor siden 1995 (med undtagelse af Intel Itanium og Intel Atom udgivet før 2013)." [ti]

Sårbarheden forventes at påvirke verdens største cloud-udbydere , især Amazon Web Services (AWS) [11] , Google Cloud Platform , Microsoft Azure . Cloud-udbydere tillader forskellige brugere at køre deres applikationer på delte fysiske servere. Fordi programmer kan behandle følsomme brugerdata, bruges sikkerheds- og isolationsforanstaltningerne fra processoren til at forhindre uautoriseret adgang til privilegeret hukommelse (brugt af OS-kernen). Meltdown-angrebet, når det bruges på systemer, der ikke implementerer softwarebeskyttelse (patches), giver dig mulighed for at omgå nogle hukommelsesisoleringsforanstaltninger og få læseadgang til operativsystemets hukommelse.

En af forfatterne til sårbarhedspublikationen angiver, at paravirtualiseringssystemer ( Xen ) og containersystemer ( Docker , LXC , Openvz , etc.) også er modtagelige for angreb [12] . Fuldt virtualiserede systemer tillader brugerapplikationer kun at læse gæstekernens hukommelse, ikke værtssystemets hukommelse.

Softwarerettelser

Der er en pålidelig softwaremetode til at bekæmpe angrebet, hvor sidetabellen over brugerprocesser ikke viser OS-kernehukommelsessider (med undtagelse af et lille antal kernehukommelsesserviceområder), Kernel Page-table isolation (KPTI) teknologi . Samtidig bliver opkald med en ændring i privilegieniveau (især systemkald) noget langsommere, da de yderligere skal skifte til en anden sidetabel, der beskriver hele OS-kernens hukommelse.

I nogle tilfælde kan rettelsen reducere ydeevnen af ​​visse funktioner, såsom programmer, der foretager systemopkald meget ofte. Samtidig viser Phoronix -test ingen afmatning i spil, der kører på Linux med KPTI-patchen [17] [18] .

Se også

Noter

  1. Gleixner, Thomas x86/cpu, x86/pti: Aktiver ikke PTI på AMD-processorer (3. januar 2018). Hentet 4. januar 2018. Arkiveret fra originalen 28. juni 2020.
  2. Lendacky, Tom [tip:x86/pti x86/cpu, x86/pti: Aktiver ikke PTI på AMD-processorer] . lkml.org . Hentet 3. januar 2018. Arkiveret fra originalen 3. august 2020.
  3. Metz, Cade . Forskere opdager to store fejl i verdens computere  (engelsk) , The New York Times  (2018). Arkiveret fra originalen den 3. januar 2018. Hentet 4. januar 2018.
  4. Intels processorer har en sikkerhedsfejl, og rettelsen kunne gøre pc'er langsommere , The Verge . Arkiveret fra originalen den 3. januar 2018. Hentet 4. januar 2018.
  5. Linux-spilydelsen ser ikke ud til at være påvirket af x86 PTI Work -  Phoronix . www.phoronix.com . Hentet 3. januar 2018. Arkiveret fra originalen 20. februar 2021.
  6. CVE-2017-5754 Systemer med mikroprocessorer, der anvender spekulativ eksekvering og indirekte grenforudsigelse, kan tillade uautoriseret videregivelse af oplysninger til en angriber med lokal brugeradgang via en sidekanalanalyse af datacachen. (utilgængeligt link) . Hentet 6. januar 2018. Arkiveret fra originalen 6. januar 2018. 
  7. Arkiveret kopi . Hentet 4. januar 2018. Arkiveret fra originalen 7. april 2018.
  8. Forstå Meltdown & Spectre: Hvad skal man vide om nye udnyttelser, der påvirker stort set alle CPU'er . Hentet 6. januar 2018. Arkiveret fra originalen 6. januar 2018.
  9. Nedsmeltning (PDF). Nedsmeltning og Spectre 8 sek. 5.1. Dato for adgang: 4. januar 2018. Arkiveret fra originalen 4. januar 2018.
  10. Meltdown and Spectre: Hvilke systemer påvirkes af Meltdown?  (engelsk) . meltdownattack.com . Hentet 3. januar 2018. Arkiveret fra originalen 3. januar 2018.
  11. Oplysning om processorspekulativ udførelsesforskning  . Amazon Web Services Inc. . Hentet 3. januar 2018. Arkiveret fra originalen 4. januar 2018.
  12. Cyberus Technology Blog - Nedsmeltning . Dato for adgang: 4. januar 2018. Arkiveret fra originalen 4. januar 2018.
  13. Warren, Tom Microsoft udsteder en Windows-nødopdatering til processorsikkerhedsfejl . Randen . Vox Media, Inc. Hentet 3. januar 2018. Arkiveret fra originalen 3. januar 2018.
  14. Kernel-hukommelse-lækkende Intel-processordesignfejl tvinger Linux, Windows-redesign  , The Register . Arkiveret fra originalen den 7. april 2018. Hentet 4. januar 2018.
  15. Corbet, Jonathon KAISER: skjuler kernen fra brugerrummet . LWN (15. november 2017). Hentet 3. januar 2018. Arkiveret fra originalen 8. december 2020.
  16. Corbet, Jonathon Den aktuelle tilstand af kernesidetabelisolering . LWN (20. december 2017). Hentet 3. januar 2018. Arkiveret fra originalen 4. januar 2018.
  17. NVIDIA-spilydeevnen er minimalt påvirket af KPTI-patches - Phoronix
  18. Linux KPTI-tests ved hjælp af Linux 4.14 vs. 4,9 vs. 4.4 - Phoronix

Links