BLOG
Er jailbreakte sein Renault-Infotainment — nur für die Uhrzeit
Yongliang: Als ich dieses Gerät aus dem Jahr 2011 sehe, ist die Vorsicht, mit der es geschützt ist, überraschend: Der rootfs ist nur zum Lesen bestimmt, die SD-Karte ist vfat und noexec, und darauf liegt noch eine Schicht unionfs. Fast alle Partitionen sind entweder nur zum Lesen oder zum Lese- bzw. Ausführen verboten. Seine Erkärnung ist, dass solch starke Sicherheitsmaßnahmen für Geräte aus dem Jahr 2011 überraschend sind. Er hat außerdem den Parser für die benutzerdefinierte UI-Sprache des Fahrzeugcomputers ttn umgekehrt und festgestellt, dass bei jedem Start ein Skript namens master.script geladen wird. Die Angriffsmöglichkeiten liegen also in dieser Sprache.
Shiwen: Welche Waffen hat ihm diese Sprache gegeben?
Yongliang: Zwei Halbfertigprodukte. Das erste ist der SHEX-Befehl, der es ermöglicht, beliebige Binärdateien mit execve auszuführen, allerdings nur unter der Bedingung, dass ein getrenntes Token verwendet wird: Man kann festlegen, welches Programm ausgeführt werden soll, aber Parameter können nicht übergeben werden. Obwohl die SD-Karte noexec ist, kann sie umgangen werden, indem /bin/sh zur Ausführung des Skripts auf der Karte verwendet wird, aber keine Parameter können übergeben werden, daher gibt es keinen Weg. Das zweite ist der LOG-Befehl, der es ermöglicht, eine Zeile druckbaren ASCII-Zeichensätzes an einen bestimmten Pfad zu schreiben. Der LOGFILE unterstützt die Pfadverlängerung ../, und da ttn von root aus läuft, könnte theoretisch überall im System geschrieben werden. Aber der rootfs ist nur zum Lesen bestimmt, andere Partitionen sind noexec, daher kann nichts ausgesprochen werden. Er hat außerdem Unicorn verwendet, um den Bilddecoder zu Falschtesten, und dabei viele Überlauf-Reads gefunden, aber keine verwendbaren Schreibvorgänge. Die beiden Teile des Puzzles passen nicht zusammen.
Shiwen: Wie hat er sie dann schließlich zusammengesetzt?
Yongliang: Das ist der schönste Abschnitt des gesamten Textes. Er erinnerte sich an die klassische Technik bei Kernel-Lückeausnutzung: core_pattern: Man schreibt ein Pipe-Symbol und einen Befehl in /proc/sys/kernel/core_pattern ein, und wenn das Programm abstirbt, führt der Kernel diesen Befehl in root-Rolle aus, um den Coredump zu verarbeiten. Diese Funktion wurde im 2.6.24 eingeführt, und das Fahrzeugkernel war gerade auf 2.6.28. Also verwendete er die Pfadverlängerung von LOG, um LOGFILE auf core_pattern zu verweisen, schrieb einen Pipe-Befehl zur Ausführung des Payload-Skripts auf der Karte mit /bin/sh ein und führte anschließend SHEX aus, um /bin/dbus-monitor auszuführen: Dieses Programm wird von der Systembus-Verbindung getrennt, wenn es SIGABRT auslöst und einen Coredump erzeugt, ohne das gesamte System zu Neustarten. Als der Kernel den Coredump sah, führte er brav den Skript auf der SD-Karte in root-Rolle aus. Das endgültige master.script bestand nur aus drei Zeilen. Nachdem er die Kontrolle übernommen hatte, tat er zuerst alles vollständig mit dd als E-MMC-Backup, und dann stellte er fest, dass die Zeit in /mnt/flash/settings.dat gespeichert war. Das Fahrzeug hatte keine Vorstellung von Zeitzone; die Zeit wurde vom GPS abgerufen und die lokale Verschiebung in Minuten gespeichert: Sein Wert war 180, er änderte ihn auf 120 und beendete seine Arbeit.
Q3: Was wird im Kommentarbereich diskutiert?
Shiwen: Mehr als zweihundert Kommentare auf HN – worüber geht es hauptsächlich?
Yongliang: Die Richtung der hohen Bewertungen ist unglaublich konsistent: Die Absurdität des Zeitmessproblems ist eine Branchenkrankheit. Ein erfahrener Benutzer sagte, dass die Einstellung des Zeitmessers in VCRs ein altes Problem aus den 90er Jahren sei, aber damals konnte man es zumindest einstellen; ohne eine proprietäre SD-Karte ist eine Korrektur des Zeitmessers völlig unmöglich, was als extreme Unfreundlichkeit des Designs angesehen werden kann. Ein anderer Benutzer gab ein Beispiel aus seinem Umfeld: Ein Berufsprogrammierer aus Arizona sagte, dass der Zeitmesser seines neuen Honda CRV seit einem halben Jahr eine Stunde zu spät ist und er immer noch nicht weiß, wie man ihn einstellt. Ein anderer wollte die Steuerung seines 2014er Honda-Fahrzeuges über Root-Dateien ändern, nur weil er es nicht ertragen kann, dass das Fahrzeug bei jedem Bluetooth-Verbindungsaufbau automatisch Laufanweisungen sendet. Kanadische Nutzer sind noch besorgter: Mehrere Provinzen werden ab dem Frühjahr nächsten Jahres die Zeitmessung nicht mehr ändern, und viele Fahrzeugsteuerungen werden keine DST-Regeln aktualisieren, was zu denselben Problemen führen wird.
Shiwen: Hat er erwähnt, dass er einen Umweg gemacht hat?
Yongliang: Ja. Einige Leute sagten, der Autor hätte einfach die Karte des vorherigen Besitzers kaufen sollen, manchmal haben normale Benutzer recht; andere schlugen eine kommerzielle Lösung vor: Man sollte einfach eine neue Steuerung installieren und sicherstellen, dass sie Funktionen wie das Lenkradsteuern unterstützt. Ein Volkswagen-Fahrer sagte, dass es im Menü seines Fahrzeugs bereits einen DST-Schalter gibt, und kritisierte gleichzeitig Renos schlechtes Design in Bezug auf Ergonomie und Firmware seit Jahren. Mehrere Stimmen deuten auf denselben Fakt hin: Einige Hersteller machen die Zeitzonewechselung zu einem Schalter, andere sperren sie in DRM. Der Unterschied liegt nicht in der technischen Schwierigkeit, sondern darin, was man mit den Benutzern macht.
Q4: Wie sieht diese SD-Karte in Unternehmenssoftware aus?
Shiwen: Du hast ein siebzehn Jahre langes technisches Team geführt – ist dir diese Situation vertraut?
Yongliang: Sehr vertraut. Das ist meine Erfahrung, keine Statistik: In der Beschaffungsgeschichte fast jeder großen Unternehmung gibt es denselben Dreh. Ein System sagt, dass eine Funktion durch einen zusätzlichen Modul hinzugefügt werden muss, ein Modul sagt, dass die Ausführung von seinem Lizenzserver abhängt, das Exportformat ist privat, und wenn man Daten migrieren will, gibt es noch eine weitere Lösung, die nur seine Schnittstelle akzeptiert. Reno verwendet eine Karte, Unternehmenssoftware verwendet einen Vertrag – die Struktur ist genau gleich: Was der Anbieter garantiert, ist nie das Produkt, das er verkauft, sondern der Teil des Systems, an den man sich nicht wenden kann. DRM schützt nominell vor Piraterie, aber tatsächlich macht es das grundlegende Funktionen wie die Änderung des Zeitmessers zur Geisel. Wenn Maßnahmen gegen Piraterie den Eigentümer daran hindern, sein eigenes Eigentum zu nutzen, überschreitet es die Grenzen.
Shiwen: Der Autor sagt, dass die Sicherheit im Jahr 2011 überraschend stark war – wie sieht es bis 2026 aus?
Yongliang: Ein entschlossener Einzelner hat mit einer Open-Source-Toolchain das System zerstört. QEMU, Unicorn und Rückentools sind alle kostenlos, und die Strategie, Sicherheit durch Unsicherheit zu gewinnen, hat eine Haltbarkeit, die von der Kostenkurve der Rückentwicklung abhängt. Diese Kostenkurve wird jedoch durch AI beeinträchtigt – im Artikel gibt es Beweise dafür: Der Autor verlässt sich auf das Vorgänger-System, das selbst stark von LLMs unterstützt wird. Rückentwicklung war früher eine Fähigkeit, die nur wenigen Experten zur Verfügung stand, jetzt sinkt der Eintrittspreis deutlich. Für Hersteller bedeutet das, dass die Verteidigungsmaßnahmen gegen private Formate die Gräben für Benutzer verringern: Nutzer, die nicht knacken können, werden die Karte kaufen, diejenigen, die es können, werden kein Geld ausgeben. Die Preisstellung der Lockstrategien geht an den Anbietern vorbei.
Q5: Abgesehen von Kontroversen – was können Ingenieure stehlen?
Shiwen: Was kann man aus diesem Artikel für Menschen lernen, die in der Technik arbeiten?