Skip to content

Der Masque-Angriff auf iOS

Wie angekündigt geht es in dieser Folge um den von FireEye Masque-Angriff genannten Angriff auf iOS-Apps, bei dem eine vorhandene App durch eine bösartige App ersetzt wird. Der Angriff war im Oktober schon von Jonathan Zdziarski in ähnlicher Form beschrieben worden (er hat eine vorhandene App durch eine manipulierte Kopie ersetzt), ist mangels Namens nicht weiter aufgefallen. Merke: 2014 muss ein Angriff oder eine Schwachstelle einen Namen haben, sonst interessiert sich keiner dafür!

Der Masque-Angriff im Überblick

Beim Masque-Angriff kommt wie beim Angriff von WireLurker auf iOS-Geräte ohne Jailbreak ein Enterprise-Zertifikat zum Einsatz, der Austausch der Apps kann also nicht über den App Store erfolgen.

Eine über ein Enterprise-Zertifikat installierte App kann eine vorhandene, über den App Store installierte App ersetzen, indem sie den gleichen Bundle Identifier verwendet. Die bösartige App kann für die Installation einen beliebigen Titel anzeigen, so dass der Benutzer sie freiwillig installiert. Außer den mit iOS vorinstallierten Apps wie zum Beispiel Mobile Safari kann jede vorhandene App ersetzt werden.

iOS erzwingt für Apps mit gleichem Bundle Identifier nicht, dass die Zertifikate überein stimmen. Was man ja eigentlich erwarten sollte, denn im Normalfall werden Apps ja nur durch neue Versionen von sich selbst ersetzt, und dann stimmen die Zertifikate entsprechend überein (mal von Prüfsummen der App etc. abgesehen, aber Entwickler und Aussteller sind identisch).

Betroffen sind iOS 7.1.1, 7.1.2, 8.0, 8.1 und 8.1.1 Beta, unabhängig davon, ob ein Jailbreak durchgeführt wurde oder nicht. Der Angriff kann sowohl über USB als auch drahtlos durchgeführt werden.

Wie funktioniert ein Angriff?

Ein Angriff würde sehr wahrscheinlich mit einem Social-Engineering-Angriff beginnen. Ein Benutzer wird über eine E-Mail oder auf einer Website aufgefordert, eine App zu installieren, zum Beispiel ein brandneues Spiel. Was der Benutzer, neugierig wie er ist, auch macht. Dass er der Installation zustimmen muss ist dabei kein Hindernis, diese Zustimmung gibt er natürlich - er will die App ja installieren.

Beim ersten Start der App wird der Benutzer gewarnt, dass die App von einem nicht vertrauenswürdigen Entwickler stammt. Das wissen die Angreifer natürlich auch, also haben sie den Benutzer in der E-Mail oder auf der Website darauf hin gewiesen, dass diese Warnung kommt, und dass er sie ignorieren soll. Eine glaubwürdige Begründung dafür lässt sich ja leicht finden.

Nachdem der Benutzer die Warnung ignoriert hat, wird das Enterprise-Zertifikat mit einem zugehörigen Provisioning Profile installiert. Danach kann dann die präparierte App installiert werden und eine vorhandene App mit gleichen Bundle Identifier ersetzen. Dabei erhält sie auch Zugriff auf die vorhandenen Daten der ersetzten App.

Wird zum Beispiel eine E-Mail-App wie die Gmail App für Google Mail ersetzt, kann die bösartige App auf die auf dem iOS-Gerät gespeicherten E-Mails zugreifen. Wie das aussehen kann, zeigt ein Video von FireEye. Merkwürdigerweise fehlt darin aber die Warnung vor der verdächtigen Herkunft der App.

Gefährlich wird so ein Angriff vor allem dann, wenn Apps ersetzt werden, in die Zugangsdaten eingegeben werden oder die sensitive Daten speichern. Also Onlinebanking- oder Onlineshopping-Apps, E-Mail-Apps und ähnliches.

Wie schützt man sich vor Angriffen?

Um sich vor Angriffen mit Hilfe von Entwickler-Zertifikaten zu schützen müssen Sie nur einige einfache Regeln beachten. Im folgenden gehe ich davon aus, dass Sie ein iOS-Gerät ohne Jailbreak verwenden. Mit einem Jailbreak hebeln Sie sämtliche Schutzmaßnahmen aus, dann brauchen die Cyberkriminellen sich nicht die Mühe mit dem Entwickler-Zertifikat machen und können ihre Schadsoftware direkt installieren.

  • Installieren Sie nur Apps aus dem App Store und allenfalls aus ihrem eigenen Unternehmen, sofern das ein Enterprise-Zertifikat zur Installation interner Apps verwendet.
  • Erlauben Sie niemals irgend einer Website die Installation einer App, ganz egal welche verlockenden oder zwingenden Gründe dafür angegeben werden.
  • Warnt iOS beim Start eine App vor einem nicht vertrauenswürdigen App-Entwickler, klicken Sie auf "Nicht vertrauen" / "Don't Trust" und löschen Sie die App umgehend.

Ein Apple-Sprecher hat iMore mitgeteilt, dass Apple bisher keine Angriffe bekannt sind. Was man nicht überbewerten sollte, denn erstens weiß Apple nicht alles und zweitens wird nicht jeder Angriff sofort erkannt. Viel interessanter wäre es, wieso iOS das Ersetzen der Apps zulässt, ohne das zugehörige Zertifikat zu vergleichen. Aber das hat Apple bisher nicht verraten.

Ob bereits Apps mit Hilfe eines Enterprise-Zertifikats installiert wurden, können Sie unter iOS 7 mit Hilfe der Übersicht installierter Provisioning Profiles prüfen (unter "Einstellungen / Allgemein / Profile"). Verdächtige Profiles können sie löschen, um die Ausführung der zugehörigen App zu verhindern.
Unter iOS 8 werden die Provisioning Profiles nicht mehr angezeigt, dort gibt es keine Möglichkeit, einen evtl. Angriff zu erkennen.

Wie gefährlich ist der Angriff?

Der Angriff ist für Sie nur gefährlich, wenn Sie Apps aus anderen Quellen als dem App Store und ggf. der Quelle ihres eigenen Unternehmens installieren. Dann aber ist er ziemlich gefährlich, denn wenn Sie öfter mal Apps aus anderen Quellen installieren, dürfte es kein Problem sein, sie per Social Engineering zu Installation einer bösartigen App zu bewegen. Und die kann dann auch einen Masque-Angriff durchführen.

Carsten Eilers

Trackbacks

Dipl.-Inform. Carsten Eilers am : WireLurker - ein interessanter Angriff. Aber auch gefährlich?

Vorschau anzeigen
Es gibt einen neuen Angriff auf iOS: Ein Schädling infiziert erst Rechner mit Mac OS X und Windows, um dann auf damit über USB verbundenen iOS-Geräten Schadsoftware zu installieren. Aufgrund seiner Funktion, auf über USB angeschloss