Aktuelle Entwicklungen der Hardwaresicherheit

Welche Beschreibung der Capabilities in der als CHERI bezeichneten Befehlssatzerweiterung ist richtig?

  1. AZeigerwerte werden vor dem Ablegen im Speicher mit einem Schlüssel in der CPU verschlüsselt und bei jeder Verwendung entschlüsselt, sodass andere Programme und das Betriebssystem sie nicht lesen können
  2. BDie CPU prüft bei jedem einzelnen ausgeführten Befehl die digitale Signatur der ausführbaren Datei des Programms und führt keine unsignierten Befehle aus
  3. CEin Zeiger erhält den Bereich, auf den er zugreifen darf, und seine Rechte, und ein 1-Bit-Tag, das Software im Speicher nicht schreiben kann, unterscheidet, ob er legitim erzeugt wurde
Antwort und Erläuterung anzeigen

Antwort: C. Ein Zeiger erhält den Bereich, auf den er zugreifen darf, und seine Rechte, und ein 1-Bit-Tag, das Software im Speicher nicht schreiben kann, unterscheidet, ob er legitim erzeugt wurde

CHERI ersetzt Zeiger, die nur aus einer Adresse bestehen, durch Capabilities, die die Adresse, Ober- und Untergrenze des Bereichs, auf den sie zeigen dürfen, sowie Rechte wie Lesen, Schreiben und Ausführen bündeln (bei 64-Bit-Adressen werden sie komprimiert in 128 Bit untergebracht, mit einem separaten 1-Bit-Tag). Die CPU prüft Bereich und Rechte bei jedem Zugriff, sodass Fehler der Speichersicherheit wie Lese- und Schreibzugriffe außerhalb eines Array-Bereichs in Hardware gestoppt werden können. Das Tag wird nur gesetzt, wenn eine Capability mit den dafür vorgesehenen Befehlen erzeugt wird, und verschwindet, wenn sie als gewöhnliche Daten überschrieben wird; Zeiger lassen sich daher nicht fälschen. Die Forschung wurde von der University of Cambridge und anderen vorangetrieben, und Arm stellte Forschenden Anfang der 2020er-Jahre Morello bereit, einen darauf basierenden Prototyp-Prozessor mit Evaluierungsboard.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Aktuelle Entwicklungen der Hardwaresicherheit

  1. Bei Arms MTE (Memory Tagging Extension) erhält jeder 16-Byte-Block des Speichers ein 4-Bit-Tag, auch in die oberen Bits des Zeigers wird ein 4-Bit-Tag geschrieben, und die CPU prüft bei jedem Zugriff, ob beide übereinstimmen. Betrachtet wird der Fehler, über einen alten Zeiger auf einen bereits freigegebenen Bereich zuzugreifen. Wird das neue Tag bei der erneuten Zuteilung des Bereichs gleichverteilt zufällig aus den 16 Möglichkeiten gewählt, wie groß ist dann die Wahrscheinlichkeit, dass die Tags zufällig übereinstimmen und der Fehler unentdeckt bleibt?
  2. Welche Beschreibung des Mechanismus der Pointer Authentication (PAC) von Arm ist richtig?
  3. Welche Beschreibung des hardwaregestützten Shadow Stack, wie er in Intel CET (Control-flow Enforcement Technology) und anderswo eingesetzt wird, ist richtig?
  4. 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?
  5. Welche Begründung dafür, dass Rowhammer mit fortschreitender Miniaturisierung von DRAM wahrscheinlicher werden soll, ist richtig?