1 पॉइंट द्वारा GN⁺ 2026-03-29 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • React Native आधारित व्हाइट हाउस की आधिकारिक ऐप WordPress backend, Expo SDK 54 और Hermes engine का उपयोग करती है, और news, photos, policy आदि content देने वाले portal के रूप में काम करती है
  • सभी WebView में JavaScript injection code शामिल है, जो cookie banner, GDPR consent popup, paywall elements आदि को अपने-आप हटा देता है
  • OneSignal SDK के ज़रिए location tracking और user profiling की क्षमता पूरी तरह शामिल है, और GPS data को 4.5 मिनट से 9.5 मिनट के अंतराल पर एकत्र किया जा सकता है
  • ऐप GitHub Pages, Elfsight, Mailchimp, Uploadcare, Truth Social जैसी बाहरी commercial services लोड करती है, जिससे supply chain risk और tracking की संभावना बनी रहती है
  • SSL pinning का अभाव, development resources का शामिल होना, और external code execution की संभावना जैसी वजहों से इसे सरकारी आधिकारिक ऐप के रूप में security और privacy के लिहाज़ से चिंताजनक माना जा रहा है

ऐप का अवलोकन

  • White House आधिकारिक ऐप App Store और Google Play पर उपलब्ध React Native आधारित application है
    • Expo SDK 54 और Hermes JavaScript engine का उपयोग करती है
    • backend WordPress आधारित custom REST API संरचना पर बना है
    • Expo configuration के अनुसार निर्माता “forty-five-press” के रूप में दर्ज है
  • ऐप logic 5.5MB आकार के Hermes bytecode bundle में compile की गई है, जबकि native code केवल साधारण wrapper जैसा है
  • version 47.0.1, build 20 है, और Hermes तथा New Architecture enabled हैं

Expo configuration

  • इसमें दो plugins withNoLocation और withStripPermissions शामिल हैं
    • अनुमान है कि ये location removal और permission stripping से जुड़े हैं
  • OTA updates disabled हैं, हालांकि Expo updates infrastructure शामिल है लेकिन काम नहीं करता

ऐप की वास्तविक functionality

  • Hermes bundle string analysis के अनुसार, ऐप whitehouse.gov के WordPress REST API के माध्यम से content लोड करती है
    • मुख्य endpoints हैं /wp-json/whitehouse/v1/home, /news/articles, /wire, /live, /galleries, /issues, /priorities, /achievements, /affordability, /media-bias, /social/x आदि
  • ऐप के strings में "THE TRUMP EFFECT", "Greatest President Ever!", "Text President Trump", "Visit TrumpRx.gov", "Visit TrumpAccounts.gov" आदि शामिल हैं
  • साथ ही https://www.ice.gov/webform/ice-tip-form लिंक सीधे शामिल है
  • कुल मिलाकर यह news, live streams, photos, policy, social feeds, और administration promotion content देने वाला portal है

cookie·paywall blocking script

  • बाहरी links खोलने वाले WebView में हर page load पर JavaScript injection code चलाया जाता है
    • यह script cookie banner, GDPR consent popup, login/signup wall, upsell·paywall elements, CMP box आदि को छिपाती है
    • body { overflow: auto !important } को force करके scroll lock हटाती है
    • MutationObserver के ज़रिए बाद में जुड़ने वाले consent popups भी लगातार हटाए जाते हैं
  • नतीजतन अमेरिकी सरकार की आधिकारिक ऐप third-party websites के cookie·GDPR·paywall elements हटाने वाला code inject करती है

location tracking infrastructure

  • withNoLocation plugin मौजूद होने के बावजूद OneSignal SDK का location tracking code पूरी तरह शामिल है
    • tracking enable होने की तीन शर्तें हैं
      1. _isShared flag true पर set हो (setLocationShared(true) call होने पर)
      2. user runtime पर location permission दे
      3. device में location provider (GMS/HMS) मौजूद हो
    • शर्तें पूरी होने पर 4.5 मिनट (foreground) और 9.5 मिनट (background) के अंतराल पर GPS request होती है
    • एकत्र data: latitude, longitude, accuracy, timestamp, foreground/background status, location precision
    • data OneSignal के PropertiesModel के माध्यम से server पर sync किया जाता है
    • background service भी शामिल है, इसलिए ऐप inactive होने पर भी location capture संभव है
  • JS bundle में setLocationShared call होती है या नहीं, यह पुष्टि नहीं हो सकी, लेकिन पूरा pipeline activate होने लायक स्थिति में compile किया गया है

OneSignal user profiling

  • OneSignal SDK केवल push notifications तक सीमित नहीं है, बल्कि user behavior tracking और segmentation features भी करता है
    • मुख्य functions: addTag, addSms, addAliases, addOutcomeWithValue, addUniqueOutcome, notificationClicked, inAppMessageClicked, permissionChanged, subscriptionChanged, userStateChanged, setPrivacyConsentRequired, setPrivacyConsentGiven आदि
    • local DB notification receive·open·dismiss status रिकॉर्ड करता है
  • परिणामस्वरूप location, notification interaction, in-app message clicks, phone number, tags, state changes आदि OneSignal server पर भेजे जाते हैं

supply chain risk: external code loading

  • GitHub Pages

    • react-native-youtube-iframe library lonelycpp.github.io से HTML लोड करती है
    • अगर वह GitHub account compromise हो जाए, तो मनमाना JavaScript ऐप WebView के भीतर चलाया जा सकता है
  • Elfsight widget

    • Elfsight का platform.js social feed embed करने के लिए इस्तेमाल होता है
    • commercial SaaS code बिना sandboxing के चलता है, और tracking की संभावना मौजूद है
    • widget ID 4a00611b-befa-466e-bab2-6e824a0a98a9 hardcoded है
  • अन्य external services

    • Mailchimp: email subscription processing (whitehouse.us10.list-manage.com)
    • Uploadcare: image hosting (ucarecdn.com)
    • Truth Social: Trump profile और “Follow” button शामिल
    • Facebook: page plugin iframe लोड किया जाता है
    • ये सभी सरकारी infrastructure नहीं बल्कि external commercial services हैं

security configuration

  • SSL certificate pinning नहीं है, standard Android TrustManager का उपयोग होता है
    • public Wi‑Fi या proxy environment में MITM attack की स्थिति में traffic expose हो सकता है

development leftovers

  • production build में development URLs और resources शामिल हैं
    • localhost और developer IP (10.4.4.109) strings मौजूद हैं
    • Expo development client (expo-dev-client, expo-devlauncher, expo-devmenu) शामिल हैं
    • dev_menu_fab_icon.png resource मौजूद है
    • Compose PreviewActivity manifest में export की हुई स्थिति में शामिल है

permission structure

  • AndroidManifest में सामान्य notification-केंद्रित permissions के अलावा कई launcher badge permissions (Samsung, HTC, Sony आदि) शामिल हैं
  • runtime request strings में precise location, approximate location, background location permissions मौजूद हैं
  • Google Play description में ये permissions भी दर्ज हैं
    • “shared storage में modification/deletion”, “foreground service चलाना”, “other apps के ऊपर display”, “boot पर run”, “fingerprint·biometric hardware का उपयोग”
  • FileProvider configuration पूरे external storage root को expose करती है, जिसका उपयोग WebView file access में होता है

शामिल SDKs की सूची

  • कुल 68 से अधिक libraries शामिल हैं
    • frameworks: React Native, Expo SDK 54, Hermes
    • push/engagement: OneSignal, Firebase Cloud Messaging, Firebase Installations
    • analytics/telemetry: Firebase Analytics, Google Data Transport, OpenTelemetry
    • networking: OkHttp3, Apollo GraphQL, Okio
    • images: Fresco, Glide, Coil 3, Uploadcare CDN
    • video: ExoPlayer(Media3), Expo Video
    • ML: Google ML Kit Vision (barcode scanning), Barhopper model
    • cryptography: Bouncy Castle
    • storage: Expo Secure Store, React Native Async Storage
    • WebView: React Native WebView (injection script सहित)
    • DI: Koin
    • serialization: GSON, Wire(Protocol Buffers)
    • license verification: PairIP (Google Play verification के लिए)
  • arm64 build में 25 native .so libraries शामिल हैं

1 टिप्पणियां

 
GN⁺ 2026-03-29
Hacker News की राय
  • लेख की सामग्री AI द्वारा लिखी हुई जैसी लगी, इसलिए थोड़ा शक हुआ
    जिज्ञासा में मैंने ऐप खुद इंस्टॉल करके देखा, लेकिन लेख के दावे के विपरीत इसने location permission बिल्कुल नहीं मांगी
    मैंने Claude Code से APK decompile किया, लेकिन यह टूल reachability analysis या जटिल control flow समझने में कमजोर है
    यह call न होने वाले dead code को भी ऐसे दिखाता है जैसे वे वास्तव में इस्तेमाल हो रहे functions हों, जिससे गलतफहमी पैदा होती है

    • लेख में दी गई permissions की सूची में भी location permission नहीं थी
      runtime में location मांगने के लिए उसका declaration अनिवार्य होता है, और वह हिस्सा मौजूद नहीं है
      मेरे फोन पर (शायद Graphene की वजह से) Play ने installation रोक दिया, इसलिए मैं APK को सीधे जांच नहीं सका
      Play Store के “जानकारी → permissions” सेक्शन में 47.0.1 version के लिए सिर्फ सामान्य permissions दिखती हैं, जैसे network access, vibration control, notifications दिखाना आदि
      संभव है कि यह version rollout या device-specific targeting का मामला हो
    • “AI ने लिखा है” ऐसा कहने के लिए कोई ठोस आधार है क्या, यह जानना चाहता हूँ
      मुझे ऐसा नहीं लगा
    • लेख यह नहीं कह रहा था कि ऐप location permission मांगती है, बल्कि यह समझा रहा था कि JS की एक लाइन से location ली जा सकती है
    • क्या हो सकता है कि app version अलग हो?
      iPhone App Store के अनुसार 47.0.1 version 34 मिनट पहले आया था, और उसमें “minor bug fixes” लिखा है
      शायद उसी fix में location-related code शामिल किया गया हो
    • क्या decompile प्रक्रिया के दौरान यह संभव है कि ऐप ने गलत जानकारी दिखाई हो, यह जानने की उत्सुकता है
  • यह एक सामान्य consulting company के marketing app जैसा लगा
    लगता है outsourced developer ने standard architecture इस्तेमाल किया और location tracking code जैसी चीजें default में शामिल रहीं

    • location tracking code OneSignal SDK के अंदर शामिल है
      यह सिर्फ push notifications के लिए platform है, इसलिए जब तक ऐप खुद permission request नहीं करती, कुछ नहीं होता
    • 45Press वैसी ही कंपनी है
      लगता है उसने White House से जुड़ा support contract (लगभग 15 लाख डॉलर का) हासिल किया और यह ऐप बनाया
    • काश पहले की तरह US Digital Service बची रहती, तो शायद यह चीज़ ठीक से बन सकती थी
      अब वह लगभग खत्म कर दी गई है और उसकी जगह DOGE नाम का संगठन आ गया है, जो कई मुकदमों में उलझा है
      United States Digital Service wiki article
    • r8 React Native code को ठीक से समझ नहीं पाता, इसलिए dead code removal (tree shaking) सही ढंग से नहीं कर पाता
      इसलिए लगता है कि दूसरे apps से reuse किए गए हिस्सों के निशान रह गए हैं
    • “Visit TrumpRx.gov” वाक्य देखकर मैं चौंक गया
      .gov domain को commercial promotion के लिए इस्तेमाल किया जा सकता है या नहीं, इस पर सवाल है
  • अगर लेख की बात सच है, तो यह स्वतंत्रता के प्रतीकात्मक अंत जैसी घटना होगी
    ऐसा लगता है जैसे अमेरिका जिन मूल्यों पर गर्व करता था, वे गायब हो रहे हैं

  • यह बात चौंकाने वाली है कि सरकारी official app तीसरे पक्ष की websites में CSS और JavaScript inject करके cookie banners या paywall हटाती है
    मैं खुद कोई private government app इंस्टॉल नहीं करूंगा, लेकिन यह feature uBlock की तरह सकारात्मक भी लगती है

  • साइट इतनी धीमी थी कि उसका इस्तेमाल करना लगभग असंभव था
    मेरे 2019 MacBook Pro + Chrome environment में scroll बहुत बुरी तरह अटक रहा था

    • Firefox 149 (Windows 10) में भी scrolling की हालत खराब थी
      विडंबना यह है कि web development की आलोचना करने वाला लेख खुद ऐसी web performance problem दिखा रहा था
    • mobile Firefox(151.0a1) में भी scroll इतना अटक रहा था कि पढ़ना मुश्किल था
    • ThinkPad + Chrome environment में भी वही समस्या हुई
    • मैं इस बात से सहमत हूँ कि मूल साइट की web quality बहुत खराब है
    • Android 14 + Firefox 148.0.2 में यह सामान्य रूप से काम कर रही थी
  • certificate pinning न होने की आलोचना थोड़ी बढ़ा-चढ़ाकर कही गई लगती है
    अगर मैं ऐसे network पर भी हूँ जहाँ MITM attack संभव है, तब भी अगर मेरा device उस CA पर भरोसा नहीं करता, तो सिर्फ TLS error आएगी

    • लेकिन अगर कोई मेरे फोन द्वारा trusted CA से signed certificate जारी करवा ले, तो बात अलग होगी
      उदाहरण के लिए, किसी ऐसे देश के दूतावास के पास किसी cafe में traffic intercept होने की कल्पना की जा सकती है जहाँ surveillance आम बात हो
      ऐसा कम होता है, लेकिन पूरी तरह असंभव भी नहीं है
    • MDM इस्तेमाल करने वाले संगठनों में अपवाद हो सकता है, क्योंकि वे devices पर अपना CA push कर सकते हैं
    • यह पूरी चर्चा पहले से ही पुरानी security practices पर आधारित है, इसलिए आज के संदर्भ में इसकी बहुत अधिक अहमियत नहीं है
  • यह साइट इतनी भारी है कि browser जाम होने जैसा हो जाता है
    मैं इसे सिर्फ reader mode में ही किसी तरह पढ़ पाया

    • मैंने भी यही अनुभव किया
      पहले लगा tablet की समस्या है, लेकिन दूसरों को भी ऐसा हुआ यह दिलचस्प है
  • scroll करते समय GPU पर बहुत लोड पड़ता है, इसलिए graphics resource usage बहुत अधिक है

  • आजकल White House में कानून का उल्लंघन जैसे आम बात हो गई है

  • मैंने शुरू से ही मान लिया था कि यह malware होगा, और मेरा अनुमान सही निकला