Wenn an alles gedacht wurde -
nur nicht an die "Kanalisation":
Rowhammer-Angriff!
Bild von Tobias Dahlberg auf Pixabay
Wie fühlt es sich an, wenn alle Sicherheitsvorkehrungen versagen nur weil man aus Kostengründen einen Billigserver gemietet hat.
Festplatte verschlüsselt, aktuelles Betriebssystem und keine Schwachstellen in der Software: reicht das nicht?
Schon seit geraumer Zeit sind die Schwächen von RAM Bausteinen einiger Hersteller bekannt. Als sogenannter Microarchitectural Side-Channel Attack (MASCAT) ist Rowhammer ein Vorgänger von Spectre, Meltdown und ZombieLoad, den möglicherweise gefährlichsten Sicherheitslücken in vielen Prozessoren. Entdeckt wurde das Ganze von Daniel Gruss, der an der TU Graz forscht.
Wo liegt das Problem?
Das Problem ist physikalischer Natur und damit nur schwer Beherrschbar. Solange Daten verschlüsselt auf Servern liegen, ist es schwer an die enthaltenen Informationen heranzukommen. Es gibt dafür nur einen Weg und der führt über die Speicherbausteine (RAM) des Computers. Mit verschlüsselten Daten können Computer nichts anfangen. Deshalb liegt der überwiegende Teil der Daten bei der Abarbeitung eines Programms unverschlüsselt in den Speicherbausteinen. Wer Adminrechte auf seinem Rechner hat kann dies leicht mit Software wie z.B. dem HxD - Freeware Hex-Editor testen.
Ein Angreifer benötigt Zugriff auf den Rechner um Daten auf diesem Weg zu kopieren.
Viele Webserver und Cloudangebote sind nichts anderes als sehr große Computer, auf denen sich viele Anwender die vorhandenen Ressourcen teilen. D.h. diese Anwender teilen sich auch den Hauptspeicher dieses Computers. Damit Daten im Hauptspeicher dieser Maschinen nicht von jedermann gelesen werden können, weist das Betriebssystem jedem Nutzer einen geschützten teil im Speicher zu, auf den nur dieser Nutzer Zugriff hat.
Wie kann mit Hilfe des Rowhammer-Angriffs auf den Inhalt geschützter Bereiche anderer User zugegriffen werden?
Das will ich hier stark vereinfacht erklären:
Speicherzellenanordnung: Stellen wir uns den Hauptspeicher (RAM) vor, der aus einer Anordnung von Speicherzellen besteht. Diese Zellen sind in Reihen und Spalten organisiert:
| 0 | 1 | 2 | 3 | 4 | ... |
| 5 | 6 | 7 | 8 | 9 | ... |
| . | . | . | . | . | ... |
Lesen und Schreiben: Bei normalen Betriebsvorgängen werden Daten in diese Speicherzellen geschrieben und gelesen. In einem Rowhammer-Angriff wird gezielt versucht, immer wieder auf bestimmte Speicherzellen zuzugreifen.
Wiederholtes Schreiben: Der Angreifer wählt eine bestimmte Speicherzeile (Row) aus und schreibt mit hoher Frequenz wiederholt Daten in die Zellen dieser Zeile. In unserem Beispiel als "x" gekennzeichnet:
| x | x | x | x | x | ... |
| . | . | . | . | . | ... |
| . | . | . | . | . | ... |
Elektronische Effekte 😮: Durch das wiederholte Schreiben in diese Speicherzeile können elektronische Effekte auftreten, die zu Leckströmen in benachbarte Speicherzellen führen. Hier mit als "1" dargestellt:
| x | x | x | 1 | x | ... |
| . | . | . | . | . | ... |
| . | . | . | . | . | ... |
Benachbarte Zellen beeinflusst: Die Leckströme können dazu führen, dass Daten in benachbarten Speicherzellen ungewollt verändert werden, ohne dass auf diese direkt zugegriffen wird:
| x | x | x | 1 | x | ... |
| . | . | . | 0 | . | ... | (veränderte Zelle)
| . | . | . | . | . | ... |
Unerwünschte Datenänderungen: Diese ungewollten Änderungen in benachbarten Speicherzellen können von einem Angreifer ausgenutzt werden, um die vom Betriebssystem eingerichteten Speicherbereiche zu überwinden um dann im Anschluss daran Daten zu manipulieren.
Rowhammer-Angriffe sind ein komplexes Thema, und die obige Darstellung ist stark vereinfacht. Es zeigt jedoch das grundlegende Prinzip, wie wiederholtes Schreiben in bestimmte Speicherzellen unerwünschte Effekte in benachbarten Zellen hervorrufen kann und wie diese Effekte ausgenutzt werden können.
Rowhammer-Angriffe sind extrem zeitintensiv und aufwendig.
"So etwas macht man nicht aus Spaß."
urteilt der Entdecker Gruss. „Über eine Sicherheitslücke in der Software erhält man innerhalb von Sekunden Zugriff auf ein System. Wir gehen auch bei den neuen Rowhammer-Möglichkeiten noch von Stunden oder sogar Tagen aus.“
Mit JOUO zeigen wir nicht nur Schwachstellen ungepatchter Systeme, sondern wir zeigen auch, ob ihre digitalen Werte auf virtuellen Maschinen liegen, und wer Mitbenutzer der Ressource ist.
#DoNotFightAlone