Originalbeitrag von Lilang Wu, Yuchen Zhou, Moony Li
Apple verwaltet die Anwendungssicherheit sowie Fragen der Vertraulichkeit über einen Sandbox-Mechanismus für iOS, mit dessen Hilfe der Zugriff auf Ressourcen für jede Anwendung beschränkt wird. Das Ziel dieses Programms ist es, den Schaden einzugrenzen, sollte eine App kompromittiert werden. Alle vom App Store vertriebenen Apps unterliegen dieser Kontrolle. Doch diese Zugriffskontrolle erschwert auch die Kommunikation zwischen den Apps. Deshalb liefert Apple einige sorgfältig entwickelte Methoden zur Unterstützung der App-Kommunikation, von denen die bekannteste URL Scheme ist. Der Blog stellt dar, wie der potenzielle Missbrauch des URL Schemes möglicherweise zu einem Vertraulichkeitsverlust, Rechnungsbetrug, Belastung durch Popup-Anzeigen und vielem mehr führen kann.
Im Wesentlichen ist dies eine Funktion, die es Entwicklern ermöglicht, Apps auf einem iOS-Gerät über URLs zu starten. Es handelt sich um eine Methode zur Übertragung von Informationen von einer App zur anderen. Wird beispielsweise eine URL mit facetime:// geöffnet, so startet FaceTime einen Call – hier kommt das URL Scheme ins Spiel. Es ist eine sehr praktische Abkürzung, doch ist URL Scheme für die Kommunikation und nicht für die Sicherheit konzipiert.
Funktionsweise
Mit iOS haben mehrere Apps die Möglichkeit, ein einzelnes URL Scheme anzufordern. Beispielsweise können zwei völlig separate Apps Sample:// in ihrer Implementierung des URL Schemes nutzen. Auf diese Weise gelingt es einigen bösartigen Apps das URL Scheme auszunutzen und User zu kompromittieren.
Apple ist dieses Problem in neueren iOS-Versionen (iOS 11) angegangen, die nach dem Prinzip funktionieren: „Wer zuerst kommt, mahlt zuerst!“ Das heißt, nur die zuerst installierte App, die das URL Scheme nutzt, wird gestartet. Dennoch kann die Sicherheitslücke auf verschiedene Weise ausgenutzt werden.
URL Schemes beeinflussen die Vertraulichkeit von Konten
URL Schemes fungieren als Portale für Apps, über die sie Informationen von anderen Apps erhalten. Wie bereits erwähnt, erlaubt es Apple verschiedenen Apps, das gleiche URL-Schema zu deklarieren, so dass bösartige Apps sensible Daten von bestimmten Apps kapern können. Diese Schwachstelle ist besonders kritisch, wenn der Anmeldeprozess von App A mit App B verbunden ist.
Anhand einiger offizieller iOS-Apps aus dem chinesischen Markt lässt sich der Missbrauch illustrieren. So ermöglicht beispielsweise die Suning-App (eine Handels-Applikation) einem möglichen Opfer, sich mit seinem WeChat-Konto (Messaging und mobile Bezahl-App) anzumelden. Der normale Authentifizierungsprozess von Suning generiert eine URL Scheme-Abfrage und sendet sie an die WeChat App. Diese fordert einen Login-Token vom WeChat-Server an und sendet ihn zur Authentifizierung an die Suning-App zurück.
Trend Micros Recherche ergab, dass Suning immer die gleiche Abfrage des Login-Request URL Schemes verwendet, um den Login-Token anzufordern, wobei WeChat die Quelle der Login-Anfrage jedoch nicht authentifiziert. Dies ermöglicht es einem Angreifer, das Login-Request URL Scheme einer App für bösartige Zwecke zu verwenden.
Ein Angreifer kann mit der Suning-Abfrage des Login-Request URL Schemes den Login-Token des WeChat-Kontos eines Opfers anfordern. Mit diesem Token kann er sich dann mit dem WeChat-Konto des Opfers in die Suning-App einloggen. So kann er persönliche Daten sammeln oder den Zugriff auf beide Konten missbrauchen.
Damit der oben genannte Angriff funktioniert, muss ein Angreifer zuerst das Login-Request URL Scheme von Suning erhalten. Um dies aus der Suning-App zu übernehmen, muss er eine ganz separate App mit dem WeChat-URL Scheme erstellen (das WeChat-URL Scheme befindet sich im Feld LSApplicationQueriesSchemesin Info.plist von Suning). Mit dem legitimen WeChat URL Scheme lässt sich ein gefälschter WeChat erstellen, und Suning fordert dann bei dem Fake den Login-Token an. Die Fake App kann dann das Login-Request URL Scheme kapern. Die Analyse ergab, dass dieser Login-Request den konstanten Parameter mit dem konstanten Wert in mehreren Abfragerunden enthält, sodass der Angreifer die Anfrage wiederholen kann. Weitere technische Details enthält der Originalbeitrag. Das Problem besteht nicht nur bei diesen beiden Apps, sondern in vielen, die diese spezielle Login-Funktion beinhalten.
URL Schemes für Rechnungs-Phishing missbrauchen
Gefälschte URL Schemes können in verschiedenen Angriffsszenarien eingesetzt werden, so etwa auch um mit Phishing-Techniken Nutzer dazu zu bringen, die Rechnung anderer zu bezahlen.
Für diese Art des Rechnungs-Phishings senden die Akteure das URL Scheme einer Rechnungsanfrage an bestimmte Apps mit einer Bezahlfunktion. Ein solcher Angriff lässt sich beispielhaft an einer speziellen Funktion von DiDi oder MeiTuanDaChe (beides Transport-Apps) zeigen, in Verbindung mit jeder App mit Bezahlfunktion. Technische Einzelheiten umfasst der Originalbeitrag.
Mit dem Rechnungs URL Scheme kann ein Angreifer eine Rechnungsanfrage an jede legitime WeChat App schicken, und die App ruft automatisch die eigene Bezahlschnittstelle auf. Da der Angreifer die gestohlene (doch legitime) URL Scheme-Anfrage von DiDi oder MeiTuanDaChe einsetzt, akzeptiert die legitime WeChat-App des Opfers die Bezahlanfrage.
Zugegeben, normale Nutzer werden nicht getäuscht, da es unwahrscheinlich ist, dass sie auf eine beliebige Rechnungsanfrage in ihrer WeChat Bezahlschnittstelle reagieren. Dennoch erhöht die Funktion die Wahrscheinlichkeit des Betrugs erheblich.
Des Weiteren sind Angriffe mithilfe von SMS Social Engineering und dem URL Scheme nicht auszuschließen. Dieselben Apps wie vorhin können als Beispiel dienen, wobei der Angriff wieder mit dem Rechnungsprozess startet. DiDi oder MeiTuanDaChe Apps verschicken regelmäßig SMS an die Nutzer, um sie an nicht bezahlte Rechnungen zu erinnern. Ein Angreifer könnte dieselben SMS erstellen mit einem Link auf das URL Scheme einer eigenen Rechnungsanforderung. Dieser Link wird an die WeChat Bezahlschnittstelle umgeleitet.
Doch beinhaltet die neueste Version von WeChat eine neue Sicherheitsstrategie, um solche Angriffe zu verhindern. Die App akzeptiert keine Bezahlanfragen, wenn sie von einem MobileSafari Browser kommen. Dennoch ist ein Angriff möglich, wenn die Anfrage von Chrome, Message, Gmail oder anderen kommt.
URL Scheme wird in Pop-up-Werbung eingesetzt
Auch kann das URL Scheme dazu genutzt werden, um Anwendungen zu starten. Das bedeutet, dass sobald ein bestimmtes URL Scheme bei einer bösartigen App registriert ist, die Möglichkeit besteht, dass diese jedes Mal gestartet wird, wenn das URL Scheme aufgerufen wird. Die Sicherheitsforscher fanden eine ganze Reihe solcher Apps (siehe Originalbeitrag).
Lösungen
Betroffene Anbieter sind Mitte letzten Jahres darüber informiert worden, als die Lücke entdeckt wurde. Auch Apple weiß um die Bedrohung und hat bereits Entwickler darüber informiert: „URL Schemes liefern einen möglichen Angriffsvektor für Ihre App. Stellen Sie sicher, dass alle URL-Parameter validiert sind und entfernen Sie alle nicht korrekt gebildeten URLs. Darüber hinaus beschränken Sie die verfügbaren Aktionen auf solche, die für die Daten kein Risiko darstellen.“, so Apple.
Für Entwickler empfehlen sich im Allgemeinen universelle Links als Best Practice für Deep Linking. Das Einrichten einer universellen Link-Login-Schnittstelle (HTTP oder HTTPS) und das Einrichten einer zufälligen Kennung zur lokalen Authentifizierung des empfangenen Login-Tokens verhindert Hijacking und den wiederholten Einsatz bösartiger Login-Token.
Trend Micro erkennt potenziell bösartige Apps, die diese Funktion ausnützen könnten. Das Schwachstellen-Scanning von Trend Micro ist in der Lage, die bösartigen Apps zu erkennen, die das URL Scheme missbrauchen. Trend Micro XGen™ Security liefert eine generationsübergreifende Kombination aus Abwehrtechniken gegen eine Vielfalt von Bedrohungen für Datacenter, Cloud-Umgebungen, Netzwerke und Endpunkte. Die Lösung umfasst High-Fidelity Machine Learning, um Daten und Anwendungen am Gateway und den Endpunkten, ebenso wie physische, virtuelle und Cloud-Workloads zu sichern. Mit Fähigkeiten wie Web/URL-Filtering, Verhaltensanalysen und anpassbarem Sandboxing bietet XGen Schutz vor den heutigen gezielten Bedrohungen, die herkömmliche Mechanismen umgehen, bekannte, unbekannte und nicht veröffentlichte Sicherheitslücken ausnutzen, um persönlich identifizierbare Daten zu stehlen oder zu verschlüsseln. Die Trend Micro-Lösungen werden durch XGen™ Security unterstützt: Hybrid Cloud Security, User Protection und Network Defense-Lösungen.