Hardwarebeveiliging: nieuwste ontwikkelingen

Welke combinatie is juist voor hardwarefuncties die control-flow-integriteit ondersteunen, namelijk wat het terugkeren uit functies beschermt en wat indirecte aanroepen en sprongen, zoals via functiepointers, beschermt?

  1. ATerugkeren wordt beschermd door shadow stacks of pointerauthenticatie; indirecte aanroepen en sprongen door mechanismen die eisen dat aan het begin van het doel een aangewezen markeringsinstructie staat
  2. BTerugkeren wordt beschermd door mechanismen die eisen dat aan het begin van het doel een aangewezen markeringsinstructie staat; indirecte aanroepen en sprongen door shadow stacks
  3. CTerugkeren wordt beschermd door KPTI (kernel page-table isolation); indirecte aanroepen en sprongen door adresvertaling in de IOMMU
Antwoord en toelichting tonen

Antwoord: A. Terugkeren wordt beschermd door shadow stacks of pointerauthenticatie; indirecte aanroepen en sprongen door mechanismen die eisen dat aan het begin van het doel een aangewezen markeringsinstructie staat

Een shadow stack vergelijkt het terugkeeradres met de kopie en pointerauthenticatie controleert de authenticatiecode die aan het terugkeeradres is toegevoegd, dus beide beschermen het terugkeren uit functies. Voor indirecte aanroepen en sprongen eisen Intel IBT en Arm Branch Target Identification dat aan het begin van het doel een markeringsinstructie staat (ENDBR64 bij x86), en maken ze van sprongen naar bijvoorbeeld het midden van een functie een exceptie. Een plaats met een markering is echter nog steeds vanuit elke indirecte sprong bereikbaar, dus soms worden ze gecombineerd met fijnere controles door de compiler die de doelen beperken tot functies van een passend type. KPTI is een tegenmaatregel tegen Meltdown en de IOMMU beperkt de DMA van apparaten; geen van beide beschermt de control flow.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Hardwarebeveiliging: nieuwste ontwikkelingen

  1. Wat is de juiste verklaring waarom wordt gezegd dat Rowhammer gemakkelijker optreedt naarmate DRAM verder wordt verkleind?
  2. Wat is de juiste verklaring waarom bescherming tegen Rowhammer door TRR (target row refresh) in de DRAM in onderzoek is omzeild?
  3. Wat is er mis met de gedachte „als geheugen met ECC wordt gebruikt, hoeft men zich over Rowhammer geen zorgen te maken”?
  4. Welke uitspraak beschrijft het idee van PRAC (per-row activation counting) juist, dat is toegevoegd aan de DDR5-standaard die in 2024 is bijgewerkt (JESD79-5C)?
  5. Neem voor de eenvoud aan dat het kortste interval waarmee rijen in dezelfde bank kunnen worden geactiveerd tRC = 50 ns is. Bij een periode van 64 ms voor de refresh is het maximale aantal keren dat één naburige rij kan worden geactiveerd tussen twee opeenvolgende verversingen van een bepaalde rij gelijk aan 64 ms ÷ 50 ns. Hoe groot is dit maximale aantal als de refreshfrequentie wordt verdubbeld?