Wat is Meltdown?

Kwetsbaarheid waarbij bij sommige CPU's kernelgeheugen speculatief kon worden gelezen vóór de exceptie door de rechtencontrole, zodat waarden uit sporen in de cache konden worden afgeleid. Aangepakt met onder meer KPTI.

Japanse benaming: Meltdown

“Meltdown” komt voor in 3 oefenvragen uit 2 onderwerpen, bijv. Hardwarebeveiliging, CPU en architectuur.

Vakgebied: Hardwarebeveiliging

Nu oefenen: vragen over Meltdown

Welke uitspraak over het principe van de kwetsbaarheid Meltdown, die bij sommige CPU's een probleem was, is juist?

  1. ADe CPU smelt door de hitte en data lekken naar buiten
  2. BOok bij een instructie die kernelgeheugen leest zonder bevoegdheid, wordt de waarde speculatief gelezen voordat de uitzondering door de bevoegdheidscontrole vaststaat, en blijft een van die waarde afhankelijk spoor in de cache achter
  3. CEen instellingsfout waardoor kernelgeheugen voor alle processen openbaar is
Antwoord en toelichting tonen

Antwoord: B. Ook bij een instructie die kernelgeheugen leest zonder bevoegdheid, wordt de waarde speculatief gelezen voordat de uitzondering door de bevoegdheidscontrole vaststaat, en blijft een van die waarde afhankelijk spoor in de cache achter

Als een gebruikersprogramma kernelgeheugen probeert te lezen, leidt dat eigenlijk tot een uitzondering wegens een bevoegdheidsschending en wordt de waarde niet verkregen. Bij getroffen CPU's werden echter in de korte tijd tot de uitzondering vaststond latere instructies die de gelezen waarde gebruiken speculatief uitgevoerd en werd de plaats die bij die waarde hoort in de cache geladen. Ook al werd het resultaat door de uitzondering weggegooid, kon via de side-channel van de cache data van de kernel worden afgeleid.

Welke uitspraak over de gedachte achter KPTI (kernel page-table isolation), dat als softwaretegenmaatregel tegen Meltdown werd ingevoerd, is juist?

  1. AZolang het gebruikersprogramma draait, wordt het grootste deel van het kernelgeheugen uit de paginatabellen gehaald, zodat het ook niet speculatief kan worden gelezen
  2. BDe hele kernel wordt versleuteld en op schijf gezet
  3. CHet uitvoeren van gebruikersprogramma's wordt verboden
Antwoord en toelichting tonen

Antwoord: A. Zolang het gebruikersprogramma draait, wordt het grootste deel van het kernelgeheugen uit de paginatabellen gehaald, zodat het ook niet speculatief kan worden gelezen

Het vroegere besturingssysteem nam, om omschakelen te versnellen, ook kernelgeheugen op (met een markering dat toegang verboden is) in de paginatabellen van gebruikersprocessen. Bij Meltdown kon speculatief worden gelezen vóór die markering werd gecontroleerd, dus bij KPTI worden de kernelpagina's zolang het gebruikersprogramma draait zelfs niet meer toegewezen. Als het adres niet kan worden vertaald, kan het ook niet speculatief worden gelezen. Doordat bij elke systeemaanroep van paginatabel moet worden gewisseld, dalen de prestaties echter.

“Meltdown” in de toelichting

Vragen met “Meltdown” (3)

  1. Welke uitspraak over het principe van de kwetsbaarheid Meltdown, die bij sommige CPU's een probleem was, is juist?
  2. Welke uitspraak over de gedachte achter KPTI (kernel page-table isolation), dat als softwaretegenmaatregel tegen Meltdown werd ingevoerd, is juist?
  3. Welk voorbeeld van een kwetsbaarheid betreft een aanval die misbruikt maakt dat sporen van speculatieve uitvoering in de cache achterblijven, om gegevens af te leiden waartoe eigenlijk geen toegang bestaat?

Verwante termen

Via KPTI Systeemaanroep (system call) Paginatabel Speculatieve uitvoering Spectre Cold-bootaanval Constante-tijdimplementatie Echte-toevalsgetalgenerator (TRNG) eFuse

Naar de woordenlijst