Wat is Spectre?

Soort kwetsbaarheid waarbij een voorspelling van een vertakking verkeerd wordt gestuurd zodat geheime gegevens speculatief worden gelezen en de waarde uit sporen in de cache wordt afgeleid. Bekendgemaakt in 2018.

Japanse benaming: Spectre

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

Vakgebied: Hardwarebeveiliging

Nu oefenen: vragen over Spectre

Welke uitspraak over het principe van de speculatieve-uitvoeringskwetsbaarheid Spectre is juist?

  1. ADoor een rekenfout van de CPU verandert het resultaat van een optelling
  2. BOok als het resultaat van instructies die volgens de sprongvoorspelling speculatief zijn uitgevoerd wordt ingetrokken, blijft een spoor van wat in de cache is geladen, en dat is door tijdmeting uit te lezen
  3. CDoor speculatieve uitvoering wordt de CPU te warm
Antwoord en toelichting tonen

Antwoord: B. Ook als het resultaat van instructies die volgens de sprongvoorspelling speculatief zijn uitgevoerd wordt ingetrokken, blijft een spoor van wat in de cache is geladen, en dat is door tijdmeting uit te lezen

Een CPU voert vóór bekend is wat de sprong uitkomt de instructies aan de voorspelde kant vooruit uit en gooit de resultaten weg als de voorspelling onjuist blijkt. Bij Spectre zorgt een aanvaller dat de sprongvoorspelling fout gaat, waardoor geheime data wordt gelezen op een pad dat eigenlijk niet zou worden uitgevoerd en de plaats die bij die waarde hoort in de cache wordt geladen. Hoewel het resultaat wordt ingetrokken, wordt de toestand van de cache niet hersteld, zodat de waarde via een side-channel van de cache kan worden afgeleid.

Waarom lekt bij aanvallen zoals Spectre informatie, ook als het resultaat van speculatief uitgevoerde instructies wordt ingetrokken?

  1. AOmdat het intrekken mislukt en de geheime waarde in de registers achterblijft
  2. BOmdat het resultaat van speculatieve uitvoering op schijf wordt opgeslagen
  3. COmdat alleen de architecturale toestand zoals registers wordt ingetrokken en de microarchitecturale toestand zoals de cache niet wordt hersteld
Antwoord en toelichting tonen

Antwoord: C. Omdat alleen de architecturale toestand zoals registers wordt ingetrokken en de microarchitecturale toestand zoals de cache niet wordt hersteld

Een CPU is zo gemaakt dat de toestand die vanuit het programma zichtbaar is (inhoud van registers en geheugen) volledig wordt hersteld als een voorspelling onjuist blijkt. De microarchitecturale toestand, zoals de inhoud van de cache en de toestand van de sprongvoorspeller, is echter een interne toestand ten behoeve van prestaties en wordt niet hersteld. De kern van dit soort kwetsbaarheden is dat ook als de afspraken van de ISA worden nagekomen, de interne toestand van buitenaf zichtbaar wordt als tijdsverschil.

“Spectre” in de toelichting

Vragen met “Spectre” (4)

  1. Welke uitspraak over het principe van de speculatieve-uitvoeringskwetsbaarheid Spectre is juist?
  2. Waarom lekt bij aanvallen zoals Spectre informatie, ook als het resultaat van speculatief uitgevoerde instructies wordt ingetrokken?
  3. Welke van de volgende is geen maatregel die wordt gebruikt tegen speculatieve-uitvoeringskwetsbaarheden zoals Spectre?
  4. 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 Speculatieve uitvoering Sprongvoorspelling (branch prediction) Instructiesetarchitectuur (ISA) Numerieke apertuur (NA) Meltdown Cold-bootaanval Constante-tijdimplementatie Echte-toevalsgetalgenerator (TRNG) eFuse

Naar de woordenlijst