Kontroverse zur Umgehung von Apples In App Purchases

Wie bereits seit einigen Tagen an anderer Stelle zu lesen, ist es einem russischen Hacker gelungen, In-App-Purchases in Apples Appstore durch folgendes zu umgehen:

  • Ein falscher DNS-Eintrag (Apples-Kauf-Server DNS-Eintrag wird durch die Verwendung eines falschen DNS-Servers in den iOS-Systemeinstellungen auf einen Server des Hackers umgeleitet).
  • Ein manuell eingespieltes falsches CA-Zertifikat, das die SSL-Verbindung mit dem Hacker-Server wie eine Verbindung mit Apples-In-App-Server aussehen lässt.

Damit wird der Benutzer bei Klick auf In-App-Purchases statt zu Apple auf den Server des Hackers geleitet, bekommt von dort ein Receipt und falls die App selbst dieses Rezept nicht weiter prüft (Nachlässigkeit der betroffenen Apps), kann der Benutzer das Feature hinter dem In-App-Purchase freischalten ohne dafür zu bezahlen.

Das klingt für die Raubkopier-Szene erst einmal toll, zumal man dafür nicht einmal einen Jailbreak seines iOS-Devices benötigt. App-Entwickler schauen dagegen in die Röhre, falls sie die Receipt-Validierung nicht oder nicht korrekt durchführen. Aber auch Benutzern selbst ist vor diesem Hack dringend abzuraten, aus folgenden Gründen:

  1. Durch den falsch eingetragenen DNS-Server können auch andere URLs falsch aufgelöst werden (Pharming-Attacken ist damit Tür und Tor geöffnet). Wie wäre es denn, wenn die Banking-Website oder auch der Company-Exchange-Server plötzlich auf eine URL in Russland umleitet?
  2. Durch das Einspielen eines CA-Zertifikats einer CA, der man nicht vertrauen kann, können Angriffe wie auf die Bank-URL oder den Company-VPN-Zugang oder Exchange-Zugang nicht einfach erkannt werden, da das SSL-Zertifikat des Gegenübers valide erscheint, falls die CA des russischen Hackers dieses Zertifikat signiert hat.
  3. Wie der Hacker gegenüber Macworld erklärte, werden die Passwörter, die beim Kauf im Appstore eingegeben werden, im Klartext übertragen. Das heißt, dass korrekt eingegebene Passwörter dann von Seiten des russischen Hackers für andere Käufe genutzt werden könnten.

Generell wechselt das Vertrauensmodell durch diesen Hack komplett von dem DNS-Anbieter und Apple auf den russischen Hacker. Ich kann mir nicht vorstellen, dass das jemand haben möchte, um einem App-Entwickler wenige Euro vorzuenthalten.

Zudem werden wohl viele App-Entwickler zukünftig eine Validierung der Receipts implementieren und möglicherweise wird auch Apple nachbessern, dass diese Validierung leichter wird, auch wenn es dagegen Widerspruch gibt:

Update 21.07.2012: Apple will das Problem mit iOS 6 lösen, bis zum Erscheinen ist explizit das Benutzen von private APIs für Entwickler in diesem Bereich erlaubt.

One comment

  1. Ping: Apples App-Store-Verantwortung für In-App-Items – iPhoneBlog.de