Logger und Tracker der Threema-App

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.800 Mitglieder helfen dir weiter. > Frage stellen <
  • Habe vor einiger Zeit - und jetzt wieder - mithilfe von Warden (Link: https://gitlab.com/AuroraOSS/AppWarden/-/releases ) die aktuelle Android-App von Threema (auf Google Play) gescannt.

    Es gibt 1 Tracker und 1 Logger, die jeweils von Warden gefunden wurden.

    Der Tracker (mapbox) wurde schon einmal hier diskutiert und sollte - falls die Informationen noch aktuell sind - weitgehend nicht mehr in der Lage sein, die Nutzer auszuspionieren ... oder zumindest Daten an fremde Personen / Dritte weiterzuleiten.

    Link: RE: Berichte über andere Messenger

    Exodus Privacy listet leider das Mapbox SDK als Tracker auf. Mapbox ist die Programmbibliothek, die wir für die Anzeige von (selbst gehosteten) OpenStreetMap-Karten verwenden, damit keine Informationen an Google Maps gesendet werden (zum Beispiel die Location bei einem POI-Query).

    Der Grund, warum Mapbox aufgelistet wird, ist, dass das SDK standardmässig Telemetrie aktiviert. Diese Telemetrie-Funktionalität wird jedoch selbstverständlich von Threema explizit deaktiviert: https://github.com/threema-ch/…pplication.java#L974-L979

    Exodus kann das jedoch nicht erkennen, weil es nur auf Basis von Code-Signaturen arbeitet. Sehr unglücklick, lässt sich aber leider nicht vermeiden.

    Scheint sich auf Threema Work zu beziehen, denn mit Exodus (Link: https://reports.exodus-privacy.eu.org/de/ ) kann man nur Apps scannen, die entweder dauerhaft oder vorübergehend gratis sind.

    Was mich allerdings wundert, warum man Mapbox SDK noch benötigt, wenn im Changelog Version 4.64 für Android folgendes steht:

    • Wechsel von Mapbox zum MapLibre-Projekt für die Darstellung von Karten

    Mich würde insbesondere interessieren, ob und wofür man den Logger "slf4j-timber" (Link: https://github.com/arcao/slf4j-timber ) benötigt ...

    Welche Funktionen würden mit Threema schlechter / eingeschränkt funktionieren, wenn man auf Logger (UND Tracker) gänzlich verzichten würde?

    Wenn es keinen Einfluss auf vorhandende und neue Funktionen hat, könnten ... oder besser ausgedrückt ... sollten die Entwickler mit den nächsten Updates die Logger und Tracker dann vollständig entfernen?

    Einmal editiert, zuletzt von ecosviszero (8. April 2022 um 18:40) aus folgendem Grund: Tippfehler korregiert

  • Mapbox ist eine Bibliothek, um 3D-Vektor-Karten per OpenGL au dem Handy darzustellen. Dabei kann man die Server der Firma Mapbox verwenden, um Kartendaten zu beziehen oder man kann einen eigenen Kartenserver benutzen. Wenn man den Server von Mapbox verwendet, gehen Nutzungsdaten zu dieser Firma. Genauso wie wenn bei Verwendung von Google Maps in der App (so wie bei Signal) Daten zu Google gehen. Letzteres fällt weniger auf, weil das über die Google Play Dienste läuft, die von App Warden offenbar nicht als Tracker gemeldet werden.

    Threema verwendet aber seit jeher einen eigenen Server für die Kartendaten und die Orte von Interesse (POI), damit eben keine Daten zu einer Drittfirma gehen.

    MapLibre ist ein Fork der Mapbox-Bibliothek, bei dem die (von Threema sowieso nie genutzten) Mapbox-spezifischen Teile entfernt wurden. Der Einfachheit halber und um den Entwicklern den Wechsel zu vereinfachen, haben die MapLibre-Leute den Package Name "mapbox" einfach belassen.

    AppWarden ist offenbar zu doof, um diese Unterschiede zu erkennen. Die sehen "mapbox" und schlagen Alarm.

    Zusammenfassend: Einen Tracker gab's bei Threema noch nie. AppWarden generiert ein False Positive.

  • Das MapBox SDK wird noch importiert, aber es wird nicht mehr verwendet: https://github.com/threema-ch/thr…tion.java#L1066

    Nope. Lass dich nicht durch Namen täuschen ;)

    Was zählt ist das hier:

    threema-android/build.gradle at 065fc5736dff8aa9ad24d75f2cf0619317248148 · threema-ch/threema-android
    Threema App for Android. Contribute to threema-ch/threema-android development by creating an account on GitHub.
    github.com
  • Claus Danke für deine Erklärungen.

    Nur noch eine Frage zum Logger: Benötigt man wirklich unbedingt einen eingebauten (fremden) Logger? Kann dieser auch ungewollt Daten an Dritte weiterleiten oder dient der wirklich nur zur freiwilligen Übermittlung von Problemberichten?

    Kann Threema nicht komplett ohne Logger auskommen?

  • Nur noch eine Frage zum Logger: Benötigt man wirklich unbedingt einen eingebauten (fremden) Logger? Kann dieser auch ungewollt Daten an Dritte weiterleiten oder dient der wirklich nur zur freiwilligen Übermittlung von Problemberichten?

    Logging ist nichts Böses, es gehört zu einer Software dazu. Es dient dazu, Fehlerbedingungen oder Zustände aufzuzeichnen, damit man Fehler finden und beheben kann.

    Threema hat keinen "fremden" Logger eingebaut, sondern benutzt einfach eine Bibliothek, die eine Abstraktion für verschiedene Logging-Backends zur Verfügung stellt. Je nach Build-Typ der App (Debug-Version, Release-Version) werden die Logs ins Systemlog geschrieben oder nicht. Wenn jemand Logging in den Threema-Einstellungen aktiviert hat, wird in eine Datei geschrieben, die man auf Wunsch per Threema an der Support versenden kann. Wenn ausgeschaltet, wird bei einer Release-Version gar nichts geloggt.

    Kann Threema nicht komplett ohne Logger auskommen?

    Nein. Ohne Logging wäre die Fehlersuche praktisch unmöglich, sowohl bei der Entwicklung als auch später auf den >10.000 verschiedenen Handymodellen mit ihren vielen Problemchen. Ganz abgesehen davon, dass jede moderne Programmiersprache einen Logger von Haus aus eingebaut hat. So gesehen hat jede App einen Logger.

    Sorgen würde ich mir machen, wenn eine App Crashlytics oder Google Analytics eingebaut hätte. Dann gehen Daten nämlich ungefragt zu Google. Eine Bibliothek wie slf4j ist für sich alleine jedoch völlig unschädlich.

  • Ohne Logging wäre die Fehlersuche praktisch unmöglich, sowohl bei der Entwicklung als auch später auf den >10.000 verschiedenen Handymodellen mit ihren vielen Problemchen

    Überträgt Threema bzw. das Logging eigentlich auch sensible Daten (wie z.B. die Threema-ID, Nachrichteninhalte, Metadaten, etc.) bzw. wie wird verhindert, dass diese übetragen werden (kann man vielleicht aus dem Sourcecode herauslesen, wenn man sich auskennt...)?

    Ganz abgesehen davon, dass jede moderne Programmiersprache einen Logger von Haus aus eingebaut hat. So gesehen hat jede App einen Logger

    Also haben auch Apps die bei Warden 0 Logger anzeigen, wie z.B. derzeit TextMaker (und unabhängig davon 0 Tracker) bereits Logger eingebaut?

    Können eigentlich auch 0 Logger aufgrund der Programmiersprache sogar noch mehr Infos/Logs bereitstellen als z.B. eine App mit 3 Logger?

  • Überträgt Threema bzw. das Logging eigentlich auch sensible Daten (wie z.B. die Threema-ID, Nachrichteninhalte, Metadaten, etc.) bzw. wie wird verhindert, dass diese übetragen werden (kann man vielleicht aus dem Sourcecode herauslesen, wenn man sich auskennt...)?

    Also haben auch Apps die bei Warden 0 Logger anzeigen, wie z.B. derzeit TextMaker (und unabhängig davon 0 Tracker) bereits Logger eingebaut?

    Können eigentlich auch 0 Logger aufgrund der Programmiersprache sogar noch mehr Infos/Logs bereitstellen als z.B. eine App mit 3 Logger?

    Ich hab's ja vorher erklärt: Es wird gar nix übertragen, ausser du schaltest das Logging explizit ein und schickst das Logfile an den Threema-Support. Im Logfile sind keine für Dritte lesbare Nachrichteninhalte, wenn du das meinst.

    Dieser Warden schaut wohl einfach nach der Signatur von slf4j. Was die App genau damit macht, weiss er nicht.

    Eine Messaging-App könnte z.B. regelmäßig eine Kopie unverschlüsselter Daten an irgendeinen Server schicken und Warden würde "0 Logger" anzeigen.

  • Im Logfile sind keine für Dritte lesbare Nachrichteninhalte, wenn du das meinst.

    So ähnlich ... ich meinte, wenn man Logging explizit aktiviert, ob und wie sichergestellt wird, dass im Logfile z.B. auch deine Threema-ID und/oder ggf. verküpfte Email oder Telefonnummer NICHT mit geloggt oder gar übertragen wird.

    Sowie sonstige Inhalte / Daten die dich in irgendeiner Weise verfolgbar/ erkennbar machen.

    Dass z.B. nur "Error 1234, xyz konnte nicht geladen werden" bei Übermittlung eines Fehlerberichts übertragen wird.

    Also wirklich nur die Fehlermeldung bzw. das technische Problem OHNE deiner ID, etc. (Datum und Uhrzeit wird wahrscheinlich immer geloggt? ... aber ohne Standort?)

    Eine Messaging-App könnte z.B. regelmäßig eine Kopie unverschlüsselter Daten an irgendeinen Server schicken und Warden würde "0 Logger" anzeigen.

    Genau das wollte ich wissen. Danke für deine Antwort!

    D.h. man könnte -wenn die App nicht Opensource ist - nur mehr anhand der Anzahl der Berechtigungen erahnen, ob eine App persönliche Daten (Fehlerberichte, Metadaten, oder gar unverschlüsselte Nachrichten) an einen Server schickt?

    Welche Daten genau, wird man wahrscheinlich ohne Sourcecode nicht ermitteln können - wenn dann kannst du auch wieder nur grob spekulieren (z.B. die App fragt nach dem Standort -> könnte also den Standort übertragen)?

    Kann eine App mit 0 Berechtigungen dich eigentlich ausspionieren ?

    Bzw. kann man eine App so programmieren, dass 0 Berechtigungen erscheinen und die App trotzdem alle Berechtigungen erhält (OHNE dass du je danach gefragt wirst - oder gar eine Berechtigung aktiviert hast)? Also die App z.B. auch das Internet zur Übertragung benutzen kann?