Wie eine Sicherheitslücke bei „Schutzranzen“ gefunden und geschlossen wurde

Im Januar 2018 haben Sicherheitsforscher der Uni Hamburg eine Sicherheitslücke in der „Schutzranzen“-App und einem von der App genutzen Server gefunden. Im März teilte „Schutzranzen“-Hersteller Coodriver mit, dass die Lücke geschlossen wurde. Wir berichten über technische Details.
Grid imageTheDigitalWay / pixabay.com

Am 23. Januar 2018 haben wir einen Artikel zu Tracking von „Schutzranzen“ veröffentlicht.
Dies haben Sicherheitsforscher der Uni Hamburg zum Anlass genommen, sich die Schutzranzen-App der Coodriver GmbH einmal näher anzuschauen.
Nach kurzer Suche sind die Forscher auf eine API (Programmierschnittstelle im Internet) gestoßen, über die sie unter anderem IMEIs (eindeutige Handy-Kennung), Telefonnummern oder Zeitstempel der letzten bekannten Positionen abrufen konnten.
Laut Coodriver GmbH war der ausgenutzte API-Endpunkt (ein Internet-Server) nur zu Testzwecken aktiv.

Details

Zuerst haben die Forscher mit Packet Capture den Datenverkehr der Schutzranzen-App mitgeschnitten.
Dadurch haben sie die URL einer API und dazugehörige HTTP-Basic-Auth-Zugangsdaten erfahren.

Anschließend haben sie die Installationsdatei (APK) mit apktool entpackt und nach Schlagwörtern wie http oder api gesucht.
So kamen sie an 14 verschiedene Funktionen, die die API über HTTP GET oder PUT zur Verfügung stellte.

Eine dieser Funktionen lieferte eine Liste aller registrierten Tracker (d.h. hier: Schutzranzen-Geräte und Schutzranzen-Kinder-Apps): curl 'https://{HTTP-Basic-Auth-Zugangsdaten}@{URL der API}/.../trackers'.
Die Liste enthielt für jeden Tracker die IMEI, die Telefonnummer, einen Namen ("... Test ..."), den Zeitstempel des letzten Positionsupdates und den Zeitstempel der letzten Aktivität, den Batteriestatus (niedrig oder nicht), sowie eine Flag, ob der Tracker Eltern akzeptiert.

Für Sektoren sectors?latitude=%.6f&longitude=%.6f&radius=%d konnte abgefragt werden, welche Tracker in diesem Sektor befinden. 
Durch einen sehr großen Radius, etwa radius=900000000, konnte man Daten zu fast 100 Trackern abrufen.

   {
      "id":"",
      "phone":"",
      "name":"Test Internal 7",
      "lastSeen":1515187629000,
      "lastPositionUpdate":1515187634000,
      "visible":false,
      "acceptingParents":true,
      "batteryLow":false
   },


Mit den IMEIs der Tracker und über eine andere Funktion der API konnten die Eltern, die einem Tracker zugeordnet waren, abgerufen werden. Die Antwort der API enthielt mehrere IDs und einen Namen.

   {
      "tracking":true,
      "name":"Papa",
      "server":"",
      "slot":"UNKNOWN",
      "primaryId":5,
      "appId":"12345-1234-1234-1234-12345678"
   },

 


Hier gibt es eine Stellungnahme von Coodriver zur gefundenen Lücke.

 

 

Unterstützen Sie die gute Sache: Freiheit, Grundrechte und Demokratie.

Viele Menschen engagieren sich bei uns in ihrer Freizeit, seien auch Sie dabei!

Bleiben Sie auf dem Laufenden über unsere Arbeit und unsere Themen.

Disclosure Timeline

  • 22.01.2018 
    • Telefonat mit Coodriver
    • Technische Details der Lücke per E-Mail an Coodriver gesendet
    • Nachfrage per E-Mail von Coodriver zu weiteren Details
    • Telefonat mit Coodriver zu weiteren Details
  • 23.01.2018
  • 06.02.2018 
    • Nachfrage, ob Lücke geschlossen wurde, da für Ende Januar eine neue Version angekündigt worden war
    •  Coodriver teilt mit, dass die neue Version voraussichtlich Ende Februar erscheinen wird
  • 22.02.2018 
    • Nachfrage, ob die Lücke geschlossen wurde, da die API-Zugangsdaten nicht mehr funktionieren
    • Coodriver teilt mit, dass die Lücke noch nicht dauerhaft geschlossen wurde
  • 05.03.2018 
  • 06.03.2018
    • Coodriver teilt mit, dass die Lücke geschlossen wurde und die Ortungsfunktion entfernt worden sei