Beim Kauf des Gebrauchtwagens wies der Vorbesitzer Rasmus Moorats darauf hin, dass die SD-Karte nötig sei, um die Uhrzeit auf dem Display im Fahrzeug zu ändern. Tom's Hardware zufolge besitzt der Sicherheitsforscher einen 2014er Renault Latitude, und die ursprüngliche SD-Karte der Navigationskarte fehlt. Ohne diese Karte ließ sich die Uhrzeit nicht anpassen – die Einstellung hängt also an einem Datenträger, der nicht mehr da war.

Vom Einstellungsmenü zur Firmware

Dabei stieß er auf eine Head-Unit mit einem angepassten, Linux-basierten TomTom-Betriebssystem auf einem Samsung-SoC.

Die Datums- und Uhrzeiteinstellungen lagen laut Tom's Hardware in /mnt/flash/settings.dat in einem benutzerdefinierten Binärformat. Moorats zufolge bezieht das System die Zeit aus GPS und speichert den lokalen Offset als Anzahl von Minuten. Wer eine Stunde umstellen will, muss also eine Binärdatei im Flash-Speicher verstehen, nicht ein Menü bedienen.

Root für den lokalen Offset

Rasmus Moorats überlegte, statt den Userland einen Skript ausführen zu lassen, den Kernel dazu zu bringen, das Skript auszuführen. Tom's Hardware zufolge ließ er den Kernel das Skript ausführen statt der Userland-Ebene und erlangte so Root-Zugriff auf das Infotainmentsystem.

Der lokale Offset in Moorats’ Fahrzeug war auf 180 eingestellt; er änderte ihn auf 120. Tom's Hardware zufolge war das die eigentliche Korrektur: eine Zahl im Speicher, die von Hand geändert werden musste, weil das System keine Zeitzonen kennt.

Die kleine Reparatur mit großer Tiefe

Tom's Hardware zufolge extrahierte und analysierte Rasmus Moorats die Firmware, baute eine QEMU-Umgebung für das Gerät, kehrte die Skript-Engine um und deckte mehrere Schwachstellen des Systems auf. Für eine Stunde Zeitumstellung. In seinem Blogbeitrag stellte Moorats fest, dass das System kein Konzept von Zeitzonen habe.

Die SD-Karte brauchte er am Ende nicht: Die darin enthaltenen Karten waren chronisch veraltet, also entschied er sich, ohne sie auszukommen.