Gesundheits-App: Alarm Medikamenten-Einnahme – Tschüss Privatsphäre

Im Rahmen des Projekts »Datensendeverhalten: Analyse von Gesundheits-Apps« habe ich die App Alarm Medikamenten-Einnahme (Version 8.69.08454) einem Kurzcheck unterzogen. Die App soll Menschen bei der pünktlichen Einnahme ihrer Medikamente und deren Dosierung helfen. Angeboten wird die App vom Anbieter Medisafe Project LTD. mit Sitz in London und Haifa, Israel. Beginnen wir mit den Netzwerkverbindungen, die Alarm Medikamenten-Einnahme während der Nutzung aufbaut.

App-Start: Unmittelbar nach dem Start (keine Interaktion des Nutzers)

[1] Unmittelbar nach dem Start der App kontaktiert die App Facebook. Unter anderem werden folgende Informationen übermittelt [graph.facebook.com]:

  • Google-Advertising-ID: advertiser_id = c3639f11-626a-4692-9574-6a0f632e1ea3
  • Ob Ad-Tracking aktiviert / erlaubt ist: advertiser_tracking_enabled = true
  • Ein Identifier: anon_id = XZce953baa-18a8-42e0-82ad-2d1b3866fe63
  • Ob das App-Tracking aktiviert / erlaubt ist: application_tracking_enabled = true
  • Weitere Informationen:
    • Paketname der App: com.medisafe.android.client
    • Versionsnummer der App: 8.69.08454
    • Android-Versionsnummer: 9
    • Gerätemodell: Mi A1
    • Länderkennung: de_DE
    • Zeitzone: MESZ, Europe/Berlin
    • Displayauflösung: 1080×1920
    • Mobilfunkanbieter: Unitymedia

Wie bedenklich die Einbindung von Facebook-Bausteinen (SDK) hinsichtlich der Privatsphäre sind, scheint noch immer nicht an die App-Entwickler durchgedrungen zu sein – einfach unverantwortlich. Allein die Übermittlung der Google-Advertising-ID genügt im Grunde genommen, dass Facebook nun eine Verknüpfung zwischen Facebook-Nutzer und den übermittelten Daten herstellen kann. Der Grund: Auch die Facebook-App (sofern installiert) liest die Google-Advertising-ID aus. Damit hat Facebook anschließend einen Identifier, den sie einer Person exakt zuordnen können.

Mit dem Server »graph.facebook.com« kommuniziert die App im Verlauf der App-Nutzung übrigens regelmäßig – auch wenn man überhaupt kein Facebook-Konto hat. Facebook erfährt also unter anderem in welcher View (Ansicht in der App) sich der Nutzer gerade befindet.

[2] Zur Analyse von Abstürzen hat Alarm Medikamenten-Einnahme Bugsnag (Sitz San Francisco, USA | England) integriert [sessions.bugsnag.com]:

POST / HTTP/1.1
Content-Type: application/json
Bugsnag-Payload-Version: 1.0
Bugsnag-Sent-At: 2019-10-17T07:13:30Z
Bugsnag-Api-Key: 09f2dd209079c7a4459e061736fcd070
User-Agent: Dalvik/2.1.0 (Linux; U; Android 9; Mi A1 Build/PQ3A.190801.002)
Host: sessions.bugsnag.com
Connection: close
Accept-Encoding: gzip, deflate
Content-Length: 700

{"notifier":{"name":"Android Bugsnag Notifier","version":"4.5.0","url":"https://bugsnag.com"},"app":{"type":"android","releaseStage":"production","version":"8.69.08454","versionCode":8454,"id":"com.medisafe.android.client","duration":842,"durationInForeground":262,"inForeground":true,"name":"Medisafe","packageName":"com.medisafe.android.client","versionName":"8.69.08454","activeScreen":"SplashActivity","memoryUsage":28677256,"lowMemory":false},"device":{"manufacturer":"Xiaomi","model":"Mi A1","jailbroken":false,"osName":"android","osVersion":"9"},"sessions":[{"id":"14f12dfb-c45e-4f3a-8953-153a0f3e0ef6","startedAt":"2019-10-17T07:13:30Z","user":{"id":"34011a9e-1e4b-4a72-9921-7edb0213f021"}}]}

Schauen wir uns das mal etwas näher an:

  • Versionsnummer der App: 8.69.08454
  • Package-Name der App: com.medisafe.android.client
  • Ob aktuell im Vordergrund bzw. Benutzung: true
  • Aktuelle Ansicht: SplashActivity
  • RAM-Verbrauch: 28677256
  • Zustand des RAM-Verbrauch: false
  • Gerätehersteller: Xiaomi
  • Modell: Mi A1
  • Gerootet: false (nicht korrekt)
  • Android-Version: 9
  • ID zur Identifikation: 34011a9e-1e4b-4a72-9921-7edb0213f021

[3] Ein Tracker von Apptimize mit Firmensitz San Francisco, USA ist ebenfalls vertreten und sammelt Daten [md-*.apptimize.com]:

GET /api/metadata/v4/Da86kz2ehkGdeeEWDisGQUBpwVkpTaw?rid=882244035 HTTP/1.1
User-Agent: Android/28 Apptimize/2.13.10
X-App-Key: Da86kz2ehkGdeeEWDisGQUBpwVkpTaw
Connection: close
Content-Type: application/json; charset=UTF-8
Host: md-a-c.apptimize.com
Accept-Encoding: gzip, deflate

Leider können wir die Daten nicht einsehen, da Apptimize eine zusätzliche Verschlüsselung darüber legt.

[4] Nachdem die ganzen Tracker mit Daten versorgt wurden, baut die App auch eine Verbindung mit den Alarm Medikamenten-Einnahme-Servern auf [api.medisafeproject.com]:

GET /api/v3/country/properties HTTP/1.1
User-Agent: Medisafe/08454 (Android 9)
X-Operation-Execution-Timestamp: 1571297714726
Host: api.medisafeproject.com
Connection: close
Accept-Encoding: gzip, deflate

Die Antwort des Servers ist relativ interessant:

HTTP/1.1 200 OK
Date: Thu, 17 Oct 2019 07:35:18 GMT
Content-Type: application/json;charset=UTF-8
Connection: close
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Server: Server
Content-Length: 77

{"euConsent":true,"supportPfizer":false,"supportTakeda":false,"country":"DE"}

Es wird festgestellt, dass die App-Anfrage aus Deutschland stammt. Aber auch zwei andere Parameter werden übermittelt:

  • euConsent: true – Vermutlich geht es hier um die DSGVO bzw. das eine Einwilligung vorliegt
  • supportPfizer: false – Das Pharmaunternehmen Pfizer hat auch einen Parameter spendiert bekommen. Fraglich, um was es sich hierbei handelt.

Registrierung: Anmeldung via E-Mail-Adresse

Der Startbildschirm von Alarm Medikamenten-Einnahme bietet zwei unterschiedliche Möglichkeiten:

  • Legen Sie Los
  • Anmeldung über ein bereits bestehendes Konto

Ich wähle LEGEN SIE LOS.  Die Auswahl löst eine Datenübermittlung an Alarm Medikamenten-Einnahme aus [api.medisafeproject.com]:

POST /api/v3/user HTTP/1.1
Request-Id: 1
X-Operation-Execution-Timestamp: 1571298232000
User-Agent: Medisafe/08454 (Android 9)
Installation-Id: b50a933a-14d7-4eff-9dfc-27cfdeb983a9
Content-Type: application/json; charset=UTF-8
Content-Length: 510
Host: api.medisafeproject.com
Connection: close
Accept-Encoding: gzip, deflate

{"account":"87cc0436-2576-466f-b2c2-0d9a4f6d9948","advertiseId":null,"appVersion":"8.69.08454","avatar":"default_avatar","birthDate":null,"city":null,"country":null,"created":1571298231,"debug":false,"fname":"","gender":0,"installationId":"b50a933a-14d7-4eff-9dfc-27cfdeb983a9","lang":"de","lname":"","model":"Mi A1","os":"android","password":"Aa122569514-394d-4d59-82da-926a0b2c8f47","phone":null,"registrationIP":null,"themeColor":"blue","timeZone":"Europe/Berlin","version":"9","watch":false,"zipCode":null}

Auch die beiden Tracker Apptimize und Facebook werden mit Daten beliefert. Bei Apptimize sind diese leider nicht einsehbar – Facebook erfährt unter anderem in welcher Ansicht (OnBoardingActivity) ich mich befinde bzw. dass ich mich für eine Anmeldung entschieden haben. Auch Daten wie die Google-Advertising-ID etc. werden bei jeder Übertragung an Facebook mit übermittelt.

Anschließend erscheint ein weiterer Button mit der Aufschrift FÜGEN SIE IHR MEDIKAMENT HINZU. Unten am Displayrand erscheint dann noch im Kleingedruckten der Hinweis:

Wenn Sie fortfahren, stimmen Sie unseren Nutzungsbedingungen zu und bestätigen, dass Sie unsere Datenschutzbestimmungen gelesen haben

Anmerkung: Schon bevor die Datenschutzbestimmungen »gelesen« wurden bzw. eine Einwilligung stattfand, wurden diverse Daten an Drittanbieter wie Facebook übermittelt – und zwar auch solche, die es ermöglichen, einen Personenbezug herzustellen.

Ich möchte an dieser Stelle nicht einwilligen und Tippe auf den Zurück-Button meines Android-Geräts. Das führt allerdings zu einem logischen Fehler und ich befinde mich in der Datumsansicht der App. Gleichzeitig werden im Hintergrund die Trackerdienste von Facebook, Bugsnag und Apptimize mit Daten beliefert. Facebook und auch Bugsnag wissen stets, in welcher Ansicht (bspw. AddFirstMedActivity) sich ein Nutzer gerade befindet.

Nutzung der App

Obwohl ich nicht in die Datenschutzbestimmungen eingewilligt habe (Back-Button) befinde ich mich nun in der Hauptansicht der App. Am unteren Bildschirmrand ist der Button Medikament hinzufügen sichtbar, den ich selektiere. Die Eingabe des Medikaments wird an Alarm Medikamenten-Einnahme übermittelt und ich bekomme eine Auswahl an möglichen Treffern präsentiert. Meine Med-Info wird zusammen mit einer Erinnerungszeit zur Einnahme (8 Uhr) und dem Tag übermittelt [api.medisafeproject.com]:

POST /api/v3/user/11198085/group HTTP/1.1
Request-Id: 5
X-Operation-Execution-Timestamp: 1571299240000
User-Agent: Medisafe/08454 (Android 9)
Installation-Id: b50a933a-14d7-4eff-9dfc-27cfdeb983a9
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJNZWRpc2FmZSIsInN1YiI6IjExMTk4MDg1IiwiYXVkIjoiYjUwYTkzM2EtMTRkNy00ZWZmLTlkZmMtMjdjZmRlYjk4M2E5IiwiaWF0IjoxNTcxMjk5MjQyLCJ0b2tlbl90eXBlIjoiYWNjZXNzIiwidXNlcl9pZCI6MTExOTgwODUsImV4cCI6MTU3MTMwMDE0Mn0.afzLI7Tr8foHOQ8OYyU2G_Ei4sjg66tZ3KZ45vP81N3jdG0hCnAMHiRO3QHn9zPSAsN4j5m40e3kiIgQiQm92SQMYjSbktfX19vzMPvgYKBNXAV7xZr-6bvkSzfaGdZd2yhGuhLJC61fKaRYBtL2WutIhes1xvEZt3NrDqH8l7xla0zh71G_YIGGPHnqMM5q6_oSqfmBTX_VN6WRwwBiUE-7CDWA7jvgFz7-5c3vZriUbVBBR3ueIxRvu55An0he-e-yCiniX77WTaM--eWlBw7-MaRHxVIlKFkkwC2UJ3N3E2VBX0UF2RVA1ajFfGM024WrBlN9gy6jBgvkrrM7Zw
Content-Type: application/json; charset=UTF-8
Content-Length: 658
Host: api.medisafeproject.com
Connection: close
Accept-Encoding: gzip, deflate

{"clientEntityVersion":1571299230187,"consumptionHoursString":"8.0","continues":true,"created":1571299229,"dayConsumption":0,"days":"127","daysToTake":30,"dosageValue":"1.00","everyXDays":"1","groupClientId":1,"groupUuid":"d5b85aba-91e3-4700-b8d9-70ede12e6a89","id":0,"internal":false,"medicine":{"color":"white","commercialName":"Aspirin","id":0,"shape":"suppository","strengthUnit":"mg","strengthValue":"60.0","extId":"elsevier:28723-1","hasLeaflet":true},"reminderNumber":1.0,"reminderType":0,"scheduled":true,"startDate":1571277600,"status":1,"timeZone":"Europe/Berlin","type":4,"userId":11198085,"editedByUser":false,"reminderIntervalFirstHour":"08:00"}

An dieser Stelle wirft sich die Frage auf, weshalb diese Information an den App-Anbieter übermittelt werden. Eine lokale Erinnerung bzw. Speicherung dieser Informationen würde im Grunde ausreichen.

Auch das Hinzufügen weitere Informationen wie eines Arztes wird an den App-Anbieter übermittelt:

POST /api/v3/user/11198085/doctor HTTP/1.1
Request-Id: 9
X-Operation-Execution-Timestamp: 1571299520000
User-Agent: Medisafe/08454 (Android 9)
Installation-Id: b50a933a-14d7-4eff-9dfc-27cfdeb983a9
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJNZWRpc2FmZSIsInN1YiI6IjExMTk4MDg1IiwiYXVkIjoiYjUwYTkzM2EtMTRkNy00ZWZmLTlkZmMtMjdjZmRlYjk4M2E5IiwiaWF0IjoxNTcxMjk5MjQyLCJ0b2tlbl90eXBlIjoiYWNjZXNzIiwidXNlcl9pZCI6MTExOTgwODUsImV4cCI6MTU3MTMwMDE0Mn0.afzLI7Tr8foHOQ8OYyU2G_Ei4sjg66tZ3KZ45vP81N3jdG0hCnAMHiRO3QHn9zPSAsN4j5m40e3kiIgQiQm92SQMYjSbktfX19vzMPvgYKBNXAV7xZr-6bvkSzfaGdZd2yhGuhLJC61fKaRYBtL2WutIhes1xvEZt3NrDqH8l7xla0zh71G_YIGGPHnqMM5q6_oSqfmBTX_VN6WRwwBiUE-7CDWA7jvgFz7-5c3vZriUbVBBR3ueIxRvu55An0he-e-yCiniX77WTaM--eWlBw7-MaRHxVIlKFkkwC2UJ3N3E2VBX0UF2RVA1ajFfGM024WrBlN9gy6jBgvkrrM7Zw
Content-Type: application/json; charset=UTF-8
Content-Length: 281
Host: api.medisafeproject.com
Connection: close
Accept-Encoding: gzip, deflate

{"active":true,"address":"","avatar":"man_doctor","clientEntityVersion":1571299520676,"email":"fuchs@test.de","firstName":"Dr.","id":"98325312-44f6-4c20-ab05-1767d0fe7520","lastName":"Fuchs","phone1":"666","phone1Type":"Mobile","speciality":"Allgemeinmedizin","userGenerated":false}
  • Name des Arztes: Dr. Fuchs
  • Fachgebiet: Allgemeinmedizin
  • Telefonnummer: 666
  • E-Mail-Adresse: fuchs@test.de

Innerhalb der App entscheide ich mich dann für die Registrierung eines Kontos per E-Mail-Adresse – doch zuvor gebe ich ein paar personenbezogene Daten an, die übermittelt werden:

PUT /api/v3/user/11198085 HTTP/1.1
User-Agent: Medisafe/08454 (Android 9)
Installation-Id: b50a933a-14d7-4eff-9dfc-27cfdeb983a9
X-Operation-Execution-Timestamp: 1571299732765
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJNZWRpc2FmZSIsInN1YiI6IjExMTk4MDg1IiwiYXVkIjoiYjUwYTkzM2EtMTRkNy00ZWZmLTlkZmMtMjdjZmRlYjk4M2E5IiwiaWF0IjoxNTcxMjk5MjQyLCJ0b2tlbl90eXBlIjoiYWNjZXNzIiwidXNlcl9pZCI6MTExOTgwODUsImV4cCI6MTU3MTMwMDE0Mn0.afzLI7Tr8foHOQ8OYyU2G_Ei4sjg66tZ3KZ45vP81N3jdG0hCnAMHiRO3QHn9zPSAsN4j5m40e3kiIgQiQm92SQMYjSbktfX19vzMPvgYKBNXAV7xZr-6bvkSzfaGdZd2yhGuhLJC61fKaRYBtL2WutIhes1xvEZt3NrDqH8l7xla0zh71G_YIGGPHnqMM5q6_oSqfmBTX_VN6WRwwBiUE-7CDWA7jvgFz7-5c3vZriUbVBBR3ueIxRvu55An0he-e-yCiniX77WTaM--eWlBw7-MaRHxVIlKFkkwC2UJ3N3E2VBX0UF2RVA1ajFfGM024WrBlN9gy6jBgvkrrM7Zw
Content-Type: application/json; charset=UTF-8
Content-Length: 535
Host: api.medisafeproject.com
Connection: close
Accept-Encoding: gzip, deflate

{"account":null,"advertiseId":null,"appVersion":"8.69.08454","appbrand":"BASIC","avatar":"man","birthDate":"20001015","city":null,"country":null,"emailConsent":null,"facebookId":null,"fname":"Max","gender":2,"hasInfectingApp":false,"lang":"de","lname":"Mustermann","model":"Mi A1","notificationStatus":null,"os":"android","password":null,"phone":"","phoneConsent":null,"registrationIP":null,"safetyNetJoinedDate":-1,"themeColor":"blue","timeZone":"Europe/Berlin","version":"9","watch":false,"weight":0,"weightType":0,"zipCode":"76287"}
  • Geburtstag: 15. Oktober 2000
  • Vorname: Max
  • Nachname: Mustermann
  • Postleitzahl: 76287

Die Registierung muss ich per E-Mail bestätigen – dass weiß nun auch Facebook  und Bugsnag (PendingEmailConfirmationActivity).

Kurzcheck der Datenschutzerklärung

Die Datenschutzerklärung beginnt mal wieder – und wie sollte es auch anders sein – mit einem vollmundigen Versprechen:

Wir respektieren Ihre Privatsphäre und Ihre persönlichen Daten und wissen, dass der Erfolg unserer Dienstleistungen von dem Vertrauen abhängt, das Sie in die Art und Weise haben, wie wir mit Ihren persönlichen Daten umgehen. Indem Sie uns Ihre Daten anvertrauen, möchten wir Ihnen versichern, dass wir uns verpflichten, diese Daten vertraulich zu behandeln.

Da bin ich anderer Meinung. Der Einbau von Tracking-Anbietern, insbesondere Facebook, ist aus Datenschutzperspektive eine Bankrotterklärung und hat mit dem Respekt vor dem Patienten bzw. seiner Privatsphäre wenig zu tun.

Über die Integration von Facebook, Bugsnag und Apptimize erfährt der Nutzer: Nichts. Es heißt nur sehr vage:

Wir geben Ihre personenbezogenen Daten gegebenenfalls an unsere Auftragnehmer oder Berater weiter, einschließlich Anbieter und Lieferanten, die uns Entwicklungsdienste, Technologien (wie Google Analytics), Dienste oder Inhalte für den Betrieb, die Entwicklung und Wartung unseres Dienstes oder Daten und Analysen zur Nutzung des Dienstes zur Verfügung stellen, die zur Vertraulichkeit verpflichtet sind, vorausgesetzt, dass wir personenbezogene Daten nur in dem erforderlichen Umfang an solche Auftragnehmer oder Berater weitergeben.

Nutzer der Alarm Medikamenten-Einnahme sollten ebenfalls wissen:

Forschungspartner – Wir können Ihre persönlichen Daten an Dritte, wie Forschungsinstitute, Gesundheitssysteme und Gesundheitsdienstleister weitergeben, die sie mit anderen Informationen, die sie über Sie haben, zu Forschungszwecken und zur Verbesserung unserer Dienstleistungen in Verbindung bringen.

Fazit

Gesundheits-Daten wurden bei der Analyse des Datensendeverhaltens nicht übermittelt – jedenfalls nicht an Drittanbieter und soweit ich das einsehen konnte. Und dennoch halte ich die App aus Datenschutzperspektive für nicht empfehlenswert.

Wer im Umfeld von Gesundheits-Apps noch immer Facebook-Tracker und Co. integriert, der hat offenbar noch immer nicht verstanden, dass der respektvolle und sensible Umgang mit Gesundheits-Daten an erster Stelle stehen sollte – noch bevor der Nutzer seine Einwilligung erteilt hat, werden Daten an Tracking-Dienste übermittelt. Also selbst wenn der Nutzer seine Zustimmung verweigert sind bereits Daten an Facebook und Co. abgeflossen.

Letztendlich ist das Versprechen

Wir respektieren Ihre Privatsphäre und Ihre persönlichen Daten

damit im Grunde genommen ein Witz.

Hilf mit die Spendenziele zu erreichen! Mitmachen ➡