C’t Magazine

Spectre 1

-

De manier waarop Spectre 1 werkt is het makkelijks­t uit te leggen aan de hand van de proof-of-concept code uit de Spectre-whitepaper.

Een aanvaller wil een waarde van een bepaalde offset, met de naam y, uit de memory range van het hier weergegeve­n programma afvangen. Daarvoor moet hij onder andere toegang krijgen tot array a1 en de variabele x. Aan de andere kant moet hij de branch-predictor van de cpu van tevoren zo trainen, dat hij het uitvoeren van het if-statement waarschijn­lijk vindt.

Nu zet de aanvaller de variabele x op de waarde van y en wist de ingestelde waarde van a1_size uit de cache. Aangezien de nieuwe waarde van x groter is dan a1_size (oftewel 16), geldt het if-statement op regel 7 niet meer. Terwijl de cpu a1_size opnieuw uit het geheugen laadt, voert hij het if-statement dankzij de training toch nog speculatie­f uit. In regel 8 wordt de inhoud van de uit te lezen memory location a1[x] met 512 vermenigvu­ldigd om hem, vergelijkb­aar met de Meltdown-aanval, tot een bepaald memory page address terug te rekenen. Deze belandt in de cache en wordt door de aanvaller (net als bij Meltdown) gebruikt om de oorspronke­lijke waarde te reconstrue­ren.

 ??  ??

Newspapers in Dutch

Newspapers from Netherlands