Zum hauptinhalt springen

Tatü-Tata, ein Databreach ist da

zwei Leiterwagen auf einem Globus, in der Mitte ein Kartenpin

Immer wissen wo es brennt? Da gibts doch was von Ratiopharm? Früher musste man dazu schon den Behördenfunk abhören oder einen guten Kontakt in der Leitstelle haben. Aber was, wenn dir jedes Feuerwehrauto einfach jederzeit seinen Standort verrät?

Müssen wir nicht lange drumrumreden: Ist uns passiert. Die ganze Geschichte hier:

Hilfe, wir wurden geinfluenced

Es ist ein Samstagvormittag, kurz nach neun Uhr morgens. Es ist bereits zu warm um etwas Produktives zu tun. Deswegen sitzt das zerforschi lustlos auf der Couch, scrollt so halb aufmerksam durch Instagram. The millenial lifestyle…

Plötzlich bleibt das zerforschi mit den müden Augen an einem sichtbaren QR-Code auf einem komisch aussehenden Gerät hängen.

Die müden Augenlider heben sich langsam, der antrainierte Werbeblocker im Hirn funktioniert plötzlich nicht mehr und wird von Interesse überdeckt. Es stellen sich zwei entscheidende Fragen, die in diesem Moment wichtiger werden als alles andere:

  1. Warum ist Instagram der Meinung, dass ich die richtige Zielgruppe für GPS-basiertes Flottentracking für Feuerwehrautos bin?
  2. Was steckt hinter dem QR-Code?

Neugierig klappt das zerforschi seinen Laptop auf und öffnet ein Bildbearbeitungsprogramm. Hier wird mit ein paar Klicks der QR-Code aus dem Post ausgeschnitten, großgezoomt und geradegerückt. Jetzt nochmal probieren, den QR-Code zu scannen – und es klappt!

Neugierde? Geweckt!

Der Link hinter dem QR-Code führt tatsächlich auf die Weboberfläche der Flottentracking-Software: “Rosenbauer Connected Fleet”. Dort erfährt das zerforschi: Rosenbauer, mit dem Sitz im schönen Leonding in Österreich, ist einer der weltweit größten Hersteller von Feuerwehrfahrzeugen und bietet hier eine Anwendung an, um die eigenen Einsatzfahrzeuge immer im Blick zu behalten. Aber Moment: Nur die eigenen?

Zuerst wird das zerforschi von einer Login-Maske begrüßt 👋. Zugangsdaten hat es natürlich keine – das ist aber schnell geklärt: Es kann sich einen Account erstellen. Der hilft aber erstmal auch nicht weiter. Denn der frisch erstellte Account ist keiner Organisation zugeordnet, und hat damit keinen Zugriff auf die spannenden Teile der Anwendung.

Jedenfalls auf den ersten Blick…

Denn moderne Webanwendungen wären für uns nur halb so spannend, wenn es nicht das Konzept einer “Single-Page-Application” geben würde. Das heißt: Alle Funktionalität steckt in einer einzigen Webseite, ohne dass bei jeder Aktion die ganze Seite neu geladen werden muss.

Die benötigten Informationen werden von der Anwendung im Hintergrund über Schnittstellen geladen und auf der Seite nur die Elemente ausgetauscht, die sich ändern. Das ist an sich nichts Besonderes, und schon seit mehr als zehn Jahren so üblich. Hat für uns aber einen besonderen Vorteil: Beim Öffnen der Webanwendung wird der Programmcode für die verschiedenen Aktionen oder Datenanzeigen schon geladen. Und da in diesem Fall die Fehlermeldung “keine Organisation zugeordnet” Teil der Anwendung ist, bekommen wir den gesamten Programmcode serviert. Praktisch.

Und dieser Code enthält natürlich die Adressen der Schnittstellen (APIs), von denen sich die Anwendung die Daten lädt.

Im Falle von Rosenbauer Connected Fleet müssen wir den meisten API-Aufrufen eine Organisations-ID mitgeben. Die haben wir natürlich nicht, weil wir ja keiner Organisation zugeordnet sind.

Aber was ist das? Der Endpunkt /api/fleet/v1/firehub/telematic hat keinen Parameter für die Organisations-ID.

Wir rufen diese Schnittstelle mit unserem erstellten Account auf und… bekommen Daten zurück. Einhundert Datensätze – worin sich unter anderem befinden:

  • Geodaten mit genauen Koordinaten (also Längen- und Breitengrad) des Trackers im Fahrzeug
  • die zugewiesene Organisation wie beispielsweise Betreiber von Flughäfen
  • das zugewiesene Fahrzeug
  • der Gerätetyp
    • relativ häufig von den Herstellern Aplicom oder Sitec – eine schnelle Suche verrät uns, dass sich es dabei um fest in den Fahrzeugen verbaute Geräte handelt
    • außerdem Drohnen und Fernbedienungen vom Drohnen-Weltmarktführer DJI
    • und eben die kleinen Stecker für die großen Einsatzfahrzeuge, wofür wir den Instagram-Post angezeigt bekommen haben und überhaupt erst neugierig wurden
  • ein Notizfeld
    • darin auch: wenig verständliche Daten – vermutlich Testdatensätze
[
  {
    "moduleGUID": "████████-████-████-████-████████",
    "imei": "████████████",
    "serialNumber": "████████",
    "type": "Sitec S7",
    "lat": 52.5326376,
    "lng": 13.284193,
    "tsLocationUpdated": "2023-07-25T06:34:09.000Z",
    "detectedFirmware": null,
    "detectedVehicleIdentifier": null,
    "imsi": "████████████",
    "notice": "████",
    "assignedVehicle": "L32 Berlin (B-2307)",
    "assignedOrganisation": "Berliner Feuerwehr"
  },
  ...
]

Und genau zu diesem Fahrzeug finden wir sogar Fotos im Internet.

💯 Immer genau einhundert?

Dabei fällt uns auf, dass wir genau einhundert Datensätze sehen, also die Informationen zu einhundert Trackern. Es ist eher unwahrscheinlich, dass die Software nur exakt 100 Tracker verwaltet. Dazu ist die Zahl viel zu genau und zwar klingt das schon nach vielen – aber alleine die Berliner Feuerwehr hat schon mehr als 1000 Fahrzeuge. Wir rechnen also damit, dass in der Software noch viel mehr Tracker verzeichnet sein müssten.

Gleichzeitig findet sich im Code der Single-Page-Application noch der Parameter ?q= für die telematic-Schnittstelle. Wenn man hier z.B. Ziffern von 00 bis 99 durchprobiert, gibt es jeweils andere Ergebnisse. Und hier wird es noch spannender.

In den Ergebnissen tauchen verschiedene Institutionen auf, beispielsweise

  • Feuerwehren

    • Magistrat der Stadt Wien MA 68 - Feuerwehr und Katastrophenschutz / Berufsfeuerwehr Wien (Österreich)
    • Berliner Feuerwehr
    • Landeshauptstadt Düsseldorf Feuerwehr und Rettungsdienst
    • Feuerwehr Aachen
    • Stadt Oberhausen Berufsfeuerwehr
    • Hansestadt Lübeck
    • Feuerwehr Karlsruhe Abt. Neureut
    • Gemeinde Stockelsdorf
    • Stadtfeuerwehr Imst (Österreich)
    • Romanian General Inspectorate for Emergency Situations
    • City of Los Angeles Supply Services (USA)
    • Surrey Fire & Rescue Service Headquarters
    • Staffordshire Fire & Rescue Service Headquarters
    • Tehran Fire Services (Iran)
  • Betriebsfeuerwehren

    • Henkel AG & Co.KGaA
    • Betriebsfeuerwehr Industriepark Schwechat GmbH
  • Flughafen-Feuerwehren

    • Flughafen Dresden GmbH 12
    • Flughafen Hannover-Langenhagen GmbH
    • Schiphol Group Nederland B.V. (Niederlande)
    • Glasgow International Airport (Schottland)
    • Leeds and Bradford International Airport (Vereinigtes Königreich)
    • Finavia Oyj (formerly Finnish Civil Aviation Administration, Finnland)
    • Hovedstadens Beredskab (Feuerwehr für Kopenhagen und umliegend, Dänemark)
    • Office National des Aéroports Aéroport Mohammed V – Nouasseur (Flughafen Casablanca, Marokko)
    • Aéroport de Bâle Mulhouse Service Comptabilité (Flughafen Basel Mulhouse Freiburg, Frankreich)
    • Avinor Alta Airport (Norwegen)
    • Gibraltar International Airport Fire and Rescue Service
  • Militär

    • Armasuisse (Schweizer Militär)
    • Bundesamt für Ausrüstung, Informationstechnik und Nutzung der Bundeswehr
    • Latvian National Armed Forces Aviation base

Mindestens 356 Organisationen tauchen in den Daten auf – mit insgesamt mehr als 4300 Fahrzeugen. 🤯

Langsam wird es wirklich unheimlich. Um herauszufinden, welche Institutionen weltweit von dem Problem betroffen sein könnten, schauen wir uns die Koordinaten aus den Datensätzen auf einer Karte an. Dabei zeigt sich: Im Trackerverzeichnis finden sich nicht nur Feuerwehren in ganz Europa, sondern in der ganzen Welt. Außerhalb Deutschlands meist auf Flughäfen. Außerdem scheint die Firma auch Kunden im Iran zu haben – trotz der politischen Situation dort.

💔

Mittlerweile ist es nachmittags, der Puls des kleinen zerforschis ist ziemlich hoch, das Herz klopft: So viele Organisationen sind betroffen – europa- und sogar weltweit. Panik macht sich breit: Das sollte so nicht sein! Deshalb öffnet das zerforschi das Textprogramm, schreibt alle Funde umfassend in einem Bericht auf – inklusive einer technischen Problembeschreibung und sucht nach dem Kontakt zur IT-Sicherheitsbeauftragen auf der Website. Nur um traurig festzustellen: Auch Rosenbauer als weltweit tätiges, führendes Unternehmen in einem durchaus sicherheitsrelevanten Bereich hat weder eine security.txt1, noch nennen sie eine Ansprechpartnerin dafür irgendwo auf der Kontaktseite. Enttäuscht wirft das zerforschi noch einmal einen vorsichtigen Blick in LinkedIn - aber auch dort: wohl niemand für Sicherheit zuständig.

Desillusioniert schickt das zerforschi also den Report an das österreichische CERT2, das deutsche CERT beim BSI und die zentrale office@-Mailadresse von Rosenbauer - und fragt sogar einen Tag später nochmal telefonisch nach, ob der Report denn angekommen wäre. »Ja, ja«, versichert man uns, es wurde »zum Kollegen weitergeleitet. Die Durchwahl oder Mailadresse darf ich ihnen aber nicht geben«, bekommen wir als Antwort. Hm.

Fazit

Weil wir von der Firma Rosenbauer trotz schriftlicher Bitte und telefonischer Nachfrage keine Antwort auf unseren Bericht bekommen haben, zweifeln wir auch stark an, dass sie allen betroffenen Kunden Bescheid geben. Dass unser Report angekommen sein muss, haben wir erst auf Nachfrage von den Journalist*innen erfahren, mit denen wir den Fund geteilt haben. Auch ob die Lücke bereits geschlossen ist, hat uns Rosenbauer nicht selbst mitgeteilt - zumindest unseren Fund konnten wir nun nicht mehr reproduzieren.

Diese Form der Nicht-Kommunikation mit Menschen, die eine Sicherheitslücke melden, passiert uns wirklich selten. Insbesondere für ein Unternehmen dieser Größe ist diese Art echt überraschend und wirklich nicht angebracht (aber das wäre sie nie!).

Ob Rosenbauer ihren vielen Kunden auch so schlecht kommuniziert, dass die Daten ihrer Tracker offen im Netz rumlagen?

📰

Wir haben diesen Fund gemeinsam mit Muzayen, Hakan und Hannes veröffentlicht. Ihre Artikel findet ihr beim Spiegel (💶), bei derStandard und beim ZDF.

Das Finden der Sicherheitslücke hat zwar nicht lange gedauert, das Aufschreiben, Melden und Veröffentlichen aber um so länger. Außerdem ist das Gefühl, panisch in eine schweigende Mailbox zu schrei(b)en auch wenig spaßig. Wir würden in unserer Freizeit gerne auch schönere Dinge tun. Wenn ihr uns unterstützen wollt, findet ihr hier Möglichkeiten: https://zerforschung.org/unterstuetzen/. Danke!

  1. Was eine security.txt ist und warum das für IT-Sicherheitsforschende wie uns so wichtig ist, haben wir auch ausführlich hier erklärt. Oder Kurzfassung hier↩︎

  2. Computer Emergency Response Team - das sind IT-Sicherheitsfachleute, die bei der Lösung von konkreten Problemfällen unterstützen, sich aber auch allgemein mit dem Thema beschäftigen, also auch über Sicherheitslücken und Lösungsansätze informieren ↩︎