Wie man Verkehrssensoren austrickst

Über diese Untersuchung wurde ausführlich auf der RSA US 2016 berichtet. Die Präsentation dazu finden Sie hier.

Während der letzten paar Jahre tauchten in russischen Städten buchstäblich aus dem Nichts Verkehrssensoren auf. Zuerst fielen sie Autofahrern, die Radarwarngeräte verwenden, als weiße Kästen an Masten auf. Ihre Geräte, die eigentlich vor Blitzern warnen sollten, reagierten auf die neuen Sensoren genauso wie auf die Radarfallen der Polizei. Doch die Stadtverwaltung hatte die Sensoren keineswegs wegen dieses für sie doch sehr angenehmen Nebeneffekts installiert. Die Geräte zählen vielmehr die Kraftfahrzeuge unterschiedlicher Größen auf jedem Fahrstreifen, messen deren Durchschnittsgeschwindigkeit und geben die gesammelten Informationen an eine zentrale Stelle weiter.

Wie man Verkehrssensoren austrickst

So sehen die Verkehrssensoren in Moskau aus

So erhält die Stadt Daten über die Straßenauslastung und kann auf dieser Grundlage beispielsweise die Ampelschaltung und die Entwicklung der Straßeninfrastruktur planen. Im Wochenbericht der Moskauer Verkehrsbehörden sind die langsamsten und schnellsten Hauptstraßen verzeichnet, sowohl aufgrund von Informationen des „Zentrums zur Organisation des Straßenverkehrs“ (ZODD) als auch basierend auf Daten von „Yandex“, einem russischen Internetdienstleister. Während die letztgenannten Daten auf der Grundlage von Apps auf Smartphones zusammengetragen werden, so wären die erstgenannten nicht ohne die Verkehrsinfrastruktur erfassbar, von der hier die Rede ist.

Wie man Verkehrssensoren austrickst

Jede Woche veröffentlichen die Moskauer Behörden Daten über die schnellsten und langsamsten Trassen der Stadt

Die Sensoren sind im Prinzip die unterste Ebene der Infrastruktur einer „smarten Stadt“. Sie geben Rohdaten über den Verkehr weiter, ohne die eine Analyse oder die korrekte Einstellung des Systems unmöglich wären. Dementsprechend sollten die von den Sensoren stammenden Informationen genau sein. Doch wie sieht es wirklich aus? Könnten Unbefugte die Funktion der Sensoren und die von ihnen gesammelten Daten beeinflussen? Wir versuchen, eine Antwort auf diese Fragen zu geben und herauszufinden, was an der städtischen IT-Infrastruktur verbesserungswürdig ist.

Geräte und Gerätedaten finden

Jede Untersuchung, darunter auch solche über integrierte Systeme, zu denen die Verkehrssensoren gehören, beginnt mit dem Sammeln aller verfügbaren Daten. Man kann unmöglich alle Sensormodelle kennen, wenn man nicht beruflich und jeden Tag damit zu tun hat. Daher wird es einem vermutlich auch nicht gelingen, den Hersteller der Geräte auf den ersten Blick zu erkennen. Umso wertvoller sind deshalb alle darauf sichtbaren Logos und von den Monteuren angebrachte Etiketten.

Wenn es einem dann doch gelungen ist, das Modell aufgrund seines Äußeren ungefähr zu bestimmen, kann man auf den Webseiten der Anbieter oder der Partnerunternehmen verschiedene Dokumentationen dazu finden, und, wenn man Glück hat, sogar Software für die Geräte. Mit allerhöchster Wahrscheinlichkeit finden Sie dort Marketingbroschüren und sehr wahrscheinlich auch ausführlichere Vertriebsunterlagen. Informationen zur Installation sind ebenfalls keine Seltenheit. Aber das größte und seltenste Glück hat man, wenn man auf eine vollwertige technologische Beschreibung des Gerätes stößt, in der auch das Befehlssystem steht.

Man kann sich das Leben erleichtern, indem man den Arbeitsprozess der Geräte mit Sensoren automatisiert. Das heißt, man muss dann nicht mehr jedes Gerät einzeln betrachten, also weder bei jedem einzelnen anhalten noch mit dem Notebook unter jedem einzelnen Mast sitzen. Heute geht das alles auch aus der Ferne – es ist keine Seltenheit mehr, dass die Elemente einer „smarten Stadt“ über drahtlose Protokolle miteinander verbunden sind. Doch für die Automatisierung muss man erstens wissen, über welches Protokoll der Sensor antwortet, und zweitens, wie man die benötigten Geräte von allen anderen unterscheiden kann.

Zu diesem Zweck sind jegliche Besonderheiten und beliebige Identifikatoren in der Kommunikation ausreichend. So ist beispielsweise die überragende Mehrheit der MAC-Adressen auf konkrete Hersteller eingetragen (allerdings nicht alle, es gibt auch autonome). Neben den in Zahlen ausgedrückten Identifikatoren gibt es auch in Buchstaben ausgedrückte Namen, wobei es sich ebenfalls um Typenbezeichnungen handeln kann, beispielsweise Modellname plus inkrementeller Index.

All das gibt einem die Möglichkeit, einen Scanner für die Suche nach den uns interessierenden Geräten zu schreiben. Eines der in Moskau aufgestellten Modelle nutzt eine Bluetooth-Verbindung. Und die MAC-Adressen sowie die „freundlichen Namen“ der Geräte sind eindeutig und machen es möglich, ausschließlich die Verkehrssensoren in die Datenbanken aufzunehmen und gleichzeitig die in der Nähe befindlichen Smartphones und smarten Fernseher auszuschließen. Das Thema „Sicherheit von Bluetooth“ sprengt den Rahmen dieses Artikels, daher wird an dieser Stelle auch nicht die Rede von der Kompromittierung von Bluetooth-Geräten sein. Kaspersky Lab hat die Moskauer Stadtregierung im November 2015 über die Unzulänglichkeiten in der Konfiguration in Kenntnis gesetzt.

Wie man Verkehrssensoren austrickst

Aufzeichnungen über Verkehrssensoren in den Datenbanken

Für den Scanner habe ich Python, PostgreSQL und ein wenig C verwendet. Dieser bestimmt in Echtzeit, das heißt während man den Sensor passiert, die MAC, den „friendly name“ und die Koordinaten. Das Feld „Hersteller“ und die Adresse werden erst beim nächsten Durchgang in die Datenbank aufgenommen, da alle notwendigen Daten bereits bei uns gesichert sind. Die Adresse über die Koordinaten herauszufinden ist eine relativ zeitaufwändige Prozedur und sollte keineswegs gleichzeitig mit der Gerätesuche durchgeführt werden. Die Installation der Bluetooth-Verbindung ist ebenfalls keine schnelle Angelegenheit. Wenn Sie also Sensoren finden möchten, sollten Sie nicht aufs Gas treten, sondern gemächlich fahren.

Was man mit der Firmware machen kann

Die Offenheit der Hersteller gegenüber den Aufstellern und Installateuren der Geräte, denen problemloser Zugriff auf Tools und Dokumente gewährt werden soll, beinhaltet gleichzeitig auch eine Offenheit gegenüber den Forschern. (Ich bin begeistert von einem solchen Ansatz. Meiner Meinung nach bringt absolute Aufgeschlossenheit für Bug-Bounty-Programme viel mehr als Geheimhaltung). Nachdem man sich aus den gefundenen Sensoren die gewünschten ausgesucht hat, kann man auf dem Notebook die entsprechende Software des Herstellers installieren, um sie zu konfigurieren, zur gespeicherten Adresse fahren und sich mit dem Gerät verbinden.

Wie bei jeder anderen Untersuchung der Sicherheit integrierter Geräte habe ich auch bei den Sensoren zuallererst überprüft, ob es möglich ist, die Firmware des Gerätes neu zu laden.

Wie man Verkehrssensoren austrickst

Die Konfigurations-Software ermöglicht es, die Firmware des Sensors zu ändern

Tatsächlich – über den drahtlosen Zugang ist eine Änderung der Firmware des Gerätes möglich. An die Firmware des Herstellers zu gelangen, ist nicht schwieriger als an seine Software zu kommen. Dem Format nach erinnert sie an Intel iHex oder Motorola SREC. Tatsächlich sind es aber nicht diese Programme, sondern es handelt sich um eine proprietäre Entwicklung des Herstellers. Lässt man die Dienstinformationen („:“ – Befehl zum Aufzeichnen, für Ordnungszahlen, Speicheradressen und Kontrollsummen) unbeachtet, so erhält man aus den Blöcken für den Digital Signal Processor (DSP) und der Main Processing Unit (MPU) direkt den Code. Doch weil wir die Architektur des Controllers an Bord des Gerätes nicht kennen, gelingt es auch nicht, so eine Datei einfach mit einem Disassembler zu öffnen.

Wie man Verkehrssensoren austrickst

Wie man Verkehrssensoren austrickst

Firmware eines Verkehrssensors

Und hier, man mag’s kaum glauben, hilft LinkedIn, das Soziale Netzwerk, das nicht nur für Karrieremenschen und Personalabteilungen von Nutzen ist. Manchmal ist die Architektur eines Gerätes kein Geheimnis und ehemalige Mitarbeiter eines Unternehmens sind bereit, darüber zu reden. Jetzt verfügen wir nicht nur über die Datei, sondern auch noch über das Wissen darüber, für welche Architektur die Firmware kompiliert wurde. Auf Dauer glücklich macht es einen allerdings nicht, und zwar genau bis zum Start des Disassemblers IDA.

Wie man Verkehrssensoren austrickst

Auch wenn in der Dokumentation nicht auf den Controllertyp verwiesen wird, lässt er sich herausfinden

Selbst mit dem Wissen um die Architektur bleibt die Firmware eine sinnlose Ansammlung von Bytes. Doch von demselben Ingenieur erfahren wir auch, wie die Firmware verschlüsselt ist, und wir erfahren etwas über die Schlüsseltabelle und die Algorithmen. Das Gerät selbst hatte ich nicht in der Hand, und an dieser Stelle legte ich die Modifikation der Firmware im Blackbox-Modus als aussichtslos ad acta. Wir räumen ein, dass die Mikroelektroniker in diesem konkreten Fall wissen, wie sie die Firmware schützen. Doch bedeutete das das Ende unserer Untersuchung von Sensoren? Keinesfalls.

Nachts fahren nur noch Laster

Die Modifikation der Firmware ist insofern „gut“, als dass man neue Funktionen ergänzen kann. Doch davon gibt es in der Standard-Software des Anbieters auch ausreichend viele. Das Gerät verfügt beispielsweise über ungefähr 8 MB Speicherplatz, in dem – solange er nicht voll ist – die Kopien der Verkehrsdaten verwahrt werden. Und auf diesen Speicher kann man zugreifen. Die Firmware ermöglicht es, die passierenden Kraftfahrzeuge nach ihrer Länge zu klassifizieren und die Zahl der Fahrspuren zu ändern. Möchten Sie eine Kopie der gesammelten Informationen über den Verkehr? Gut. Ist es aus irgendeinem Grund erforderlich, aus allen Autos Laster zu machen, die auf dem rechten Fahrstreifen fahren? Das ist möglich. Unterm Strich leidet die Genauigkeit der städtischen Statistik mit allen daraus resultierenden Folgen.

Wie man Verkehrssensoren austrickst

So sammeln Verkehrssensoren Daten und geben sie weiter. Diese Daten werden auf dem Gerät gespeichert

Wer gern eine Kopie der hauptstädtischen Statistiken hätte oder diese modifizieren möchte, muss selbstverständlich alle Sensoren ablaufen oder abfahren. Dafür muss er aber nicht unbedingt bei jedem der tausenden von Sensoren das Programm starten und die Einstellungen manuell bearbeiten. In diesem Fall lag uns eine Beschreibung des proprietären Befehlssystems dieser Geräte vor. Man kann nicht behaupten, dass das häufig bei Untersuchungen von integrierten Systemen vorkommt, doch nach der Verbindung mit dem Sensor über die Software sind die Befehle definitiv nicht mehr geheim – sie sind mit einem Sniffer sichtbar. Die englischsprachige Befehlsbeschreibung macht es außerdem überflüssig, das Kommunikationsprotokoll gesondert zu analysieren.

Wie man Verkehrssensoren austrickst

Die dokumentierten Befehle des Geräts machen eine Analyse des Traffics überflüssig

Auf dem Sensor sind Bluetooth-Dienste tatsächlich gar nicht umgesetzt. Das drahtlose Protokoll ist in diesem Fall nicht mehr als eine Umgebung zur Datenübermittlung. Die tatsächliche Datenübermittlung erfolgt über einen gewöhnlichen seriellen Port. Die Programmarbeit mit solchen Ports unterscheidet sich in keiner Weise vom Lesen und Aufzeichnen aus Dateien, und der Code für das Absenden der Befehle ist trivial. Zu diesem Zweck ist es noch nicht einmal notwendig, ganz normale Multithreading-Arbeit mit dem Port umzusetzen. Es reicht aus, ein Byte zu verschicken und die Antwort in einem Thread zu erhalten.

Ziehen wir ein Fazit. Ein mit geringer Geschwindigkeit durch die Stadt fahrendes Auto, ein Notebook mit ausreichend starker Bluetooth-Verbindung und laufendem Scannerprogramm zeichnet die Standorte der Sensoren auf, erntet die darauf enthaltenen Daten über den Verkehr ab und ändert auf Wunsch die Geräteeinstellungen. Ich würde die Informationen über den Verkehr nicht unbedingt als streng geheim bezeichnen, doch unter der Änderung der Einstellungen könnte ihre Zuverlässigkeit leiden. Und auf diesen Daten könnte auch die Funktion „intelligenter“ Ampeln und anderer Verkehrsausrüstung fußen.

Wie man Verkehrssensoren austrickst

Der Sensor antwortet uns. Kennt man das Befehlssystem, ist es nicht schwierig, die Antwort zu „übersetzen“

Was tun?

Wie sich zeigt, sind die Antworten auf die zu Beginn gestellten Fragen über die Zuverlässigkeit der Verkehrsdaten und ihre Sicherheit negativ. Warum ist das so? Für den Zugriff auf die Sensoren bedurfte es keinerlei Autorisierung außer der in Bluetooth geforderten, und auch die war nicht aufs Beste eingestellt. Der Sensor-Hersteller kommt den Ingenieuren sehr entgegen, indem er eine große Menge von Daten über seine Geräte öffentlich verfügbar macht, unter anderem auf der offiziellen Webseite. Ich persönlich gehe damit d’accord, da ich nicht der Meinung bin, dass „Security Through Obscurity“, also „Sicherheit durch Unklarheit“ in unserer Zeit einen Sinn ergibt: Das Befehlssystem findet man so oder so heraus und man kommt auch irgendwie an die Ingenieurssoftware heran. Meiner Meinung nach ist es besser, Offenheit, ein Bug-Bounty-Programm und eine schnelle Reaktion auf gefundene Sicherheitslücken soweit es geht miteinander zu kombinieren. Und sei es deshalb, weil die Zahl der Dritten, die populäres Equipment und Software untersuchen, in jedem Fall stärker wachsen wird als die Zahl der Mitarbeiter irgendwelcher IT-Sicherheitsabteilungen.

In der Installationsphase sollten die Betreiber von sämtlichen Standard-Identifikatoren Abstand nehmen. Es ist verständlich, dass Anbieter ihre Produkte bewerben müssen, und dass die Serviceteams von Aufklebern und Etiketten auf den Geräten zusätzliche Informationen erhalten müssen. Aber das ist nicht nur eine Frage der Bequemlichkeit, sondern auch der IT-Sicherheit. Schließlich darf man sich nicht ausschließlich auf die Standard-Identifikation verlassen, die in gut erforschten Protokollen umgesetzt ist. Jeder zusätzliche, kompetent umgesetzte proprietäre Schutz ist angebracht und erschwert ein Eindringen deutlich.

Diese Untersuchung wurde detailliert auf der RSA US 2016 besprochen, die Präsentation finden Sie auf der Webseite der Konferenz.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.