Hardwarebeveiliging: nieuwste ontwikkelingen
Welke combinatie van beschrijvingen van retpoline en IBRS is juist, tegenmaatregelen tegen de variant van Spectre die de voorspelling van indirecte sprongen misbruikt (branch target injection)?
- ARetpoline bouwt de schakelingen van de CPU opnieuw om de voorspeller te verwijderen, en IBRS is een tegenmaatregel waarbij de compiler instructies voor indirecte sprongen herschrijft tot een andere reeks instructies
- BRetpoline is een softwarematige tegenmaatregel die indirecte sprongen vervangt door instructiereeksen die niet op de voorspeller steunen, en IBRS is een functie van de CPU die de voorspelling van indirecte sprongen beperkt
- CZowel retpoline als IBRS stopt de speculatieve uitvoering van de CPU zelf, dus met elk van beide gaat de prestatiewinst door speculatieve uitvoering verloren
Antwoord en toelichting tonen
Antwoord: B. Retpoline is een softwarematige tegenmaatregel die indirecte sprongen vervangt door instructiereeksen die niet op de voorspeller steunen, en IBRS is een functie van de CPU die de voorspelling van indirecte sprongen beperkt
Bij retpoline vervangt de compiler instructies voor indirecte sprongen door een reeks die call en ret combineert, zodat de CPU de voorspelling van het retouradres gebruikt in plaats van de misbruikbare voorspeller van indirecte sprongen, en speculatief uitgevoerde instructies onschadelijk in een lus ronddraaien. IBRS is een besturingsfunctie van de CPU, toegevoegd via onder meer microcode-updates, die bijvoorbeeld de voorspelling van indirecte sprongen in de kernel zo beperkt dat die niet volgt wat gebruikersprogramma's hebben getraind. Op oudere CPU's kostte het omschakelen van IBRS veel tijd, dus werd retpoline veel gebruikt, terwijl nieuwere CPU's een verbeterde versie hebben die permanent aan kan blijven (eIBRS). Sommige CPU's steunen echter ook voor de voorspelling van het retouradres op een andere voorspeller, en onder meer Retbleed, gepubliceerd in 2022, liet gevallen zien waarin retpoline alleen onvoldoende is.
Verder: nog 9 vragen over Hardwarebeveiliging: nieuwste ontwikkelingen