Untitled Deck Flashcards
Was ist der Unterschied zwischen einem physischen und einem logischen CPU-Kern im Kontext von SMT (Simultaneous Multithreading)? (02_Cache_04)
Ein physischer Kern wird in zwei logische Kerne aufgeteilt. Die Prozessorregister werden vollständig dupliziert während Caches und Execution Units zwischen den logischen Kernen geteilt werden. Dies verbessert die Hardware-Auslastung schafft aber auch neue Seitenkanäle.
Erklären Sie die Funktion eines 2-Bit Saturating Counters in der Branch Prediction Unit. (02_Cache_04)
Ein 2-Bit Saturating Counter ist ein Automat mit 4 Zuständen: Strongly not taken Weakly not taken Weakly taken und Strongly taken. Der Zustand ändert sich basierend auf dem tatsächlichen Sprungverhalten - ‘taken’ bewegt nach rechts ‘not taken’ nach links.
Warum werden TLB-Einträge bei einem Prozesswechsel invalidiert und welche Ausnahme gibt es? (02_Cache_04)
TLB-Einträge werden invalidiert weil die Adressübersetzung für jeden Prozess unterschiedlich ist. Ausnahme sind Einträge die mit Process Context Identifiers markiert sind - diese bleiben erhalten.
Beschreiben Sie die Architektur des Last Level Cache (LLC) bei Intel CPUs. (02_Cache_04)
Der LLC ist in Slices aufgeteilt die über einen Ringbus verbunden sind. Jeder Slice ist einem CPU-Kern zugeordnet. Der Cache ist inklusiv (enthält alle L1/L2 Daten) und verwendet eine komplexe Adressierungsfunktion (Complex L3-Addressing Function).
Welche drei Phasen hat ein Template Attack und was passiert in jeder Phase? (02_Cache_04)
- Profiling: Messen von Cache-Zugriffszeiten für bekannte Events 2. Analyse: Statistische Korrelation zwischen Events und Mustern 3. Exploitation: Erkennung von Events durch spezifische Cache-Zugriffsmuster
Wie funktioniert ein JavaScript-basierter Cache-Angriff auf den LLC? (02_Cache_04)
Der Angriff nutzt performance.now() für präzise Timing-Messungen erstellt Eviction-Sets für LLC-Sets und kann durch Zugriffszeitmessungen Aktivitäten in anderen Browser-Tabs erkennen auch im Private Mode.
Erklären Sie die Rolle des Branch Target Buffers (BTB) in der Branch Prediction. (02_Cache_04)
Der BTB speichert Zieladressen für bedingte Sprünge. Bei einem Treffer kann die CPU die Zieladresse vorhersagen und mit der Befehlsverarbeitung beginnen bevor die Sprungbedingung ausgewertet ist.
Was sind die Komponenten einer modernen Branch Prediction Unit? (02_Cache_04)
Eine moderne BPU besteht aus dem Branch Target Buffer (BTB) der Pattern History Table (PHT) und dem Global History Register (GHR). Diese arbeiten zusammen um Sprungziele und -verhalten vorherzusagen.
Wie funktioniert das Global History Register in der Gshare BPU? (02_Cache_04)
Das GHR ist ein LIFO-Speicher der die letzten N Sprungentscheidungen als Bits speichert (taken/not taken). Diese Historie wird mit der Sprungadresse kombiniert um genauere Vorhersagen zu treffen.
Welche Vorteile bietet Simultaneous Multithreading und warum wird es heute weniger eingesetzt? (02_Cache_04)
SMT verbessert die Auslastung der Execution Units durch parallele Thread-Ausführung ist aber anfällig für Seitenkanal-Angriffe. Deshalb setzen neuere CPU-Designs (seit Coffee Lake) verstärkt auf andere Optimierungstechniken.
Wie kann man einen Cache Template Attack zur Erkennung von Tastatureingaben nutzen? (02_Cache_04)
Durch Profiling von Shared Libraries (z.B. GUI-Bibliotheken) werden charakteristische Cache-Zugriffsmuster für verschiedene Tasten identifiziert. Im Echtzeitbetrieb können diese Muster dann zur Tastaturerkennung genutzt werden.
Welche Rolle spielt die Complex L3-Addressing Function beim LLC? (02_Cache_04)
Sie verteilt physische Adressen auf die verschiedenen LLC-Slices. Die Funktion ist nicht öffentlich dokumentiert kann aber für CPUs mit 2^n Kernen rekonstruiert werden. Sie beeinflusst die Zugriffszeiten und damit auch Cache-Seitenkanal-Angriffe.
Wie kann man feststellen ob ein System SMT verwendet? (02_Cache_04)
Unter Linux mit ‘lscpu’ oder durch Vergleich der logischen/physischen Kernzahl in /proc/cpuinfo. Unter Windows über ‘wmic cpu get numberOfCores numberOfLogicalProcessors’.
Was sind die Vor- und Nachteile von LLC-basierten gegenüber L1-Cache-basierten Angriffen? (02_Cache_04)
LLC: + Kernübergreifend möglich + Weniger Noise - Längere Zugriffszeiten - Komplexere Adressierung. L1: + Schnellere Zugriffszeiten + Einfache Adressierung - Nur auf gleichem Kern - Mehr Noise.
Welche Gegenmaßnahmen gibt es gegen Template Attacks auf GUI-Anwendungen? (02_Cache_04)
Zufällige Verzögerungen beim Event-Handling Dummy-Zugriffe auf nicht genutzte UI-Elemente regelmäßiges Neu-Laden kritischer UI-Elemente im Cache und Memory Layout Randomisierung bei jedem Start.