
Inhaltsverzeichnis
Mit dem Fortschritt der Computerarchitektur sind moderne Prozessoren einer Vielzahl von Angriffen ausgesetzt, die Schwachstellen in den Hardware-Funktionen ausnutzen. Mikroarchitektur-Kanäle– einschließlich Seiten- und Covert-Kanälen – haben sich von theoretischen Kuriositäten zu realen Bedrohungen entwickelt, die es Angreifern ermöglichen, sensible Informationen zu leaken, ohne klassische Sicherheitsalarme auszulösen.
Ein besonders besorgniserregendes Nutzungsszenario ist die Erstellung von Hochkapazitäts-Covert-Kanälen, die große Mengen an geheimen Informationen zuverlässig zwischen zwei kooperierenden Prozessen, selbst über Prozess- oder Sicherheitsgrenzen hinweg, übertragen können. Wie in Understanding and Improving High Capacity Covert Channels via Microarchitectural Channel Engineering (HPCA 2015) entdeckt und analysiert, haben diese Angriffsvektoren praktische Auswirkungen und erfordern rigorose Überprüfung.
Dieser Artikel erklärt Mikroarchitektur-Kanäle von Grund auf bis zum fortgeschrittenen Niveau, taucht in die Konstruktion von Hochkapazitäts-Kanälen ein, stellt Codebeispiele zur Erkennung und Messung vor, überprüft verfügbare Abschwächungen und erläutert die Bedeutung dieses Themas in der modernen Cybersicherheit.
Mikroarchitektur-Kanäle entstehen aus der physischen Implementierung der Prozessorarchitektur – der sogenannten "Mikroarchitektur". Während die Architektur beschreibt, was der Prozessor tut (der Befehlssatz), beschreibt die Mikroarchitektur, wie dies erreicht wird (Pipelines, Caches, Puffer, Vorhersagetabellen usw.).
Prozessoren sind auf Leistung ausgelegt - nicht auf Sicherheit auf Mikroarchitekturebene. Geteilte Ressourcen führen zu Variationen in Timing, Verfügbarkeit oder Verhalten, die von anderer Software beobachtet und zur Enthüllung von Geheimnissen genutzt werden können.
Schlüsselidee: Auch wenn zwei Prozesse keinen Speicher teilen, können sie Hardware teilen - was Kommunikation ermöglicht.
Unterschied:
Seitenkanäle leaken Geheimnisse unbeabsichtigt; Covert-Kanäle werden explizit für die Kommunikation zwischen Verschwörern über Sicherheitsgrenzen hinweg aufgebaut.
Moderne Covert-Kanäle können für Zuverlässigkeit und hohe Kapazität (Bandbreite) konstruiert werden, die eine erhebliche Menge an Daten über kurze Zeiträume leaken können. Lassen Sie uns aufschlüsseln, wie Angreifer dies bewerkstelligen.
Um Covert-Kanäle zu ermöglichen, sind geteilte mikroarchitektonische Ressourcen entscheidend. Wie beschrieben in AutoCC: Automatic Discovery of Covert Channels in Time-Division Multiplexed Processors (Princeton, 2023):
| Ressourcentyp | Beispielmechanismus | Angriffsvektor |
|---|---|---|
| Caches | L1/L2/L3 Daten- und Instruktionscaches | Prime+Probe, Flush+Reload |
| Verzweigungsprediktoren | Richtungsverlaufstable, BTB, RSB | BranchShadowing |
| TLBs | Shared translation lookaside buffers | TLBleed-style Attacks |
| Speicherbusse | DRAM-Banks, Zeilenpuffer | DRAM-Zeilenkanal |
| Vorabrufpuffer | Hardwarevorabrufe, Opfervorabrufe | Spectre-Varianten |
Ein Senderprozess kann ein Cache-Set vorabfüllen (bestimmte Adressen laden). Der Empfänger, der später ausgeführt wird, überprüft die Zugriffsgeschwindigkeit auf dieselben Adressen:
Beschreibung:
Der Sender füllt (primed) ein Cache-Set. Wenn der Empfänger über langsames Lesen informiert, schließt er auf eine Cache-Verschiebung zwischen den Probes (Anzeige eines bestimmten Bits).
Verwendung für:
Leaking von Daten aus sicheren oder sandboxierten Umgebungen (z. B. Browser-JavaScript) zu feindlichen Prozessen.
Bandbreite:
Abhängig von der Hardware sind hunderte von Kilobit pro Sekunde möglich, wie in HPCA 2015 gezeigt.
Beschreibung:
Hängt von gemeinsamem Speicher ab, wie beispielsweise Codebibliotheken, die an derselben Stelle in mehreren Prozessen abgebildet sind (z. B. über Shared Libraries in Linux).
Die Erkennung ist schwierig, da die Operationen von Covert-Kanälen gutartige Ressourcenzugriffsmuster nachahmen. Mit sorgfältiger Messung können Kanäle jedoch entdeckt und charakterisiert werden.
rdtsc auf x86).Lassen Sie uns praktische Schritte für Sicherheitsforscher überprüfen.
hwloc, lscpu, dmidecode# Cache- und CPU-Topologie drucken
lscpu
hwloc-ls
dmidecode --type cache
import time
start = time.perf_counter_ns()
# Speicherzugriff/Funktionsaufruf
end = time.perf_counter_ns()
print(f"Verstrichen (ns): {end - start}")
Verwenden Sie rdtsc, um Zugriffszeiten zu messen.
#include <stdio.h>
#include <x86intrin.h>
int main() {
volatile int data = 0;
unsigned long t1, t2;
int iterations = 1000;
for (int i = 0; i < iterations; i++) {
t1 = __rdtsc();
data += i; // Speicherzugriff
t2 = __rdtsc();
printf("%lu\n", t2 - t1); // Zyklen für den Zugriff drucken
}
return 0;
}
Angenommen, Sie haben eine Datei timings.txt (aus dem oben genannten C-Beispiel):
# Min, Max, Durchschnittszeit drucken
awk '{sum+=$1; if(min==""||$1<min) min=$1; if($1>max) max=$1} END {print "Min:", min, "Max:", max, "Avg:", sum/NR}' timings.txt
# Verwenden von perf zur Überwachung von Cacheereignissen (erfordert root)
sudo perf stat -e cache-misses,cache-references -p <pid>
Wie in Prevention of Microarchitectural Covert Channels on an SoC (Wistoff et al. 2020) diskutiert:
perf, statische Analyse-Tools und spezifische Sicherheitsfunktionen des Anbieters (z. B. Intel CAT, AMD SEV).Mikroarchitektur-Covert-Kanäle stellen eine raffinierte und sich ständig weiterentwickelnde Klasse von Bedrohungsvektoren in der Cybersicherheit dar. Während Angreifer zuverlässige und hochkapazitive Kanäle entwickeln, die Hardware-Ressourcenteilung ausnutzen, müssen Verteidiger Hardware-, OS- und Software-Strategien kombinieren, um diese Kanäle zu mindern.
Das Verständnis des Wie und Warum dieser Schwachstellen befähigt die Praktiker, Risiken zu erkennen, zu verhindern und zu minimieren. Mit fortlaufender Forschung, von HPCA 2015 über Tools wie AutoCC bis hin zu zeitgenössischen Arbeiten, setzt sich der Kampf zwischen Angreifern und Verteidigern auf den niedrigsten Ebenen der Informatik fort.
Von [Ihr Name], Cybersicherheitsforscher — [Ihre Seite/Kontakt]
Wenn Sie diesen Inhalt wertvoll fanden, stellen Sie sich vor, was Sie mit unserem umfassenden 47-wöchigen Elite-Trainingsprogramm erreichen könnten. Schließen Sie sich über 1.200 Studenten an, die ihre Karrieren mit den Techniken der Unit 8200 transformiert haben.