2 Punkte von GN⁺ 2024-08-05 | 1 Kommentare | Auf WhatsApp teilen
  • Einige illegale iOS-Streaming-Apps wurden so konzipiert, dass sie die Prüfung als normale Apps bestehen und erst danach versteckte Funktionen aktivieren; die Codeanalyse bestätigte standortbasierte Sperren und Remote-Update-Mechanismen
  • Apps, die über unterschiedliche Entwicklerkonten verteilt wurden, teilten sich dieselbe Codebasis; mit React Native und dem Microsoft CodePush SDK konnten Teile der App ohne erneute App-Store-Prüfung verändert werden
  • Eine bestimmte App nutzte ein GitHub-Repository und eine IP-basierte Location-API, um Daten zu Land, Region, Stadt sowie geschätzter Länge und Breite zu prüfen, und zeigte in Apples Prüfungsumgebung die versteckte Oberfläche nicht an
  • Durch das Warten einiger Sekunden nach dem ersten Start, bevor die Location-API aufgerufen wurde, wurde der automatisierte Prüfprozess umgangen; selbst mit einem Proxy auf den Standort San Jose, California eingestellt erschien der versteckte Bildschirm nicht
  • Apple könnte Tests für standortabhängiges Verhalten und das Entfernen betrügerischer Apps verstärken, hat bislang aber nur bestätigt, dass die betroffenen Apps entfernt wurden, ohne konkrete Maßnahmen gegen die Genehmigung ähnlicher Apps offenzulegen

Struktur, die nach bestandener Prüfung wie eine andere App funktioniert

  • 9to5Mac berichtete über mehrere illegale iOS-Streaming-Apps, die die App-Store-Prüfung täuschten, und bestätigte anschließend durch Codeanalyse die Details der Umgehungsmethode
  • „Collect Cards“ erreichte in einigen Ländern Spitzenplätze in den App-Store-Downloadcharts für kostenlose Apps und wurde nach der Veröffentlichung von Apple entfernt
  • Als später mehrere Versionen derselben App erneut im App Store auftauchten, wurde die Methode zur Täuschung des Review-Teams zum Analysegegenstand

Gemeinsame Codebasis und Remote-Updates

  • Die analysierten Apps wurden über unterschiedliche Entwicklerkonten verteilt, teilten aber dieselbe Codebasis
  • Die Apps wurden mit React Native, einem JavaScript-basierten Cross-Platform-Framework, erstellt
  • Mit dem CodePush SDK von Microsoft lassen sich Teile einer App aktualisieren, ohne einen neuen Build im App Store einzureichen
  • Die Nutzung von React Native und CodePush an sich verstößt nicht gegen die App-Store-Regeln; viele populäre Apps verwenden diesen Ansatz ebenfalls
  • Schädliche Entwickler missbrauchten diese legitime Update-Technik, um die App-Store-Prüfung zu umgehen

Erkennung von Apples Prüfungsumgebung per Standort

  • Eine der analysierten Apps verwies auf ein GitHub-Repository, das offenbar Dateien für mehrere illegale Streaming-Apps bereitstellt
  • Die App verwendete eine bestimmte API, um den Gerätestandort auf Basis der IP-Adresse zu prüfen
    • Die API liefert Daten wie Land, Region, Stadt sowie geschätzte Länge und Breite zurück
  • Beim ersten Öffnen wartete die App einige Sekunden und rief erst dann die Location-API auf
    • Durch diese Verzögerung wurde im automatisierten Prüfprozess des App Store kein auffälliges Verhalten im App-Code sichtbar
  • 9to5Mac überprüfte das App-Verhalten mit einem Proxy, der den Standort auf San Jose, California vortäuschte
    • An diesem Standort zeigte die App die versteckte Oberfläche nie an

Anzeige der tatsächlichen Oberfläche nach der Genehmigung

  • Nachdem Apple die App mit nur grundlegenden Funktionen genehmigt hatte, aktualisierte der Entwickler die App per CodePush mit den gewünschten Inhalten
  • Die App zeigte ihre tatsächliche Oberfläche nur an „sicheren“ Standorten
  • In dieser Struktur kann sich das App-Verhalten in Apples Prüfungsumgebung und in der Umgebung normaler Nutzer unterscheiden

Offene Aufgaben für Apples Gegenmaßnahmen

  • Apple könnte den Prüfprozess durch zusätzliche Tests verbessern, die verifizieren, wie sich Apps an unterschiedlichen Standorten verhalten
  • Zudem ist ein aktiveres Aufspüren und Entfernen betrügerischer Apps aus dem App Store nötig
  • 2017 wurde Uber vorgeworfen, rund um Apples Hauptsitz in Cupertino ein „geofence“ eingesetzt zu haben
    • Demnach wurde beim Ausführen der App an diesem Standort Code automatisch deaktiviert, der zur geräteübergreifenden Erfassung von Nutzer-Fingerprints und zum Tracking im Web diente
  • Laut einem Dokument aus dem Jahr 2021 umfasst das App Store Review Team mehr als 500 menschliche Experten, die jede Woche über 100.000 Apps prüfen
    • Dennoch durchlaufen die meisten Apps vor der manuellen Prüfung einen automatisierten Prüfprozess, der Verstöße gegen die App-Store-Richtlinien überprüft
  • Ein Apple-Sprecher erklärte nach der Veröffentlichung, dass die betreffenden Apps aus dem App Store entfernt wurden, nannte aber keine Details zu Maßnahmen des Unternehmens, um die Genehmigung ähnlicher Apps zu verhindern

1 Kommentare

 
GN⁺ 2024-08-05
Meinungen auf Hacker News
  • Selbst wenn Apple das Umgehen regionaler Beschränkungen verhindert, ist es sehr einfach, das Verhalten zu verstecken

    1. Die Build-Nummer der App per API-Aufruf an den Server senden
    2. Über die API-Antwort steuern, ob versteckte Funktionen aktiviert werden
    3. Die versteckten Funktionen erst einschalten, nachdem der jeweilige Build die Prüfung bestanden hat
    4. Profit?
      Dafür braucht es keinerlei dynamischen Code oder interpretierten Code, und es gibt so viele Varianten davon, dass es am Ende wohl auf das Halteproblem hinausläuft und unentscheidbar ist
    • Stimmt. Letztlich lassen sich solche Methoden wie Logikbomben nicht verhindern; es ist nur ein Katz-und-Maus-Spiel
      Man braucht Möglichkeiten, außerhalb technischer Maßnahmen darauf zu reagieren. Zum Beispiel könnten tatsächlich verteilte Personen per Crowdsourcing Apps testen, um schädliches Verhalten zu finden
    • 1 bis 3 lassen sich auch dadurch ersetzen, dass die App ihre eigene App-Store-Listing-Seite prüft
      Allgemeiner gesagt kann eine Update-Prüfung, also die Frage, ob es eine neue Version gibt, gleichzeitig dazu genutzt werden, zu prüfenfen: „Ist diese Version noch im App-Review?“
    • Einer der Gründe, warum Apple beim Developer-Onboarding und beim Abschluss des Entwicklervertrags ein gewisses Maß an Due Diligence betreibt, ist, dass Apple gegen Entwickler, die das System missbrauchen, verlässlich rechtliche Schritte einleiten kann
      Die Möglichkeit, aus dem Apple-App-Store-Ökosystem ausgeschlossen zu werden oder juristische Gegenmaßnahmen zu erfahren, ist eine Möglichkeit, unerwünschtes Verhalten einzudämmen, das sich technisch nicht verhindern lässt
    • KI dürfte bald an den Punkt kommen, an dem synthetische Nutzer von echten Nutzern nicht mehr zu unterscheiden sind. Um die oben genannten Techniken und andere Techniken in diesem Thread abzumildern, wird Apple den Review-Prozess wohl schnell in eine sehr automatisierte und kontinuierliche Form überführen
      Am Ende muss stärker Druck auf Ökosystem- und Regierungsebene genutzt werden, damit die Bedingungen vernünftig und fair sind. Denn Hacks zum Umgehen der Bedingungen werden nahezu unmöglich werden. Ich halte solche Hacks zwar für clever, glaube aber nicht, dass sie lange Bestand haben werden
  • Falls euch Apples Formulierung zu dynamischen Updates wie CodePush interessiert, hier ist sie: https://github.com/microsoft/react-native-code-push#store-gu...
    „Ausführbarer Code
    Außer in den im folgenden Absatz genannten Fällen dürfen Apps keinen ausführbaren Code herunterladen oder installieren. Interpretierter Code darf in eine App heruntergeladen werden, sofern dieser Code (a) nicht den Hauptzweck der App verändert, indem er Funktionen bereitstellt, die nicht dem beabsichtigten und beworbenen Zweck der im App Store eingereichten App entsprechen, (b) keinen Store oder Marktplatz für anderen Code oder andere Apps erstellt und (c) Signierung, Sandbox oder andere Sicherheitsfunktionen des Betriebssystems nicht umgeht.“

    • Zumindest bei Live-Service-Games laden auf Mobilgeräten nahezu 100 % regelmäßig neuen interpretierten Code herunter, was faktisch vollständig die App-Store-Prüfung umgeht
      Es wirkt, als gebe es zwischen Spieleentwicklern und Google/Apple eine Übereinkunft: Die Prüfung darf umgangen werden, solange die Milliardenumsätze mit Lootboxen weiterfließen
    • So betrachtet fühlt sich die Regel ziemlich offen an für Apps, die im Ergebnis im Wesentlichen denselben Zweck beibehalten und sich auch im Ansatz nicht stark unterscheiden
      Ein auffälliges Bündel an Funktionen ist die Art, wie viele Apps Abogebühren außerhalb von Apples ummauertem Zahlungssystem erheben. Das liegt daran, dass die eigentliche Arbeit der App nicht nur auf dem Gerät, sondern in der Cloud stattfindet. Es hat Vorteile, eine App in eine grundlegende lokale App und zusätzliche Arbeit in der Cloud aufzuteilen, aber je leistungsfähiger Geräte werden, desto attraktiver wird es, zu sehen, was lokal möglich ist
      Wenn die übergeordnete Struktur der App klar genug ist, können die Details, die sie ausfüllen, später ergänzt werden
      Dinge wie SDUI, die eine dynamischere Interface-Erzeugung je nach Nutzerpräferenzen oder Nutzungsmustern ermöglichen, mochte ich schon lange
      Der Ansatz, Software für festgelegte Arbeitsabläufe zu bauen, wird zunehmend altmodisch. Ob es um sich ändernde Anforderungen in den einzelnen Phasen von Pandemie-Lockdowns geht oder um echte Personalisierung der User Experience: Software mit starrem Denken wird durch Software ersetzt, die Flexibilität braucht
  • Wenn ich ein Verhalten durchbekommen musste, das Apple nicht mag, habe ich zeitbasierte Tricks verwendet
    20 Tage nach dem Einreichen der App änderte sich das Verhalten eines Buttons so, dass der Dialog „Datei öffnen“ direkt ins Root-Verzeichnis des Nutzers sprang

    • Bei einer meiner Apps habe ich genau dasselbe gemacht. Es war eine private App, die nur mit Login-Code nutzbar war, aber Apple wollte alle Funktionen testen. Also habe ich ein paar Fake-Screens in die App eingebaut, und diese Screens haben nicht einmal API-Aufrufe gemacht
      Ich habe einen Zwei-Wochen-Timer eingebaut, danach begann die App mit ihrem echten Verhalten, einschließlich API-Aufrufen
      Apples App-Review ist ein kompletter Witz
    • Gut. Zeigt, wie nutzlos der App-Validierungsprozess ist
      Man könnte vermutlich auch einen Weg finden, das Reviewer-System wie per Fingerprint zu identifizieren und Funktionen nur vor ihnen direkt zu verstecken
  • Nebenbei: Die überwältigende Mehrheit der Scam-Apps scheint Leuten mit wöchentlich wiederkehrenden Abos Geld aus der Tasche zu ziehen
    Ein nicht wiederkehrender Wochenpass kann sinnvoll sein, etwa eine VPN-App für eine Woche auf Reisen. Aber wöchentliche wiederkehrende Zahlungen sollten eine manuelle Zustimmung erfordern. Nicht jede App sollte wöchentlich wiederkehrende Zahlungen abrechnen dürfen

  • Eine Piraterie-App als bösartig zu bezeichnen, wirkt ziemlich überzogen. Übersehe ich etwas, oder wurde dieser Artikel von einem Rechteinhaber geschrieben?

    • Umgekehrt: Wenn eine Piraterie-App so etwas tun kann, kann Malware das natürlich auch. Und ich denke, Apple kümmert sich mehr um Piraterie als um echte Malware
      Allerdings sind die umsatzstärksten Apps ohnehin schon Scam-Apps, und soweit ich mich erinnere, war das schon immer so, also ist es auch nichts Neues
  • „Laut 2021 veröffentlichten Dokumenten hat das App-Store-Review-Team mehr als 500 menschliche Experten, die jede Woche mehr als 100.000 Apps prüfen.“
    Wenn man die ungenaue Formulierung dieses Satzes ignoriert und annimmt, dass die Reviewer 100 % ihrer Arbeitszeit für Reviews aufwenden und einer normalen Arbeitswoche folgen, sind das etwa 12 Minuten pro App

    • Im selben Jahr, 2021, lag der Gesamtumsatz des Apple App Store bei 85 Milliarden Dollar
      Leider kann sich das arme Apple offenbar nicht leisten, mehr Reviewer einzustellen, genug, um für jede App einen sinnvollen Prüfprozess zu gewährleisten und Arbeiter in anständigen Arbeitsbedingungen angemessen zu bezahlen. Vermutlich werden sie von den wöchentlichen App-Quoten getrieben, die sie prüfen müssen
      Warum genau verdient Apple also noch einmal 30 %?
  • Wenn die neueste App die App-Store-Prüfung übersteht und am Leben bleibt, gibt es Telegram-Kanäle/-Gruppen, in denen sich Tausende von Leuten sammeln, die sie nutzen wollen, bis Apple Maßnahmen ergreift
    Es gibt auch einen Markt für Signaturzertifikate und Plätze auf Apple-Developer-Maschinen, sodass technisch versiertere Nutzer IPAs selbst signieren und installieren können

  • In den USA braucht es dringend ein Gesetz wie den DMA. Ein Unternehmen sollte nicht mehr als 60 % der US-Nutzer bei der Frage festhalten können, welche Apps sie installieren möchten
    Ebenso wenig sollten Apple und Google zusammen 15–30 % sämtlicher Umsätze im gesamten Markt für mobile Apps einstreichen können

    • Der Richtung stimme ich zu, aber ich sehe die Perspektive eher als entwicklerzentriert denn als nutzerzentriert
      Erstens haben sich diese 60 % für iOS entschieden. Sie sind keine „Geiseln“, sondern können gehen. Und das ist auch kein neues Verhalten, sondern existiert seit der Einführung des iPhone. Verbraucher stimmen dafür ab [1]
      Zweitens kontrolliert Google nicht, was Nutzer installieren, und bekommt daher per Definition keinen Anteil an „allen Umsätzen“. Der Großteil des Werts aus mobilen Apps entsteht außerdem an anderer Stelle [2], sodass selbst Apples Zahl nicht korrekt ist
      Als Entwickler möchte man natürlich freien Zugriff auf Nutzergeräte haben und dort beliebigen Code ausführen. Leider wollen manche Entwickler diesen Zugriff aus Gründen, die Verbrauchern schaden. Deshalb versuchen Entwickler, das System auszutricksen, und ehrliche Apps werden abgelehnt
      Man muss aber verstehen, dass Nutzer diesen kuratierten Zugang wollen und nicht dagegen, sondern dafür abstimmen
      [1] Über Messenger kann man streiten, aber das ist ein Messenger-Problem, kein App-Problem
      [2] Fast alle Apps, die ich installiere, sind kostenlos. Die Unternehmen dahinter erzielen ihren Umsatz in anderen Teilen des Systems. Auch wir haben eine „kostenlose App“, die mit einem Produkt verknüpft ist, und die Leute zahlen für dieses Produkt
    • Hast du den Artikel gelesen? Es geht darum, dass Uber die Prüfung umgangen hat, um Nutzer zu verfolgen – entgegen Apples Regeln und dem Willen der Nutzer. Oder darum, dass andere Apps das getan haben, um raubkopierte Software zu verbreiten
    • Auch die Haltung von Apple/Google wirkt ziemlich widersprüchlich
      Einerseits übernehmen sie in ihren jeweiligen Stores selbst die Rolle des Torwächters und behaupten beide, Endnutzer zu schützen
      Andererseits erlauben sie sich die Flexibilität, Regeln selektiv anzuwenden, wenn die betreffende App profitabel ist oder mit ihren zahlreichen anderen Produktlinien zusammenhängt
      Wer überwacht die Wächter?
    • Um die Argumentation überzeugender zu machen, wäre es gut, auch Ideen dazu hinzuzufügen, wie man Nutzer vor schlechter Software schützen kann
      Was ist der Plan dafür?
    • Ich stimme zu, bin mir aber nicht sicher, was das mit dem Artikel zu tun hat
  • Illegale Streaming-App“?
    Ich dachte, der Artikel handele davon, wie man eine Taschenlampen-App mit einem 50-Dollar-Monatsabo durchbekommt

  • Viele Apps sind einfach nur eine WebView, die eine entfernte Webseite anzeigt
    Jedes Mal, wenn der Server die Seite aktualisiert, wird auch die App aktualisiert, ganz ohne Prüfung