RAMBleed
# RAMBleed

RAMBleed bezeichnet eine Seitenkanalattacke gegen benachbarte Zellen eines Halbleiter-Speichermoduls, wobei sich Bits im Arbeitsspeicher (DRAM) auch aus fremden Prozessen auslesen lassen. Dies ermöglicht es einem Angreifer, durch vorherige Veränderungen bestimmter Bits z. B. Sicherheitsvorkehrungen zu umgehen. Ein Rowhammer-Angriff verändert Bits im Speicher des Opfer. Konkret wechselt er die Ladung der Speicherzelle. RAMBleed missbraucht den Rowhammer-Angriff hingegen nicht zum Schreiben, sondern zum Auslesen von Speicherzellen. Da der physische Speicher von allen Prozessen im System gemeinsam genutzt wird, sind alle Prozesse gefährdet. Der erste derartige Angriff wurde im Juni 2019 durch Andrew Kwong, Daniel Genkin, Daniel Gruss und Yuval Yarom der breiten Öffentlichkeit bekannt. Die zugehörige CVE-Nummer ist CVE-2019-0174.

## Funktionsweise

Die seit Jahrzehnten zunehmende Erhöhung der Kapazität der Halbleiterspeicher trotz gleicher Halbleiterfläche erleichtert Seitenkanal-Angriffe. Einem RAMBleed-Angriff geht ein Rowhammer-Angriff voraus:
Halbleiterspeicher sind physisch in Reihen organisiert. Um darauf zuzugreifen, wird der Inhalt einer Reihe in einen kleinen Pufferspeicher kopiert, auf den man zugreift. Erst wenn auf eine andere Reihe zugegriffen wird, wird deren Zustand zurückgeschrieben und die andere Reihe in den Reihenpuffer geladen. Ein Prozessor lässt es mit dem Clflush-Befehl zu, gezielt Speicher aus seinem kleinen Zwischenspeicher, dem Cache, zu werfen. Damit muss der Arbeitsspeicher ebenso oft Reihen lesen und zurückschreiben. Wird sehr oft auf eine Speicherzelle im Wechsel mit einer anderen Zelle zugegriffen, muss der Arbeitsspeicher Reihen so oft lesen und zurückschreiben. Dabei interagieren elektrische Felder der Reihen, auf die ein Angreifer zugreift, mit Nachbarreihen. Die Ladung „leckt“, was den Inhalt einer Nachbarzelle ändern kann. Das führt zu Fehlfunktionen wie etwa dem Abstürzen von Programmen oder des Betriebssystems oder bei gezielten Angriffen zu unerlaubtem Zugriff auf den gesamten Rechner. RAMBleed erfordert im Gegensatz zu Rowhammer keine ständigen Ladungswechsel in Speicherzellen. Daher sind von Server-Computern verwendete Halbleiterspeicher mit interner Fehlerkorrektur (ECC) nicht vor RAMBleed geschützt.

## Praktische Anwendung

Da die RAM-Kompromittierung nicht an spezielle Programme gebunden ist, ist eine Vielzahl an Angriffen möglich. Demonstriert wurde das unbefugte Auslesen der RSA-Schlüssel von OpenSSH 7.9. Jedoch kann man auf diese Weise alle im Speicher abgelegten Daten lesen. Dies bedeutet keinesfalls, dass damit speziell SSH unsicher wäre. Ebenso hätte jede andere Verschlüsselung angegriffen werden können. Im Gegensatz zu lokalen Rechnern, auf die nur ein einzelner Nutzer Zugriff hat, sind jedoch gerade Cloud-Umgebungen ein potenzielles Angriffsziel für RAMBleed.

## Abwehrmethoden

Im Gegensatz zum Rowhammer-Angriff, den ein ECC-fähiger RAM mit einer ECC-fähigen CPU erschweren kann, ist RAMBleed hiermit nicht abzuwehren, da er keine häufigen Ladungswechsel voraussetzt. Ein Angreifer muss nur wissen, dass Ladungswechsel auftraten. Man kann Speicher allenfalls auf DDR4 aktualisieren und die gezielte Zeilenaktualisierung (TRR) aktivieren, um den Angriff zu erschweren.