Offenlegung von Telefonnummer und Geolokalisierung durch Sicherheitslücke in Telegramm

Bild

In letzter Zeit hat Telegram zunehmend das Thema des Durchbruchs von Personen und der Weitergabe personenbezogener Daten diskutiert. Ich habe mich gefragt, wie sehr das Telegramm-Ökosystem selbst gegen solche Lecks resistent ist.

Unter dem Schnitt ist die Geschichte, wie ich einen Fehler in Telegram gefunden habe. Der Fehler ermöglicht es Ihnen, den Benutzer irrezuführen und ihn dazu zu bringen, seine Daten unwissentlich weiterzugeben - Geolokalisierung und Telefonnummer.

So funktioniert das:


Die Systemkomplexität war schon immer ein Feind der Sicherheit.

Das Telegramm ist gewachsen, ist nicht mehr nur ein Messenger und hat sich zu einer großen Medienplattform mit umfangreichen Funktionen entwickelt. Die Telegram Bot API zeichnet sich als separates Haus aus, mit dem Sie ganze Anwendungen im Messenger erstellen können - die sogenannten Bots.

Höchstwahrscheinlich weiß jeder, der versucht hat, einen eigenen Bot zu erstellen, dass dem Benutzer über eine spezielle Schaltfläche eine Anfrage nach seiner Telefonnummer gesendet werden kann.

Der Text auf dieser Schaltfläche kann auf einen beliebigen Wert eingestellt werden. Darüber hinaus kann der Bot dieselben Schaltflächen für andere Interaktionen verwenden:

Bild

Nach dem Klicken auf die Schaltfläche wird dem Benutzer natürlich eine Warnung angezeigt, dass nun sein Kontakt an den Bot gesendet wird:

Bild

Diese Nachricht spricht ganz klar über das Risiko einer Dekanonymisierung und warnt den nachdenklichen Benutzer vor für ihn gefährlichen Handlungen.

Als ich die API-Updates durchging, fiel mir ein, dass Telegram den Benutzern irgendwann die Möglichkeit gab, den Messenger selbst zu lokalisieren. Es gab Beispiele, bei denen die Lokalisierung für komische Änderungen der Benutzeroberfläche verwendet wurde. In diesem Moment kam mir der gleiche Gedanke, den Sie jetzt vielleicht haben:

Aber was ist, wenn Sie versuchen, ein Dialogfeld "komisch zu übersetzen", das den Benutzer warnt, die Telefonnummer an den Bot zu übertragen und seinen Text zu ersetzen?

Bild Bild

Zuerst dachte ich, dass es viel schwieriger sein würde, den Benutzer dazu zu bringen, eine externe XML-Dateilokalisierung in der Anwendung zu installieren, als nur zu überzeugen, auf Kontakt freigeben zu klicken. Genau so bot Telegram unter Verwendung einer XML-Datei an, seine Lokalisierungen unter den Gesprächspartnern zu verteilen.

Also dachte ich, bis ich auf den setlanguage Link Handler im Quellcode der Android-Anwendung stieß .

Bild

Genau das, was benötigt wird!

Es stellte sich heraus, dass Telegram vor langer Zeit eine Übersetzungsplattform, translations.telegram.org, für alle Telegrammbenutzer zugänglich gemacht hatte und jetzt keine XML-Dateien mehr übertragen werden müssen.

Bild

Klicken Sie einfach auf den Link t.me/setlanguage/%lang%Danach wird dem Benutzer ein Dialogfeld angezeigt, in dem Sie aufgefordert werden, eine neue Sprache zu installieren. Und dieses Fenster ist viel weniger einschüchternd als eine Nachricht über eine Telefonnummernanfrage:

Bild

Wie es funktioniert?


Registrieren Sie sich unter translations.telegram.org .

Fügen Sie Ihre Sprache hinzu, übersetzen Sie die erforderlichen Oberflächenelemente und einige weitere .

In der Lokalisierung können Sie alles schreiben, was Sie wollen. Wir werden einen harmlosen Text anstelle einer schrecklichen Warnung über die Weitergabe von Geolokalisierung und Telefonnummer schreiben. Wir machen das gleiche für die anderen Plattformen.

Unsere giftige Sprache ist bereit. Es bleibt dem Benutzer zu überlassen.

Bild

Ich konnte immer noch keinen Weg finden, um herauszufinden, ob der Benutzer die ihm angebotene Lokalisierung installiert hat. Es gab weder Sprachstatistiken auf translations.telegram.org noch Änderungen im Benutzerprofil. Mit der Bot-API können Sie die Sprache des Benutzers über den Parameter language_code ermitteln, aber sein Wert wird aus den Systemeinstellungen übernommen. Das Ändern der Sprache in der Anwendung wirkt sich nicht auf den Parameter aus.

Nun, dann fügen Sie einfach eine kleine Verzögerung nach der Nachricht mit einem Link zur Sprache hinzu. Nach Auswahl einer Sprache empfehlen wir dem Benutzer, sich mit dem Bot-Menü vertraut zu machen. Wenn Sie in diesem Dialogfeld auf OK klicken, wird die Nummer mit einer Nachricht an den Bot weitergeleitet, und der Bot löscht diese Nachricht sofort. Wenn der Bot Webhook verwendet, um Updates zu erhalten, wird die Nachricht schneller gelöscht und der Benutzer versteht möglicherweise nicht, dass er gerade seinen Kontakt gesendet hat.

Übrigens kann ein Bot ähnlich wie bei einer Kontaktanfrage einen Benutzer auffordern, seine Geolokalisierung mitzuteilen. Ja, und dieses Dialogfeld kann auch übersetzt werden.

Wie repariert man


Natürlich sollten Sie Benutzern nicht erlauben, die gesamte Benutzeroberfläche ohne Moderation zu übersetzen. Übrigens ist die Übersetzungsmoderation beispielsweise für dieses Dialogfeld translations.telegram.org/rutech/ios/unsorted/AuthCode.Alert aktiviert . Die Notwendigkeit der Moderation wird uns vom Critical-Label gemeldet.

Bild

Es stellt sich heraus, dass eine so kleine Auslassung wie das Fehlen einer kritischen Bezeichnung für Dialoge über das Teilen von Nummern und die Geolokalisierung zu einem Leck führt. Ein Leck sehr sensibler Daten, wie bei einem Messenger, der sein Marketing auf Datenschutz / Sicherheit ausrichtet.

Ein Messenger, der per Definition an Ihre persönliche Telefonnummer gebunden ist, kann nicht privat sein. Dies kann nur die Kosten für die Offenlegung Ihrer Identität erhöhen.

Diese Sicherheitsanfälligkeit fiel in das Bug-Bounty-Telegrammprogramm und wurde mit 100 € bewertet.

PS

Kommen Sie zu uns im Telegramm-Chat @secinfosec . Dort teilen wir unsere Erfahrungen und diskutieren alles, was mit Informationssicherheit zu tun hat: ein Kopfgeldfehler, Pentests, Papier und praktische Sicherheit, neue Bedrohungen und Methoden, um mit ihnen umzugehen.

All Articles