- White House iOS ऐप के वास्तविक HTTPS ट्रैफ़िक को MITM proxy से capture करके यह विश्लेषण किया गया कि वह किन सर्वरों और किन डेटा के साथ संचार करती है
- ऐप whitehouse.gov के अलावा Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook, Twitter समेत 31 third-party hosts के साथ संचार करती है
- OneSignal को भाषा, time zone, IP, device model, session count जैसी user profiling जानकारी लगातार भेजी जाती है
- Elfsight widget loader के ज़रिए बाहरी scripts चलती हैं, और Google DoubleClick ad tracking code भी ऐप के भीतर चलता है
- ऐप के privacy manifest में “कोई डेटा संग्रह नहीं” दिखाया गया है, लेकिन वास्तव में कई third-party tracking और data transfer होते हैं
नेटवर्क ट्रैफ़िक विश्लेषण का अवलोकन
- White House की आधिकारिक iOS ऐप के नेटवर्क ट्रैफ़िक को MITM (man-in-the-middle) proxy से capture करके विश्लेषण किया गया
- macOS वातावरण में mitmproxy इंस्टॉल किया गया, और iPhone के सभी HTTPS ट्रैफ़िक को proxy के माध्यम से रिकॉर्ड किया गया
- ऐप संस्करण v47.0.4 (build 81) था, और Home, News, Live, Social, Explore टैब सभी खोले गए
- ट्रैफ़िक को बिना किसी छेड़छाड़ के decrypt और record किया गया, और सामान्य user usage pattern के अनुसार ही परीक्षण किया गया
ऐप ने किन सर्वरों से संपर्क किया
- एक single session में ऐप ने 31 unique hosts को requests भेजीं (iOS system traffic को छोड़कर)
- कुल 206 requests में से केवल 48 (23%) whitehouse.gov को भेजी गईं
- बाकी 158 (77%) Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook, Twitter जैसे third-party services को भेजी गईं
- प्रमुख request destinations
- whitehouse.gov: WordPress API (news, home, gallery आदि)
- YouTube: video embeds और thumbnails
- Elfsight: widget loading, static assets, file storage, boot API आदि
- OneSignal: analytics और user profiling
- Facebook/Twitter CDN: image loading
- Google APIs और DoubleClick: ads और tracking
OneSignal को भेजा जाने वाला डेटा
- ऐप launch होने पर
api.onesignal.com को HTTPS request body भेजी जाती है
- शामिल जानकारी: भाषा, time zone, country, IP address, first launch और last active time, device model, OS version, network type (WiFi/cellular), carrier, jailbreak status, session count, session duration, unique identifier
- हर app launch पर profile update करने के लिए कई PATCH requests भेजी जाती हैं
- पहली launch पर 18 PATCH requests, और पूरे session में 9 OneSignal requests दर्ज की गईं
- क्रम: मौजूदा profile को GET से लाना → session जानकारी को PATCH से update करना
- OneSignal हर session का IP, activity time, session count, session duration लगातार रिकॉर्ड करता है
- IP address बदलने पर profile update होती है
first_active timestamp install होने के बाद नहीं बदलता
- नतीजतन OneSignal प्रत्येक user के लिए persistent profile बनाए रखता है और app usage pattern व network environment को track करता है
- ट्रैफ़िक का User-Agent था
WhiteHouse/81 CFNetwork/3860.400.51 Darwin/25.3.0
Elfsight से संबंधित ट्रैफ़िक
- static analysis में मिले 6 widgets और 2-stage JavaScript loader वास्तविक ट्रैफ़िक में भी दिखे
- Social टैब खोलने पर ऐप 13 Elfsight domains से संपर्क करती है
elfsightcdn.com, core.service.elfsight.com, static.elfsight.com, storage.elfsight.com, widget-data.service.elfsight.com, video-proxy.wu.elfsightcompute.com आदि
/p/boot/ request के माध्यम से हर widget ID भेजने पर server चलाए जाने वाले scripts की सूची (assets array) लौटाता है
- उदाहरण: TikTok →
tiktokFeed.js, Instagram → instashow.js, Facebook → facebookFeed.js, YouTube → yottie.js
- ऐप का
loadAssets function हर URL को <script> के रूप में insert करके execute करता है
- यह संरचना server को तय करने देती है कि कौन-सा code चलेगा
- Elfsight server session के दौरान 10 से अधिक cookies सेट करता है
- इनमें
elfsight_viewed_recently, Cloudflare tracking cookies (_cfuvid, __cf_bm), session identifiers आदि शामिल हैं
Google DoubleClick ad tracking
- YouTube embed होने पर Google ad tracking infrastructure भी साथ में load होता है
googleads.g.doubleclick.net, static.doubleclick.net requests की पुष्टि हुई
- DoubleClick Google का ad serving और tracking platform है,
White House की आधिकारिक ऐप के भीतर ad tracking code execute होता है
- ऐप के privacy manifest में इसका उल्लेख नहीं है
privacy manifest और वास्तविक व्यवहार में असंगति
विश्लेषण की कार्यप्रणाली
- proxy tool: mitmproxy (mitmdump)
- environment: macOS, iPhone(iOS), same WiFi network
- certificate: mitmproxy CA को iOS trust settings में जोड़ा गया
- capture scope: ऐप के 5 टैब browse करते समय उत्पन्न HTTPS ट्रैफ़िक
- tampering: नहीं, ट्रैफ़िक का केवल अवलोकन किया गया
- privacy handling: IP, device identifiers, OneSignal ID आदि पोस्ट में पूरी तरह mask किए गए
- कोई server intrusion या tampering नहीं, केवल ऐप की स्वैच्छिक communications रिकॉर्ड की गईं
संबंधित शोध
- White House iOS ऐप की static analysis report
- Android version का Thereallo analysis result
Atomic Computer परिचय
- Atomic Computer एक कंपनी है जो cyber security, infrastructure, और development services प्रदान करती है
- यह mobile app security assessment और analysis services भी करती है
1 टिप्पणियां
Hacker News टिप्पणियाँ
कुल 3rd-party requests में 43% Google से संबंधित हैं (YouTube, Fonts, Analytics सहित), और Facebook व Twitter को मिलाकर यह लगभग 55% हो जाता है
सरकारी app में अत्यधिक tracking या analytics code होना समस्या है, लेकिन Google Fonts या YouTube embed उतने गंभीर नहीं लगते
शीर्षक देखकर Palantir या ICE जैसे किसी चौंकाने वाले domain की उम्मीद थी, लेकिन Google/Facebook निकला, तो बात कुछ फीकी लगी
शीर्षक सिर्फ “77% 3rd-party requests” कहने के बजाय, requests की प्रकृति और गंभीरता पर केंद्रित होना चाहिए
वैसे atomic.computer भी Google Fonts और Analytics इस्तेमाल करता है। 3rd-party requests को अपने-आप में बुरा ठहराने से पहले अपनी site भी देख लेनी चाहिए
आखिरकार वे app के ज़रिए किस data को track करना है, यह खुद तय कर सकते हैं, और सामान्य tracking providers के ज़रिए data को मानो साफ़-सुथरा बनाकर इकट्ठा भी कर सकते हैं
Google से जुड़ी requests शायद transparency के लिए शामिल की गई थीं, White House app को कोसने के इरादे से नहीं
atomic.computer ने यह नहीं कहा कि 3rd-party requests स्वभावतः बुरी हैं, बल्कि उन्हें data collection और tracking के माध्यम के रूप में विश्लेषित किया है
user यह नियंत्रित नहीं कर सकता कि data इकट्ठा होने के बाद उसका उपयोग कैसे होगा, और असली समस्या यही नियंत्रण का अभाव है
कहा गया कि mitmproxy को Mac पर install करके iPhone traffic को उधर route किया गया और HTTPS को decrypt किया गया
जिज्ञासा हुई कि iPhone पर user certificate को trust करवाना क्या इतना आसान है
Android में network traffic को देखना काफ़ी झंझटभरा होता है
ऐसे प्रयोग अच्छी तरह दिखाते हैं कि device पर नियंत्रण हमारे पास होना चाहिए। यह जानने का अधिकार होना चाहिए कि data कहाँ और किस रूप में भेजा जा रहा है
पहले Zoom के China को traffic भेजने वाले मामले या Facebook के in-app browsing data tracking की बात भी याद आती है
हाँ, अगर app अपना OpenSSL इस्तेमाल करे या certificate pinning लागू करे, तो वह अलग बात है
Facebook या Twitter जैसे बड़े apps ज़्यादातर pinning इस्तेमाल करते हैं, लेकिन ऐसे सरल apps अक्सर नहीं करते
लेकिन pinning वाले apps को bypass करना कठिन होता है, और custom app installation की सुविधा वाले platform ज़्यादा अनुकूल होते हैं
banking apps जैसे pinning-strong मामलों में rooted device की ज़रूरत पड़ती है
यह कल्पना भी आती है कि शायद उनका उपयोग deepfake training data के रूप में हुआ हो
इससे जुड़ी पहले की discussion threads मौजूद हैं
पिछली चर्चा 1, पिछली चर्चा 2
मैं ज़्यादातर ad domains (जैसे doubleclick.net) को DNS स्तर पर block करता हूँ
यह चौंकाने वाला है कि news sites समेत अधिकांश websites इतनी सारी 3rd-party connections खोलती हैं
atomic.computer भी Cloudflareinsights और Google Fonts लोड करने की कोशिश करता है, लेकिन मेरे network में वे block हो जाते हैं
यही requests Google को users को पूरे इंटरनेट पर track करने में सक्षम बनाने का बड़ा कारण हैं
सरकारी apps पर सामान्य B2C apps की तुलना में काफ़ी ऊँचा मानक लागू होना चाहिए
Google Fonts लोड करना ठीक है, लेकिन OneSignal या Facebook को telemetry भेजना बिल्कुल अलग बात है
Australia में PSPF और ISM नियमों के तहत सरकारी data को अविश्वसनीय बाहरी गंतव्य पर नहीं भेजा जाना चाहिए
ऐसे apps IRAP evaluation में तुरंत fail हो जाएँगे
समाधान सरल है — fonts self-host करें, analytics को 1st-party रखें, और external requests को data exfiltration vector माना जाए
अधिकांश B2C apps में भी 3rd-party requests का अनुपात 50% से अधिक होता है
White House app का 77% चौंकाने वाला नहीं था, लेकिन App Store के data collection disclosure को ग़लत भरना समस्या थी
बाद में उसे ठीक कर दिया गया और अब सही तरह से दिखाया जा रहा है
सरकारी apps के लिए ऊँचा standard होना चाहिए, लेकिन 77% का आँकड़ा शायद industry average से बहुत अलग न हो
बहुत सारे apps में ad code और trackers होते हैं, इसलिए यह काफ़ी सामान्य स्तर भी हो सकता है
app जिन SDKs का उपयोग करता है, उनकी सूची AppGoblin पर देखी जा सकती है
Privacy manifest में “कोई data collection नहीं” लिखा है, लेकिन वास्तव में OneSignal को device model, IP, session count, tracking ID भेजे जाते हैं
यह साफ़ तौर पर false attestation का मामला है
अगला कदम शायद ads जोड़ना होगा