DEFCON-Konferenz 27. Ihr Auto ist mein Auto. Teil 1

Performance Briefing:

Für viele von uns ist ein Auto einer der teuersten Einkäufe, die wir je getätigt haben. In einer Welt, in der alle Dinge miteinander verbunden sind, ist es ganz natürlich, dass Sie Ihr Auto fernsteuern möchten: Lassen Sie sich daran erinnern, wo wir es geparkt haben, prüfen Sie, ob Sie vergessen haben, die Türen zu verriegeln, oder starten Sie den Motor aus der Ferne, um den Innenraum je nach Jahreszeit vorzuheizen oder zu kühlen.

Es gibt viele Hersteller, die optionale Alarmsysteme anbieten, die diese Annehmlichkeiten und Sicherheit bieten. Aber wie sehr können wir den Anbietern dieser Systeme vertrauen, die den Zugang zu unseren Autos im digitalen Bereich schützen? In diesem Bericht wird Jmaxxz darüber sprechen, was er entdeckt hat, als er sich eines dieser Systeme angesehen hat.

Jmaxxz ist bekannt für seine Arbeit mit August Smart Lock Smart Home-Systemen (DEFCON 24-Vortrag „Backdooring The Frontdoor“). In den letzten Jahren lag sein Fokus auf Geräten für das Internet der Dinge. Er nahm an den Abschnitten „IoT Village Zero Day“ von DEFCON 24 und DEFCON 25 teil und entschied schließlich, dass es Zeit war, das Produkt des sekundären Automobilmarktes zu erforschen - den Fernstarter (im Folgenden als DS bezeichnet).



Mein Name ist J-Max, ich bin von Beruf Programmierer und von Beruf Hacker. Ich mache alles, was mit Burgen zu tun hat, und während dieses Gesprächs werden Sie viele Aussagen hören, die ausschließlich meine Meinung zum Ausdruck bringen und nicht mit der Meinung meiner früheren, gegenwärtigen und zukünftigen Arbeitgeber zusammenhängen. Wie Sie wahrscheinlich verstanden haben, handelt es sich um Autos, nämlich um Fernstarter und Alarmsysteme. Beginnen wir mit dem Hintergrund, der in diesem Zusammenhang wichtig ist, da viele Menschen solche Systeme als unnötigen Luxus betrachten.
Wo ich wohne, ist es ziemlich kalt und mein Freund leidet an einer Krankheit namens Raynaud-Syndrom. Von der Kälte kommt es zu einem Krampf der Blutgefäße der Hände, der Blutfluss zu den Fingern nimmt stark ab, es gibt Anzeichen von Erfrierungen bis hin zur Gewebenekrose. Die Folie zeigt, wie es normalerweise aussieht.



Letzten November habe ich immer noch nicht entschieden, was ich ihr zu Weihnachten geben soll. Und so kehrt sie verärgert vom Flughafen nach Hause zurück, weil sich ihr Auto auf dem Heimweg nicht aufgewärmt hat. In diesem Moment wurde mir klar, dass ich ihr ein ferngesteuertes Motorstartsystem geben würde, und ich suchte nach der besten Option. Es stellte sich heraus, dass der Markt für Fernstarter ziemlich umfangreich ist und viele Hersteller nicht genügend Informationen über ihr Produkt liefern.

Sie geben nicht an, wie das System installiert werden soll und welche Tools zum Programmieren des Geräts verwendet werden sollen. Dies ist ein Problem für mich, da es sich um mein Auto und meinen Fernstart handelt und ich Zugriff auf diese Tools haben muss. Also suchte ich ein bisschen mehr und fand eine Firma aus Kanada, Fortin, die solche Vorspeisen herstellt und bereitwillig alle notwendigen Unterlagen zur Verfügung stellt. Ich entschied mich für dieses Produkt und machte mich auf die Suche nach einer geeigneten Fernbedienung. Tatsache ist, dass bei Verwendung einer Standardfernbedienung mit einem Fernstarter der Aktionsbereich auf den Bereich der Standardfernbedienung beschränkt ist. Auf dem Sekundärmarkt werden Fernbedienungen angeboten, die in einer Entfernung von einer halben Meile bis eineinhalb Meilen betrieben werden. Laut Kundenrezensionen ist dies ein Werbeschritt, da die Entfernung in Wirklichkeit viel geringer ist. Das ist das Problemweil meine Freundin den Motor des auf dem Flughafenparkplatz geparkten Autos starten muss, sobald sie aus dem Flugzeug steigt, was ungefähr eine halbe Meile ist.



Daher wäre es großartig, wenn sie einfach ihr Telefon herausziehen, die Anwendung öffnen und auf „Engine starten“ klicken könnte. Ich habe ein Drittanbieterprodukt namens MyCar gefunden, das vollständig mit Fortin Starter kompatibel ist. Dies ist ein kleiner Schlüsselbund mit einer SIM-Karte und einem GPS-Empfänger, den Sie in das Auto stecken und an einen Fernstarter anschließen können. Anschließend können Sie mit einer mobilen Anwendung den Motor aus der Ferne starten, Sperren entsperren und dergleichen.



Ich dachte, das wäre wunderbar: Gleich nach der Landung des Flugzeugs kann meine Freundin den Motor starten, und wenn sie zum Auto kommt, ist die Kabine bereits warm.

Lassen Sie uns ein wenig darüber sprechen, wie Fernstarter funktionieren. Dazu müssen Sie zunächst verstehen, wie der Automotor startet. Bis etwa Mitte der neunziger Jahre war ein Autostarter ein traditionelles mechanisches Schloss in einer Schlüsselschalterverbindung. Sie mussten einen Schlüssel einstecken und drehen, um den Stromkreis zu schließen. Dann wurden in den Vereinigten Staaten Schlösser mit der Aufschrift "Wegfahrsperre" populär. Es klingt kompliziert, ist aber nur ein elektronisches Schloss. Sie haben also ein mechanisches Schloss, das der Schlüssel zum elektronischen Schloss ist, das wiederum ein Transponder ist und einige Informationen enthält, die gelesen werden können. Und bis Sie das elektronische Schloss öffnen, startet Ihr Auto nicht. Auf der rechten Seite der Folie sehen Sie 2 Schlüssel: links für die Wegfahrsperre und rechts für den üblichen Zündschalter.Es aktiviert einfach die mechanischen Komponenten des Schlosses, während der linke Schlüssel das elektronische Schloss entriegelt, das den Motor des Autos startet.



Warum rede ich darüber? Der Fernstart erfolgt über eine Wegfahrsperre. Auf der nächsten Folie sehen Sie das Anschlussdiagramm des Fortin EVO One-Geräts zur Wegfahrsperre. Unten links sehen Sie ein Kontaktpaar, das als IMO bezeichnet wird. Oben rechts im Diagramm sehen Sie zwei Linien: CAN LOW und CAN HIGH. Dies sind die Kontakte für den Anschluss an den CAN-Bus. Der Grund, warum Fernstarter an den CAN-Bus angeschlossen sind, liegt darin, dass die Installationskosten reduziert werden, da während der Installation weniger Verbindungen verwendet werden. Wenn der Fernstarter Daten vom CAN-Bus lesen oder Befehle über den CAN-Bus senden kann, verkürzt sich die Installationszeit des Fernstartsystems des Motors.

Oben links im Diagramm befindet sich eine ganze Reihe von Gruppenrichtlinienobjekten, die sich auf die Verwaltung oder das Lesen von Maschineninformationen beziehen. Sie möchten beispielsweise, dass die Scheinwerfer blinken oder ein Piepton ertönt, wenn Sie die Sperrtaste drücken. Solche Dinge können mit diesen GPIOs gesteuert werden. Unten links im Schaltkreis sehen Sie einen großen ungeschickten Anschluss - dies ist eine Schnittstelle, die die Umgehung einer mechanischen Verriegelung ermöglicht. Das heißt, Sie müssen den Schlüssel nicht in den Zündschalter stecken und drehen, da diese Schnittstelle eine direkte Interaktion des Relais des Fernstartersystems mit dem elektrischen Schloss ermöglicht.



Die folgenden Folien zeigen die Schritte zum Installieren eines Fernstarters. Grundsätzlich besteht es darin, die Lenksäulenabdeckung zu entfernen, die DS-Einheit zu installieren und anzuschließen. Es sieht ziemlich beängstigend aus, aber einfach.



Die Fernbedienung selbst stellt eine Verbindung zu einem Datenkanal her, den Fortin nennt. Das System verwendet das proprietäre physikalische Datenübertragungsprotokoll UART - einen universellen asynchronen Sender, der Daten mit einer Geschwindigkeit von 9600 Baud austauscht. Fortin Remote Starter verbindet sich einfach über den UART-Bus mit den beiden Fernbedienungen, die Sie auf der Folie sehen.



Nachdem ich DS installiert hatte, dachte ich darüber nach, wie solche Geräte die Fahrzeugsicherheit beeinflussen können. Offensichtlich sollte der DS die Wegfahrsperre umgehen. Wie sicher ist es also in Bezug auf die Möglichkeit des Diebstahls oder des Abfangens der Maschinensteuerung? Dies gilt nicht nur für die Datenübertragung über ein Mobilfunknetz, sondern auch für das Fernstartsignal selbst. Also begann ich, die Informationen des Herstellers im Internet nach dem im Internet verwendeten Datenübertragungsprotokoll zu durchsuchen, und ging in Foren, in denen Leute schreiben, dass Fortin sich weigert, dieses Protokoll bereitzustellen. Einer der Gründe: „Wir verbreiten solche Informationen nicht, da EVO kein Spielzeug für Fans ist, sondern für Profis gedacht ist.



Da ich etwas professionell war, beschloss ich, meine eigene Maschine auf dem Desktop zu bauen. Ich bekam die zweite EVO-Systemeinheit, baute die Leiterplatte zusammen, die ein Auto war, fügte Schalter hinzu, um die Zündung zu simulieren, einen Knopf für das Bremspedal und eine ganze Reihe von LEDs, um verschiedene Zustände anzuzeigen.



In Kombination kombinierte ich das FTI-Gerät, um den Datenkanal zu überwachen, und begann, diese Daten zu sammeln. Auf den ersten Blick sieht es so aus wie auf der Folie, und es ist nicht ganz klar, was hier passiert. Bei näherer Betrachtung können wir jedoch sagen, dass es hier definitiv eine Art Struktur gibt.



Bitte beachten Sie, dass die Nachricht, die die Antenne an meinen DS sendet, immer bei 0 ° C beginnt und bei 0 ° D endet, wenn ich eine Taste auf meiner Fernbedienung drücke. Wenn wir also einfach trennen, was wir bekommen, vorausgesetzt, 0C ist der Anfang und 0D das Ende, dann haben wir so etwas.



Einige Strukturen sind hier bereits deutlich sichtbar, sodass Sie herausfinden können, was gerade passiert. Nachdem ich nach dem Drücken einer bestimmten Taste verfolgt hatte, welche Meldung angezeigt wird, konnte ich eine Befehlstabelle erstellen, die jeweils einer bestimmten Aktion entspricht. Das heißt, wenn Sie die Taste auf der Fernbedienung drücken, sendet die Antenne einen Befehl an das Fernstartmodul, der so aussieht.



So sieht eine typische Teamstruktur aus.



Wenn Sie die Taste auf der Fernbedienung drücken, sendet die Antenne einen solchen Befehl an den Fernstarter. Es weckt das Byte 0C, gefolgt von 2 Bytes, die meiner Meinung nach die Übertragungsrichtung darstellen. Dies ist interessant, da UART bereits eine Signalübertragungs- / Empfangsrichtung hat. Daher habe ich diese Bytes als "Müll" markiert. Betrachten Sie sie einfach als Konstante. Darauf folgt ein einzelnes Byte, das den Befehl angibt, den der Benutzer ausführen möchte. Dies kann ein Schloss von Türen oder deren Öffnen, Deaktivieren des Alarms usw. sein. Im Allgemeinen hängt alles, was Sie remote ausführen möchten, mit diesem Befehl zusammen. FF-Nutzlast FF F1 ist die Adresse oder Kennung, die die entfernte Antenne identifiziert, von der die Nachricht stammt. Wenn die DS-Einheit die Kennung nicht erkennt, wird der Befehl ignoriert. Wenn der DS die Kennung akzeptiert,Es beginnt ein mehrstufiger Vorgang, bei dem der Zündschlüssel überprüft, der Motor ein- oder ausgeschaltet, das Bremspedal gedrückt usw. wird. Tatsächlich spielt dieser Prozess keine große Rolle, nur das Gerät untersucht gerade die ID.

Am Ende der Nachricht befindet sich ein Byte mit einer Prüfsumme und einem Byte, das das Ende des Befehls angibt. Was können wir dagegen tun, nachdem wir verstanden haben, wie das Protokoll funktioniert? Ich habe ein paar Videos zum Thema. Leider ist das Video aus irgendeinem Grund ohne Ton, daher werde ich Ihnen sagen, was auf dem Bildschirm passiert. Links von der Lenksäule auf der Instrumententafelabdeckung befindet sich eine weiße Box, die Elektronik mit Partikel.IO-Firmware enthält, die das Fortin-Protokoll versteht. Ein Kabel mit blauer Spitze ist eine Antenne. Mit dieser Funktion kann ich von der Kabine aus mit der Fernstartereinheit interagieren und auf dem Laptopbildschirm sehen, was gerade passiert.



Also sende ich den Befehl zum Entsperren des Schlosses an das Auto, aber es funktioniert nicht, da der DS nichts über diese Antenne weiß. Wie bereits erwähnt, handelt es sich lediglich um UART, dessen Eigenschaft die Unterstützung der sogenannten bidirektionalen Kommunikation ist, damit Sie Informationen über den Zustand des Fahrzeugs aus der Ferne erhalten können. Wenn der Motor beispielsweise physisch gestartet oder gestoppt wurde, sendet die DS-Einheit eine entsprechende Nachricht an die Fernbedienungsantenne. In diesem Fall enthält die Nachricht die Adresse dieser Antenne.



Das Problem ist, dass die Kommunikation über das UART-Protokoll erfolgt und jeder, der eine Verbindung zum UART-Bus herstellt, die Adresse sehen kann, an die diese Nachricht gesendet wird, so dass es in meiner Firmware möglich ist, die Adresse einer vorhandenen Antenne zu klonen, was ich mit dem entsprechenden Befehl mache.



Um eine Nachricht zu generieren, öffnen Sie einfach die Autotür. Wie Sie sehen können, sendet der DS eine Nachricht an die Antenne, dass die Tür geöffnet war, und der Alarm wird sofort eingeschaltet.



Um den Alarm auszuschalten, sende ich den Befehl „Entsperren“. Danach wird der Alarmton ausgeschaltet und das Auto entsperrt. Sie müssen mein Wort dafür nehmen, weil wir dieses Video nicht mit Ton abspielen konnten. Versuchen wir erneut, das Video abzuspielen.



Nun, der Ton erschien (ca. Übersetzer: Das gleiche Video mit Soundtrack wird auf dem Bildschirm abgespielt). Sie haben also gesehen, wie ich den DS-Befehl gesendet und den Alarm eingeschaltet habe, und das alles ohne Schlüssel. Versuchen wir nun, das Auto auf die gleiche Weise zu starten. Dazu sehen wir das folgende Video.

Normalerweise funktioniert es nicht, nur den Befehl „start“ einzugeben und zu versuchen, den Motor zu starten. Der Grund ist, dass dies ein Auto mit einem manuellen Getriebe ist und für solche Autos Fernstartsysteme ein spezielles Verfahren haben. In diesem Fall müssen Sie die Fernstarttaste drücken, während der Schlüssel in der Zündung steckt und der Motor gestartet ist. Dann können Sie den Schlüssel abziehen, aus dem Auto aussteigen, die Tür schließen. Danach stellt der DS den Motor ab und schließt die Tür ab. Dies geschieht, damit das Auto während der Fahrt nicht aus der Ferne auf das Starten des Motors reagiert, da dies gefährlich ist. Dies ist jedoch keine vollständige Sicherheitsfunktion. Dies zu beweisen ist ganz einfach, wenn Sie sich den EVO-Block des Fernstarters ansehen. Sie sehen diesen gelben Draht in Form einer Schleife, die für die Arbeit mit einem mechanischen Getriebe ausgelegt ist.Wenn Sie es trimmen, kann dieses Gerät für ein Auto mit Automatikgetriebe verwendet werden. Durch dieses Design des Geräts können Sie beim Einbau des DS in Fahrzeuge mit unterschiedlichen Getriebetypen keine besonderen Einstellungen vornehmen.



Das System hat also nicht auf den Startbefehl reagiert, daher werde ich diesen Block wieder einsetzen und einfach diesen Draht abschneiden, um die Verbindung zu trennen. Wenn Sie nun den Startbefehl wiederholen, ertönt ein akustisches Signal und die Statusanzeigen des Fahrzeugsystems leuchten auf der Instrumententafel auf, wie dies beim Einstecken des Schlüssels in das Schloss der Fall ist.



Im Moment haben wir ein Auto, das wir ohne Schlüssel in der Zündung aus der Ferne starten können, aber das DS-Modul ist nicht alles, was wir brauchen. Unter normalen Umständen können Sie das Fahrzeug immer noch nicht aus der Ferne verlassen. Versuchen wir jedoch, es trotzdem zu tun.

Um die Lenkradsperre zu deaktivieren, müssen Sie einen herkömmlichen Schlüssel in den Zündschalter stecken, in dem sich kein Transponder befindet. Wie Sie sehen können, schalten Sie den Schlüssel einfach in die Position vor dem Start des Motors, und das Lenkrad des Subaru Impreza beginnt sich völlig frei zu drehen.

Wenn Sie jedoch keinen Schlüssel haben, bleibt das Auto stehen, wenn Sie das Bremspedal drücken. Diese Einschränkung zu umgehen ist einfach genug. Finden Sie heraus, wie das Auto dem Fernstarter mitteilt, dass die Bremse betätigt ist. Sie sehen mehrere mehrfarbige Anschlüsse auf der Rückseite des EVO-Modulgehäuses - hier wird ein Kabel vom CAN-Bus angeschlossen. Es reicht aus, dieses Kabel nach dem Fernstart des Fahrzeugs einfach aus der DS-Einheit herauszuziehen, und es reagiert nicht auf das Drücken des Bremspedals. Da sich dieses Gerät unter der Lenksäulenabdeckung befindet, gebe ich über meinen Laptop den Startbefehl, das Auto startet, ich öffne die Tür, steige aus dem Auto und entferne den CAN-Bus-Stecker vom EVO-Block. Wie Sie sehen können, läuft der Motor des Autos, während wir noch keinen Schlüssel in der Zündung haben.

Wenn Sie jetzt das Bremspedal betätigen, passiert nichts, da der EVO nicht weiß, dass es gedrückt wurde. Danach kann ich mich ans Steuer setzen, die Bremse drücken, den Schaltknauf in die Position „Fahren“ bringen und das Auto fährt. All dies geschieht ohne Anhaltspunkt.

21:40

DEFCON-Konferenz 27. Ihr Auto ist mein Auto. Teil 2


Ein bisschen Werbung :)


Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung aufgeben oder Ihren Freunden Cloud-basiertes VPS für Entwickler ab 4,99 US-Dollar empfehlen , ein einzigartiges Analogon von Einstiegsservern, das von uns für Sie erfunden wurde: Die ganze Wahrheit über VPS (KVM) E5-2697 v3 (6 Kerne) 10 GB DDR4 480 GB SSD 1 Gbit / s ab 19 $ oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).

Dell R730xd 2-mal günstiger im Equinix Tier IV-Rechenzentrum in Amsterdam? Nur wir haben 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2,6 GHz 14C 64 GB DDR4 4 x 960 GB SSD 1 Gbit / s 100 TV von 199 US-Dollar in den Niederlanden!Dell R420 - 2x E5-2430 2,2 GHz 6C 128 GB DDR3 2x960 GB SSD 1 Gbit / s 100 TB - ab 99 US-Dollar! Lesen Sie mehr über den Aufbau eines Infrastrukturgebäudes. Klasse C mit Dell R730xd E5-2650 v4-Servern für 9.000 Euro für einen Cent?

All Articles