tl; dr: Vertrauen Sie Webview-Logins auf nativen Apps nicht, sie können Ihre Cookies lesen und sie zu ihrem Vorteil nutzen.
Folgen Sie dem Hacker News-Thread „Wie ich 4 € bei einem Facebook-Betrug verloren habe„Wir haben die App rückentwickelt, um zu sehen, wie das passiert.
Die neue Phishing-Welle
Phishing. Wir alle kennen es, wir alle hassen es. Niek van der Maas hasst es aber auch Er wurde Opfer einer neuen Art von Phishing-Betrug, der 4 € von seinem Bankkonto abbuchte.
Wie ist es passiert? Wie ist Niek, ein technisch versierter Benutzer, der ein E-Commerce-Geschäft besitzt, auf diese Art von Angriff hereingefallen?
Anmeldefluss und das Problem des Benutzervertrauens
Anmeldeformulare sind heutzutage allgegenwärtig. Bei Instagram, TikTok und sogar Ihrer Lokalzeitung ist fast immer eine Benutzerauthentifizierung erforderlich, um eine App zu verwenden.
Eine der Möglichkeiten, sich anzumelden, erfolgt über einen externen Anbieter – nämlich Google, Facebook, Twitter oder andere. Im Fall von Facebook präsentiert beispielsweise das Android SDK dem Benutzer ein natives Overlay und fordert den Benutzer auf, sich mit seinem Benutzernamen und Passwort bei Facebook anzumelden.
Dies lässt den Benutzer der App vertrauen und schafft beim Benutzer die Gewissheit, dass die Anmeldung bei seinem sozialen Konto über Benutzername und Passwort sicher ist.
Aber es ist nicht immer so.
Der Fall von Webview-Betrug
Was passiert, wenn Sie Webviews in den Anmeldeprozess einbeziehen?
Webviews sind von Natur aus unsicher. Jede Android-App, die eine Webansicht verwendet, hat vollen Zugriff auf alle von der Website gespeicherten Daten – Sitzungsspeicherung, lokale Speicherung und vor allem Cookies.
Beispielsweise kann eine App, die eine Facebook-Anmeldeseite darstellt, die Cookies des Benutzers stehlen, nachdem er sich auf der Website angemeldet hat.
Hier sind Screenshots von zwei Anmeldeseiten. Einer ist von einer unsicheren Webansicht und der andere ist eine sichere native Anmeldeseite. Können Sie den Unterschied erkennen?
(Das Instagram-Login ist die gesicherte native Anmeldeseite)
4 € bei einem Facebook-Betrug verloren
Niek ist auf den Webview-Betrug hereingefallen. Niek ist kein typischer Benutzer; Er betreibt E-Commerce, Online-Marketing und Beratung. Mit seinen eigenen Worten:
Ich finde es immer noch schwer zu glauben, dass ich auf einen solchen Betrug hereingefallen bin. Ich habe 2FA auf allen meinen Konten, verwende einen Passwortmanager und bin im Allgemeinen sehr vorsichtig mit der Kontosicherheit.
Niek vertraute darauf, dass er sich mit seinem Facebook-Benutzernamen und Passwort bei der schädlichen App anmeldete. Aber er wusste nicht, dass die von ihm heruntergeladene App bösartig war und Webview benutzte, um seine Facebook-Cookies zu stehlen, sich in sein Konto einzuloggen und ihm 4 € zu stehlen.
Werfen wir einen Blick hinter die Kulissen von Tiktok Ads Business, der schädlichen App, die er heruntergeladen hat.
Abrufen von Cookies von einer Webansicht auf Android
Der Ablauf ist einfach. Niek öffnet die App, klickt auf den großen FB-Button und bekommt eine Webansicht mit der mobilen Seite von Facebook angezeigt.
Nachdem er sich angemeldet hat, führt die App diese sehr einfache Codezeile aus, die aus einer Dekompilierung der App stammt, die wir hier bei Sayfer erstellt haben:
public final string retrieveWebCookie() {
return cookieManager.getCookie(LoginActivity.CONST_URL_FACEBOOK);
}
Die Facebook-Coockies werden dann an den Remote-Server der bösartigen App gesendet und können verwendet werden, um sich beim Konto des Opfers anzumelden.
Einfach. Eigentlich zu einfach – jeder Benutzer, der sich über eine Webansicht in einer App auf einer Website anmeldet, läuft Gefahr, den vollen Besitz seines Kontos aufzugeben.
Wie geht es weiter?
Eine Veränderung ist auf zwei verschiedenen Ebenen erforderlich.
Erstens sollten native Flow-Logins nicht auf webähnlichen Ansichten für den Login-Flow angewiesen sein. Dies führt dazu, dass Benutzer ihnen zu sehr vertrauen, und führt dazu, dass Benutzer Opfer von Betrug werden, der echte Webview-Cookies entführt.
Zweitens ist eine technische Änderung in der Android-Implementierung von Webview erforderlich. Apps sollten nicht auf die Cookies von Websites zugreifen dürfen, die sie laden. Webviews sollten in einer Sandbox gespeichert werden, und die App sollte über eine sehr dünne und eingeschränkte API mit ihr kommunizieren, um zu verhindern, dass sie Benutzeranmeldeinformationen entführt.
Möchten Sie mehr hören?
Ein kostenloses Beratungsgespräch inklusive.






