Aktuelle Entwicklungen der Hardwaresicherheit

Welche Zuordnung ist bei Hardwarefunktionen, die die Kontrollflussintegrität unterstützen, richtig: was Rücksprünge aus Funktionen schützt und was indirekte Aufrufe und Sprünge, etwa über Funktionszeiger, schützt?

  1. ARücksprünge werden durch Shadow Stacks oder Pointer Authentication geschützt, indirekte Aufrufe und Sprünge durch Mechanismen, die am Anfang des Sprungziels einen festgelegten Markierungsbefehl verlangen
  2. BRücksprünge werden durch Mechanismen geschützt, die am Anfang des Sprungziels einen festgelegten Markierungsbefehl verlangen, indirekte Aufrufe und Sprünge durch Shadow Stacks
  3. CRücksprünge werden durch KPTI (Kernel Page-Table Isolation) geschützt, indirekte Aufrufe und Sprünge durch Adressübersetzung in der IOMMU
Antwort und Erläuterung anzeigen

Antwort: A. Rücksprünge werden durch Shadow Stacks oder Pointer Authentication geschützt, indirekte Aufrufe und Sprünge durch Mechanismen, die am Anfang des Sprungziels einen festgelegten Markierungsbefehl verlangen

Ein Shadow Stack vergleicht die Rücksprungadresse mit ihrer Kopie, und Pointer Authentication prüft den an die Rücksprungadresse angehängten Authentifizierungscode; beide schützen also Rücksprünge aus Funktionen. Für indirekte Aufrufe und Sprünge verlangen Intel IBT und Arm Branch Target Identification am Anfang des Sprungziels einen Markierungsbefehl (bei x86 ENDBR64) und machen Sprünge etwa in die Mitte von Funktionen zu Ausnahmen. Da jedoch jede markierte Stelle von jedem indirekten Sprung erreichbar bleibt, werden diese Funktionen teils mit feineren Prüfungen des Compilers kombiniert, die die Ziele auf Funktionen passenden Typs beschränken. KPTI ist eine Gegenmaßnahme gegen Meltdown, und die IOMMU beschränkt DMA von Geräten; keines von beiden schützt den Kontrollfluss.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Aktuelle Entwicklungen der Hardwaresicherheit

  1. Welche Begründung dafür, dass Rowhammer mit fortschreitender Miniaturisierung von DRAM wahrscheinlicher werden soll, ist richtig?
  2. Welche Begründung dafür, dass der Schutz vor Rowhammer durch TRR (Target Row Refresh) im DRAM in der Forschung umgangen wurde, ist richtig?
  3. Was ist an der Vorstellung „Mit ECC-Speicher muss man sich um Rowhammer keine Sorgen machen“ falsch?
  4. Welche Aussage beschreibt das Prinzip von PRAC (Per-Row Activation Counting), das mit der 2024 aktualisierten DDR5-Norm (JESD79-5C) hinzugefügt wurde, richtig?
  5. Der kürzeste Abstand, in dem Zeilen derselben Bank aktiviert werden können, sei vereinfacht tRC = 50 ns. Bei einer Refresh-Periode von 64 ms beträgt die maximale Anzahl, wie oft eine Nachbarzeile zwischen zwei Refresh-Vorgängen einer bestimmten Zeile aktiviert werden kann, 64 ms ÷ 50 ns. Welchen Wert hat diese Maximalzahl, wenn die Refresh-Rate verdoppelt wird?