Wahlmaschinen-Hack demonstriert "Return-oriented Programming"

Ein Forscherteam führt an einer eigentlich "unknackbaren" Wahlmaschine eine raffinierte Exploit-Technik vor, die auch dann funktioniert, wenn man keinen eigenen Code ausführen kann.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 1 Min.

Der Fall scheint eigentlich von vorn herein aussichtslos: Die Wahlmaschine Sequoia AVC Advantage wartet mit einer konsequenten Harvard-Architektur auf. Sprich: Daten und Code sind strikt getrennt, jeder Versuch, eingeschleusten Code auszuführen, erzeugt einen Fehler in Form eines Non-Maskable-Interrupts (NMI). Trotzdem gelang es dem Wissenschaftler-Team, die Wahlmaschine ihren Code ausführen zu lassen. "Ein Angreifer, mit Zugang zu der Wahlmaschine am Abend vor einer Wahl, kann diese Technik ausnutzen, um das Programm durch ein anderes zu ersetzen, das [...] nach seinem Belieben Stimmen hinzufügt, entfernt oder ändert."

Die Wissenschaftler erreichen das mit einem Trick. Sie suchen sich im bereits existierenden Code kurze Code-Sequenzen, die mit einem RET-Befehl enden. Dieser holt sich eine Adresse vom Stack und springt dort hin. Mit einem kunstvoll vorbereiteten Stack aus Adressen passender Code-Schnippsel können die Forscher somit quasi beliebige Programme nachbauen. Den gewünschten Stack erzeugten die Forscher mit einem herkömmlichen Pufferüberlauf im existierenden Programmcode. Damit löst der nächste RET-Befehl im Programm eine Serie von RETs aus, die letztlich den Code ausführt, der das Wahlergebnis nach Vorgaben des Angreifers manipuliert. Die Wissenschaftler nennen diese kunstvolle Exploit-Technik "Return-oriented Programming".

Can DREs Provide Long-Lasting Security? Checkoway, Halderman, Feldman, Felten, Kantor und Shacham (ju)