1 Punkte von GN⁺ 2026-03-29 | 1 Kommentare | Auf WhatsApp teilen
  • Die offizielle White-House-App auf Basis von React Native nutzt ein WordPress-Backend, Expo SDK 54 und die Hermes-Engine und fungiert als Portal für Inhalte wie Nachrichten, Fotos und Politik
  • In allen WebViews ist JavaScript-Injektionscode enthalten, der Cookie-Banner, GDPR-Einwilligungsfenster, Paywall-Elemente usw. automatisch entfernt
  • Funktionen zur Standortverfolgung und zum Nutzer-Profiling über das OneSignal SDK sind vollständig enthalten; GPS-Daten können im Abstand von 4,5 bis 9,5 Minuten erfasst werden
  • Die App lädt externe kommerzielle Dienste wie GitHub Pages, Elfsight, Mailchimp, Uploadcare, Truth Social und birgt damit Supply-Chain-Risiken und Tracking-Möglichkeiten
  • Kein SSL-Pinning, enthaltene Entwicklungsressourcen und mögliche Ausführung externen Codes werfen für eine offizielle Regierungs-App Sicherheits- und Datenschutzbedenken auf

App-Überblick

  • Die offizielle White-House-App ist eine im App Store und bei Google Play veröffentlichte Anwendung auf Basis von React Native
    • Verwendung von Expo SDK 54 und der Hermes JavaScript Engine
    • Das Backend basiert auf WordPress mit einer angepassten REST-API-Struktur
    • Laut Expo-Konfiguration ist der Hersteller als „forty-five-press“ angegeben
  • Die App-Logik ist in ein 5,5 MB großes Hermes-Bytecode-Bundle kompiliert, während der native Code nur als einfacher Wrapper dient
  • Version 47.0.1, Build 20, mit aktiviertem Hermes und aktivierter New Architecture

Expo-Konfiguration

  • Enthalten sind die beiden Plugins withNoLocation und withStripPermissions
    • Vermutlich für das Entfernen von Standortinformationen und das Strippen von Berechtigungen zuständig
  • OTA-Updates deaktiviert; die Expo-Update-Infrastruktur ist zwar enthalten, aber nicht aktiv

Tatsächliche Funktionen der App

  • Die Analyse der String-Konstanten im Hermes-Bundle zeigt, dass die App Inhalte über die WordPress-REST-API von whitehouse.gov lädt
    • Wichtige Endpunkte sind /wp-json/whitehouse/v1/home, /news/articles, /wire, /live, /galleries, /issues, /priorities, /achievements, /affordability, /media-bias, /social/x usw.
  • In den App-Strings finden sich "THE TRUMP EFFECT", "Greatest President Ever!", "Text President Trump", "Visit TrumpRx.gov", "Visit TrumpAccounts.gov"
  • Außerdem ist der Link https://www.ice.gov/webform/ice-tip-form direkt enthalten
  • Insgesamt fungiert die App als Portal für Nachrichten, Livestreams, Fotos, Politik, Social Feeds und PR-Inhalte der Administration

Skript zum Blockieren von Cookie-Bannern und Paywalls

  • In WebViews, die externe Links öffnen, wird bei jedem Seitenaufbau JavaScript-Injektionscode ausgeführt
    • Dieses Skript blendet Cookie-Banner, GDPR-Einwilligungsfenster, Login-/Registrierungsbarrieren, Upsell-/Paywall-Elemente und CMP-Boxen aus
    • body { overflow: auto !important } wird erzwungen, um Scroll-Sperren aufzuheben
    • Über MutationObserver werden auch neu hinzugefügte Einwilligungsfenster fortlaufend entfernt
  • Damit ergibt sich eine Struktur, bei der eine offizielle US-Regierungs-App Code injiziert, der Cookie-, GDPR- und Paywall-Elemente auf Websites Dritter entfernt

Infrastruktur zur Standortverfolgung

  • Trotz des Plugins withNoLocation ist der Standortverfolgungs-Code des OneSignal SDK vollständig enthalten
    • Es gibt drei Bedingungen für die Aktivierung des Trackings
      1. Das Flag _isShared ist auf true gesetzt (bei Aufruf von setLocationShared(true))
      2. Der Nutzer erlaubt zur Laufzeit die Standortberechtigung
      3. Auf dem Gerät ist ein Standortanbieter (GMS/HMS) vorhanden
    • Sind die Bedingungen erfüllt, werden GPS-Abfragen im Abstand von 4,5 Minuten (Vordergrund) bzw. 9,5 Minuten (Hintergrund) ausgeführt
    • Erfasste Daten: Breitengrad, Längengrad, Genauigkeit, Zeitstempel, Vordergrund-/Hintergrundstatus, Standortpräzision
    • Die Daten werden über das PropertiesModel von OneSignal mit dem Server synchronisiert
    • Auch ein Hintergrunddienst ist enthalten, sodass Standortdaten selbst bei inaktiver App erfasst werden können
  • Ob im JS-Bundle tatsächlich setLocationShared aufgerufen wird, ließ sich nicht verifizieren, aber die gesamte Pipeline ist in aktivierbarem Zustand kompiliert

OneSignal-Nutzerprofiling

  • Das OneSignal SDK dient nicht nur für Push-Benachrichtigungen, sondern auch für Verhaltens-Tracking und Nutzersegmentierung
    • Wichtige Funktionen: addTag, addSms, addAliases, addOutcomeWithValue, addUniqueOutcome, notificationClicked, inAppMessageClicked, permissionChanged, subscriptionChanged, userStateChanged, setPrivacyConsentRequired, setPrivacyConsentGiven usw.
    • Die lokale Datenbank protokolliert Empfang, Öffnung und Ignorieren von Benachrichtigungen
  • Dadurch werden letztlich Standortdaten, Interaktionen mit Benachrichtigungen, Klicks auf In-App-Nachrichten, Telefonnummern, Tags und Statusänderungen an die OneSignal-Server übertragen

Supply-Chain-Risiken: Laden externen Codes

  • GitHub Pages

    • Die Bibliothek react-native-youtube-iframe lädt HTML von lonelycpp.github.io
    • Wird dieses GitHub-Konto kompromittiert, kann beliebiges JavaScript innerhalb der WebView der App ausgeführt werden
  • Elfsight-Widget

    • Social Feeds werden über platform.js von Elfsight eingebettet
    • Kommerzieller SaaS-Code wird ohne Sandboxing ausgeführt; Tracking ist möglich
    • Die Widget-ID 4a00611b-befa-466e-bab2-6e824a0a98a9 ist hartkodiert
  • Weitere externe Dienste

    • Mailchimp: Verarbeitung von E-Mail-Abos (whitehouse.us10.list-manage.com)
    • Uploadcare: Bild-Hosting (ucarecdn.com)
    • Truth Social: Trump-Profil und „Follow“-Button enthalten
    • Facebook: Laden eines Seiten-Plugin-iframe
    • Alle diese Dienste sind externe kommerzielle Dienste außerhalb der Regierungsinfrastruktur

Sicherheitseinstellungen

  • Kein SSL-Zertifikat-Pinning, stattdessen Verwendung des standardmäßigen Android TrustManager
    • In öffentlichen WLANs oder Proxy-Umgebungen kann der Traffic bei MITM-Angriffen offengelegt werden

Entwicklungsreste

  • Der Produktions-Build enthält Entwicklungs-URLs und -Ressourcen
    • Strings für localhost und eine Entwickler-IP (10.4.4.109) sind vorhanden
    • Expo-Entwickler-Clients (expo-dev-client, expo-devlauncher, expo-devmenu) sind enthalten
    • Die Ressource dev_menu_fab_icon.png ist vorhanden
    • Eine Compose-PreviewActivity ist im Manifest als exportiert enthalten

Berechtigungsstruktur

  • Das AndroidManifest enthält neben üblichen Benachrichtigungsberechtigungen auch zahlreiche Launcher-Badge-Berechtigungen (Samsung, HTC, Sony usw.)
  • In den Runtime-Request-Strings finden sich Berechtigungen für präzisen Standort, ungefähren Standort und Hintergrundstandort
  • In der Google-Play-Beschreibung werden außerdem folgende Berechtigungen genannt
    • „Gemeinsamen Speicher ändern/löschen“, „Foreground-Service ausführen“, „Über anderen Apps anzeigen“, „Beim Start ausführen“, „Fingerabdruck-/biometrische Hardware verwenden“
  • Die FileProvider-Konfiguration legt das gesamte Root des externen Speichers offen und wird für WebView-Dateizugriffe verwendet

Liste der enthaltenen SDKs

  • Insgesamt sind mehr als 68 Bibliotheken enthalten
    • Frameworks: React Native, Expo SDK 54, Hermes
    • Push/Engagement: OneSignal, Firebase Cloud Messaging, Firebase Installations
    • Analytics/Telemetrie: Firebase Analytics, Google Data Transport, OpenTelemetry
    • Netzwerk: OkHttp3, Apollo GraphQL, Okio
    • Bilder: Fresco, Glide, Coil 3, Uploadcare CDN
    • Video: ExoPlayer(Media3), Expo Video
    • ML: Google ML Kit Vision (Barcode-Scanning), Barhopper-Modell
    • Kryptografie: Bouncy Castle
    • Speicher: Expo Secure Store, React Native Async Storage
    • WebView: React Native WebView (mit Injektionsskript)
    • DI: Koin
    • Serialisierung: GSON, Wire(Protocol Buffers)
    • Lizenzprüfung: PairIP (für Google-Play-Verifikation)
  • Der arm64-Build enthält 25 native .so-Bibliotheken

1 Kommentare

 
GN⁺ 2026-03-29
Hacker-News-Kommentare
  • Der Artikel wirkte etwas verdächtig, als wäre er von einer KI geschrieben
    Aus Neugier habe ich die App selbst installiert, aber anders als im Artikel behauptet wurde, gab es überhaupt keine Anfrage nach Standortberechtigungen
    Ich habe die APK mit Claude Code dekompiliert, aber dieses Tool ist bei Reachability-Analysen oder dem Verständnis komplexer Kontrollflüsse eher schwach
    Nicht aufgerufener Dead Code wird dabei so behandelt, als wären es tatsächlich genutzte Funktionen, was zu Missverständnissen führt

    • Auch in der im Artikel gezeigten Berechtigungsliste gab es keine Standortberechtigung
      Wenn der Standort zur Laufzeit abgefragt werden soll, muss das zwingend deklariert sein, und genau das fehlt
      Auf meinem Handy — möglicherweise wegen Graphene — hat Play die Installation blockiert, daher konnte ich die APK nicht direkt prüfen
      Im Play Store unter „Info → Berechtigungen“ sieht man bei Version 47.0.1 nur übliche Berechtigungen wie Netzwerkzugriff, Vibrationssteuerung und Benachrichtigungen anzeigen
      Vermutlich handelt es sich um einen Version-Rollout oder gerätespezifisches Targeting
    • Ich frage mich, ob es konkrete Anhaltspunkte dafür gibt, dass es „wie von einer KI geschrieben“ wirkt
      Für mich fühlte es sich nicht so an
    • Im Artikel wurde nicht behauptet, dass die App Standortberechtigungen anfordert, sondern erklärt, dass man mit einer Zeile JS den Standort abrufen kann
    • Vielleicht ist die App-Version anders?
      Im iPhone App Store wurde Version 47.0.1 vor 34 Minuten hochgeladen und als „kleine Bugfixes“ beschrieben
      Möglicherweise enthielten diese Fixes auch standortbezogenen Code
    • Ich frage mich, ob die App beim Dekompilieren irreführende Informationen angezeigt haben könnte
  • Es wirkte wie die typische Marketing-App einer Beratungsfirma
    Offenbar hat ein externer Entwickler eine Standardarchitektur verwendet, bei der Dinge wie Standort-Tracking-Code standardmäßig mit enthalten sind

    • Der Standort-Tracking-Code steckt im OneSignal SDK
      Das ist nur eine Plattform für Push-Benachrichtigungen, also passiert gar nichts, solange die App nicht selbst die Berechtigung anfordert
    • 45Press ist so eine Firma
      Sie haben offenbar einen Unterstützungsvertrag rund um das Weiße Haus erhalten (im Umfang von etwa 1,5 Millionen Dollar) und diese App daraufhin gebaut
    • Schade, dass es nicht noch den US Digital Service wie früher gibt, dann hätte man so etwas vermutlich ordentlich bauen können
      Inzwischen ist er fast aufgelöst, wurde in eine Organisation namens DOGE umgewandelt und ist in mehrere Klagen verwickelt
      Wikipedia-Artikel zum United States Digital Service
    • r8 versteht React-Native-Code nicht richtig und schafft deshalb Dead-Code-Eliminierung (Tree Shaking) nicht ordentlich
      Deshalb scheinen Spuren von Wiederverwendung aus anderen Apps zurückgeblieben zu sein
    • Beim Schriftzug „Visit TrumpRx.gov“ habe ich kurz gestutzt
      Ich frage mich, ob eine .gov-Domain für kommerzielle Werbung verwendet werden darf
  • Falls der Artikel stimmt, wäre das ein Ereignis, das das symbolische Ende der Freiheit markieren würde
    Es fühlt sich an, als würden die Werte verschwinden, auf die die USA einmal stolz waren

  • Es überrascht mich, dass eine offizielle Regierungs-App auf Dritt-Websites CSS und JavaScript einschleust, um Cookie-Banner oder Paywalls zu entfernen
    Ich würde keine inoffizielle Regierungs-App installieren, aber die Funktion selbst wirkt auf mich positiv, fast wie uBlock

  • Die Seite war so langsam, dass sie praktisch unbenutzbar war
    Auf meinem MacBook Pro von 2019 mit Chrome hat das Scrollen extrem geruckelt

    • Auch in Firefox 149 (Windows 10) war das Scrollen katastrophal
      Ironischerweise zeigt ein Artikel, der Webentwicklung kritisiert, genau solche Web-Performance-Probleme
    • Auch in Firefox Mobile (151.0a1) war das Scrollen so ruckelig, dass das Lesen schwerfiel
    • Auf einem ThinkPad mit Chrome trat dasselbe Phänomen auf
    • Ich stimme zu, dass die Webqualität der Originalseite miserabel ist
    • Unter Android 14 mit Firefox 148.0.2 funktionierte es normal
  • Die Kritik am fehlenden Certificate Pinning wirkt auf mich etwas übertrieben
    Selbst wenn man sich in einem Netzwerk befindet, in dem ein MITM-Angriff möglich ist, gibt es einfach einen TLS-Fehler, solange mein Gerät dieser CA nicht vertraut

    • Anders sieht es aus, wenn jemand ein Zertifikat erhält, das von einer CA signiert ist, der mein Handy vertraut
      Man könnte sich etwa ein Café in der Nähe einer Botschaft in einem Land vorstellen, in dem Überwachung zum Alltag gehört und dort der Verkehr abgefangen wird
      Das ist selten, aber nicht völlig unmöglich
    • In Organisationen mit MDM gibt es Ausnahmen, weil sie ihre eigene CA auf Geräte pushen können
    • Diese Diskussion basiert ohnehin auf veralteten Sicherheitspraktiken und hat heute nicht mehr besonders viel Bedeutung
  • Diese Seite ist so schwergewichtig, dass der Browser fast einfriert
    Ich konnte sie eigentlich nur im Lesemodus lesen

    • Ich hatte dasselbe Problem
      Ich dachte erst, es läge an meinem Tablet, aber interessant, dass andere dasselbe erlebt haben
  • Beim Scrollen ist die GPU stark ausgelastet, daher ist der Grafikressourcenverbrauch hoch

  • Im Weißen Haus scheinen Gesetzesverstöße inzwischen Alltag zu sein

  • Ich bin von Anfang an davon ausgegangen, dass es Malware ist, und genau das hat sich bestätigt