Android में Localhost का उपयोग करने वाली गुप्त web-app tracking तकनीक का खुलासा
(localmess.github.io)- यह सामने आया है कि Meta (Facebook) और Yandex जैसे प्रमुख apps ने Android में local port (127.0.0.1) का उपयोग करके web browser और native app के बीच identifiers और cookies को गुप्त रूप से साझा किया
- वेबसाइटों में एम्बेड की गई Facebook Pixel, Yandex Metrica scripts Android browser से native apps (Facebook, Instagram, Yandex परिवार के apps) तक browsing session और identifiers सीधे भेजती थीं, जिससे user identification और de-anonymization संभव हो गया
- यह तरीका cookie deletion, incognito mode, permission settings, ad ID reset जैसी मौजूदा privacy protections को पूरी तरह bypass करता है, और अगर कोई malicious app सिर्फ सही port पर listen करे तो browser visit history collection भी संभव है
- 3 जून 2025 को खुलासे के बाद Facebook ने संबंधित code का अधिकांश हिस्सा हटा दिया, लेकिन यह तकनीक कई वर्षों तक दुनिया भर के सैकड़ों मिलियन Android devices पर इस्तेमाल होती रही। Yandex 2017 से इसी तरह का तरीका लगातार उपयोग कर रहा है
- Chrome, Firefox, Brave जैसे प्रमुख browsers ने आपातकालीन blocking measures लागू किए, लेकिन platform की संरचनात्मक सीमाओं के कारण पूर्ण मूलभूत समाधान अभी भी अपर्याप्त हैं, और Android IPC तथा local network security को मजबूत करने की जरूरत पर जोर दिया गया
Disclosure: Localhost के जरिए गुप्त web-app tracking तकनीक
- शोधकर्ताओं ने पाया कि Meta और Yandex अरबों Android users को लक्ष्य बनाकर, native apps में तय local ports (जैसे 12580~12585, 29009~30103) बैकग्राउंड में खुले रखते थे और web में चलने वाले JavaScript के साथ communicate करते थे
- इसके जरिए web browser के cookies, metadata और usage history native app तक पहुंचाए जाते थे, और app account information तथा Android Advertising ID के साथ जोड़कर user identity को web visits से लिंक किया जाता था
How does this work?
Android के local ports का दुरुपयोग
- Android OS में जिस भी app के पास INTERNET permission हो, वह 127.0.0.1 (loopback) पर socket खोल सकता है
- browser भी बिना किसी अलग user consent के इस interface तक पहुंच सकता है
- वेबसाइट में एम्बेड JavaScript browser और native app के बीच standard Web API का उपयोग करके data send/receive कर सकता है
Meta/Facebook Pixel का web-app linking तरीका
- जब Meta Pixel JavaScript Android browser में load होती है, तो वह _fbp cookie value को WebRTC के STUN packets (UDP 12580–12585 ports) के जरिए native app तक भेजती है
- डिवाइस में मौजूद Facebook, Instagram apps (version के अनुसार 515.0.0.23.90/382.0.0.43.84 आदि) उन ports पर listen करते हैं, browser से आया _fbp value प्राप्त करके उसे अपने server पर GraphQL से भेजते हैं
- _fbp शीर्ष 10 लाख websites में लगभग 25% पर मौजूद एक प्रमुख cookie है। पहले यह site-specific होने के कारण cross-tracking कठिन था, लेकिन इस तरीके से user के कई _fbp values को एक account से match किया जा सकता है
- मई 2025 के बाद WebRTC TURN तरीका भी जोड़ा गया, और script को SDP Munging technique से बचने के लिए बदला गया
- _fbp cookie 90 दिनों तक बनी रहती है और शीर्ष websites के लगभग 25% में उपयोग होती है
- Chrome आदि प्रमुख browsers की प्रतिक्रिया के बाद 3 जून को code हटा दिया गया
Yandex Metrica का web-app linking तरीका
- Yandex Metrica script 2017 से HTTP(S) के जरिए local ports (29009, 29010, 30102, 30103 आदि) पर requests भेज रही थी
- Yandex apps (Yandex Maps, Navigator, Browser, Search आदि) इन ports को खोलकर रखते थे, और incoming request के जवाब में Base64-encoded Android Advertising ID (AAID) तथा अन्य device identifiers, UUID आदि शामिल data लौटाते थे
- browser script इस जानकारी को इकट्ठा करके फिर Yandex servers को भेजती थी, जिससे browser-app-server के बीच identifier linking पूरी हो जाती थी
- yandexmetrica.com domain को 127.0.0.1 पर resolve किया जाता था ताकि detection से बचा जा सके और collection flow छिपा रहे
- localhost HTTP के उपयोग के कारण, यदि कोई दूसरा app उसी port पर listen करे तो user की website visit history उजागर होने का जोखिम भी है
वास्तविक जोखिम: browser visit history का लीक होना
- HTTP-आधारित local communication का उपयोग होने पर, कोई भी मनमाना Android app यदि उस port पर listen करे तो browser visit URLs जैसी history हासिल कर सकता है
- वास्तविक Proof-of-Concept app बनाकर Chrome, Firefox, Edge में प्रयोग किए गए और यह साबित हुआ कि private browsing और incognito mode भी सभी प्रभावित हैं
- केवल Brave, DuckDuckGo जैसे कुछ browsers ने अपनी blocklist और user consent requirement के जरिए बचाव किया
Affected Sites
- Meta Pixel: 58 लाख websites में उपयोग; वास्तविक crawling के अनुसार शीर्ष 1 लाख sites में EU की 15,000 और US की 17,000 sites पर local ID sharing देखी गई
- Yandex Metrica: 30 लाख websites में उपयोग; इसी तरीके से EU की 1,260 और US की 1,312 sites पर local port communication की पुष्टि हुई
- इनमें से काफी sites पर cookie consent प्रक्रिया के बिना भी automatic tracking चल रही थी
History
- Yandex: 2017 से HTTP/HTTPS ports का उपयोग शुरू
- Meta: 2024 सितंबर HTTP, 2024 नवंबर WebSocket, 2025 में WebRTC STUN, मई में TURN की ओर चरणबद्ध बदलाव
Abuse Vectors
- मुख्य कारण Android में localhost socket access restrictions का अभाव और sandbox policy की कमजोरी है
- मौजूदा permission settings, browser incognito mode, ad ID reset जैसी सभी protections को bypass किया गया
- web development के वैध उपयोग से इसे अलग पहचानना कठिन है, लेकिन यह बड़े पैमाने पर tracking का सिद्ध उदाहरण बन गया
- Chrome, Firefox, DuckDuckGo, Brave जैसे browsers आपातकालीन patch ला रहे हैं, लेकिन मूल रूप से platform स्तर पर permissions, warnings, sandbox और IPC policies को मजबूत करने की जरूरत है
Disclosure
- Chrome, Firefox, DuckDuckGo, Brave आदि browser vendors से responsible disclosure और सहयोग का अनुरोध किया गया
- Chrome (version 137), Firefox (version 138), Brave आदि ने vulnerable ports blocking, SDP Munging blocking जैसी short-term measures लागू कीं
- long term में local network access control, sandbox hardening, user guidance जैसी संरचनात्मक सुधारों की आवश्यकता पर जोर दिया गया
| ब्राउज़र | संस्करण | Yandex | प्रतिक्रिया/ब्लॉकिंग स्थिति | |
|---|---|---|---|---|
| Chrome | 136.0+ | प्रभावित | प्रभावित | 137 से port और SDP munging block, चरणबद्ध लागू |
| Edge | 136.0+ | प्रभावित | प्रभावित | अस्पष्ट (Chromium आधारित) |
| Firefox | 138.0.2 | प्रभावित | प्रभावित नहीं(1) | SDP munging block, UDP बाद में block होगा |
| DuckDuckGo | 5.233.0 | आंशिक प्रभाव(2,3) | प्रभावित नहीं(2,3) | blocklist-आधारित blocking |
| Brave | 1.78.102 | प्रभावित नहीं(3,4) | प्रभावित नहीं(3,4) | 2022 से localhost requests के लिए user consent आवश्यक, blocklist लागू |
- 1: SDP Munging block है, TURN port अभी block नहीं है (आगे लागू होगा)
- 2,3,4: blocklist, port blocking, user consent आदि विभिन्न defenses
उपयोगकर्ता और operators की जागरूकता स्थिति
site operators
- Meta और Yandex के आधिकारिक documents में इस तरीके का खुलासा नहीं किया गया था
- सितंबर 2024 से Facebook developer forum आदि में "Pixel script localhost को क्यों access कर रही है" जैसे सवाल लगातार उठे, लेकिन कोई आधिकारिक जवाब नहीं मिला
- अधिकतर site operators और end users इससे अनजान थे। user login न होने, incognito mode, cookie deletion जैसी स्थितियों में भी tracked हो सकता था
सामान्य users
- login state से स्वतंत्र होकर tracking काम करती थी
- incognito mode, cookie deletion जैसी protections निष्प्रभावी हो जाती थीं
- cookie consent प्रक्रिया के बिना वाली sites पर भी कई मामलों में यह काम करती थी
FAQ सारांश
- Q: Meta ने खुलासे के तुरंत बाद इस तरीके को क्यों बंद किया?
A: कोई आधिकारिक जवाब नहीं, लेकिन खुलासे के बाद Android users की ओर packet transmission बंद होना देखा गया - Q: क्या इस research का peer review हुआ है?
A: कुछ संस्थानों ने सत्यापन किया, लेकिन paper review से पहले ही दुरुपयोग के बड़े पैमाने को देखते हुए जल्दी सार्वजनिक करने का निर्णय लिया गया - Q: क्या Meta/Yandex के आधिकारिक documents में इसका उल्लेख है?
A: कोई आधिकारिक technical document नहीं, केवल developer forums में सवाल मौजूद हैं - Q: क्या iOS या अन्य platforms भी प्रभावित हैं?
A: अभी तक केवल Android पर पुष्टि हुई है, लेकिन तकनीकी रूप से iOS/desktop/smart TV आदि भी संभावित जोखिम में हो सकते हैं
11 टिप्पणियां
बैटरी अजीब तरह से बहुत ज़्यादा खा रही थी, इसलिए मैंने Meta वाली सारी apps हटा दी थीं, लगता है ऐसी बात थी... अब adb से Galaxy में पहले से मौजूद बाकी system apps भी सब हटाने पड़ेंगे।
मैं भी Meta ऐप्स पर भरोसा नहीं कर सकता, इसलिए उन्हें इस्तेमाल नहीं करता और उसकी जगह केवल Secure Folder के अंदर Chrome से ही उपयोग करता हूँ
ज़्यादातर frameworks जिन्हें hybrid webapp कहा जाता है, (हालाँकि उनका उद्देश्य अलग होता है) localhost web server चलाते हैं। Built-in browser libraries (WebKit...) की settings या custom changes से भी जो चीज़ें हल नहीं होतीं (web part), उन्हें localhost पर चल रहे web server (native part) की तरफ़ से संभाला जाता है। इसे इस तरह भी इस्तेमाल किया जा सकता था… अफ़सोस।
मेरे हिसाब से hybrid app में web/app के बीच सामान्य communication का तरीका bridge होता है, यानी OS और browser लेयर पर दिए गए API के ज़रिए। मुझे नहीं लगता कि local web server ज़रूरी है।
वहाँ local web server इस्तेमाल करने से समस्या इसलिए बनी होगी कि, उदाहरण के लिए, Chrome के secret mode में localhost port के ज़रिए access करके user की anonymity तोड़ देने जैसी vulnerability संभव हो जाती है। अगर ऐसी तकनीक hybrid app में अनिवार्य है... तो hybrid app ही खत्म हो जाने चाहिए।
डोमेन नेम अनिवार्य करने वाले फीचर्स,
localStorageआदि को संभालने के लिए ऐप के भीतर web server खोलकर इस्तेमाल करना आम बात है।अगर आप सेवा के लिए पैसे नहीं देते, तो फिर उत्पाद आप ही हैं। डेटा के ज़रिए लोगों को ट्रैक करने की कोशिशें आगे और बढ़ेंगी, और ऐसा नहीं लगता कि इस रुझान को पलटा जा सकता है। किसी बेहतर विकल्प की ज़रूरत है, लेकिन पूंजीवाद के तहत वह बेहतर विकल्प क्या हो सकता है, यह आसानी से समझ नहीं आता।
मुझे जिज्ञासा है कि Galaxy Secure Folder के अंदर और बाहर localhost access अलग-थलग रहता है या नहीं।
अलगाव हो ही नहीं रहा है। सुरक्षा फ़ोल्डर के बाहर termux में Python
http.serverचलाकर अंदर Chrome से एक्सेस किया, तो कनेक्शन हो जाता है।क्या यह security loophole नहीं है -_-??
लगता है कि SNS इस्तेमाल न करना ही सही जवाब है..
Hacker News राय
Meta द्वारा इस्तेमाल की जाने वाली पूरी tracking प्रक्रिया को, जैसा मैंने समझा है, अगर संक्षेप में बताऊँ, तो यह Localmess ब्लॉग के संदर्भ पर आधारित है
Incognito mode में भी tracking संभव रहती है
यह प्रक्रिया browser developer tools में भी दिखाई नहीं देती
ऐप _fbp जानकारी और user ID को Meta server पर भेज देता है
इसके अलावा ध्यान देने वाली बातें:
web से app में ID साझा करने का यह तरीका cookie deletion, Incognito mode, और Android permission control जैसी सामान्य privacy सुरक्षा को bypass करता है
यहाँ तक कि malicious app द्वारा उपयोगकर्ता की web activity पर जासूसी करने की संभावना भी खुल जाती है
मई के मध्य के बाद से Meta Pixel script ने _fbp cookie को WebRTC TURN तरीके से भी भेजना शुरू किया, और यह तरीका Chrome टीम द्वारा SDP Munging को block करने के बाद अपनाया गया
2 जून 2025 तक इस नए port के जरिए Facebook/Instagram ऐप वास्तव में receive कर रहे हैं, ऐसा व्यवहार देखा नहीं गया
अगर WebRTC का मुख्य उपयोग ही उपयोगकर्ता की local IP जैसी जानकारी लेकर anonymity हटाना (de-anonymize करना) है, तो यह बिना अलग permission prompt के क्यों चल सकता है, यह समझ से बाहर है
कुछ देशों में something-embarassing.com जैसी साइट पर जाना सिर्फ शर्मिंदगी की बात नहीं, बल्कि उससे कहीं गंभीर परिणाम ला सकता है
मुझे पूरी तरह समझ नहीं आया, लेकिन क्या इसमें अनिवार्य GDPR cookie consent notices का दुरुपयोग करके लोगों को गुप्त रूप से track करना भी शामिल है?
मैं internet advertising और tracking को बस प्रतिबंधित करना चाहता हूँ
ऐसी चीज़ों की वजह से बहुत सारा बेकार सामान पैदा होता है
मेरी नज़र में यह सब इसलिए है कि CEO लोग एक और yacht खरीद सकें
Reddit भी काफ़ी device fingerprinting करता है
यह डेटा AI model training के लिए भी बेचा जा रहा है
मुझे लगता है जल्द ही वह निजी डेटा भी आक्रामक रूप से बेचा जाएगा जो अभी सिर्फ premium app में इस्तेमाल होता है
सवाल यह है कि इसे प्रतिबंधित कैसे किया जाए, और यह साबित कैसे किया जाए कि किसने कानून तोड़ा
browser से 3rd-party cookies को हटाने की कोशिश वास्तव में सबसे व्यावहारिक पहला कदम थी
लेकिन Google ने Chrome पर अपने प्रभुत्व का इस्तेमाल करके पिछले साल इसे पटरी से उतार दिया
कानूनी रूप से शायद यह गलत न हो, लेकिन यह ऐसा अनैतिक बाज़ार-हेरफेर था जिस पर उपभोक्ताओं का गुस्सा फूटना चाहिए था
लगता है Google के अधिकारियों को शुरू में विश्वास था कि cookies के बिना भी revenue बचा रहेगा, और हक़ीक़त में या तो वे cookies का मतलब ठीक से समझते ही नहीं थे, या फिर शुरू से उन्हें हटाने का इरादा ही नहीं था
इस तरह का व्यवहार शुद्ध लालच है
सदियों से सफल पारंपरिक व्यवसायी इस तरह के अति-स्वार्थ से दूर रहते आए हैं
आम तौर पर साधारण नेता भी इस निम्न स्तर के आचरण से ऊपर उठकर कंपनी को बेहतर चला सकते हैं
लेकिन जब दुनिया में सिर्फ लालच रह जाए, तो बस हँसकर टालना पड़ता है
काश कुछ अधिक ईमानदार और बेहतर CEO होते
'CEO की yacht' वाले मज़ाक में जोड़ूँ तो, सच यह है कि ज़्यादातर उपभोक्ता ऐसे services/products पसंद करते हैं जिनके लिए पैसा न देना पड़े, इसलिए वे ad model चुनते हैं
वास्तव में अगर paid और ad-supported versions दोनों हों, तो ad-supported वाला 10:1 से ज़्यादा लोकप्रिय होता है
ad blocking उल्टा स्थिति को और खराब बनाता है — असली प्रतिरोध तो service का बहिष्कार करना या किसी alternative के लिए सीधे भुगतान करना होना चाहिए
BAT(Brave Attention Token) जैसी व्यवस्था, जो सीधे sites को micro-payment बाँटती है, ज़्यादा तर्कसंगत लगती है
सिद्धांत यह है: जितना उपयोग करूँ उतना भुगतान करूँ, और मैं advertiser का product नहीं बल्कि असली customer बनूँ
वास्तविक issue report: Localmess ब्लॉग
Google कहता है कि वह abuse cases की जाँच कर रहा है, लेकिन विडंबना यह है कि Google खुद भी Wi‑Fi AP names जैसे कई side channels का उपयोग करके सबको track करता है
बड़ी app कंपनियाँ OS restrictions से बचने के लिए मिलते-जुलते तरीकों से data collection जारी रखती हैं
एक और वजह कि Big Tech के apps जितना संभव हो इंस्टॉल न करूँ, और मजबूरी में ही वेबसाइट इस्तेमाल करूँ
वेबसाइटें धीमी और असुविधाजनक होती हैं, लेकिन sandboxing की वजह से कहीं ज़्यादा सुरक्षित हैं
उदाहरण के लिए Samsung फ़ोन में कई Meta apps पहले से bundled होते हैं, और Facebook app हटाने पर भी com.facebook.services जैसी hidden services बची रह सकती हैं
इन्हें सिर्फ developer tools (ADB/UAD) से हटाया जा सकता है
वरना iPhone या Pixel फ़ोन की सिफारिश है
Meta Pixel script से जुड़ी technical जानकारी:
Meta Pixel अक्टूबर 2024 तक HTTP से transmit कर रहा था, और Facebook/Instagram apps उस port पर अभी भी listening mode में हैं
नया 12388 port भी listen कर रहा है, लेकिन उस port पर transmit करने वाली script अभी तक नहीं मिली
इस पर एक वैज्ञानिक(?) जिज्ञासा है कि अगर कोई दूसरा app इस port पर fake message भेजे, तो क्या वह भी काम करेगा
एक है कुछ भी न भेजना, और दूसरा है बहुत सारा झूठा data भेजना
ऐसा कोई उपकरण भी अच्छा होगा जो advertiser tracking cookies को P2P के ज़रिए साझा करे
मैं सोच रहा हूँ कि क्या यह tracking अलग-अलग profiles के बीच भी जा सकती है
अगर हाँ, तो कंपनी के नज़रिए से यह बहुत बड़ा security issue है
Userland app से port 8080 पर server चलाकर टेस्ट किया, तो दोनों profiles से access संभव था
इसका मतलब है कि एक profile में संक्रमित app, दूसरी profile में खोली गई site के साथ data का आदान-प्रदान कर सकता है
अगर कोई व्यक्ति इस तरह किसी और के कंप्यूटर से जानकारी इकट्ठा करे, तो क्या उसे CFAA(Computer Fraud and Abuse Act) के तहत सज़ा मिल सकती है?
इस तरीके में दोनों तरफ़ code control चाहिए — एक तरफ़ visited site और दूसरी तरफ़ फ़ोन पर चल रहा app
यह कोई जादुई hacking technique नहीं है जो मनमाने browser history को चुरा ले
इसलिए इसे साफ़-साफ़ hacking कहना मुश्किल है, और Google/Meta जैसी कंपनियाँ बिना consent tracking करें तब भी यह शायद CFAA के दायरे में न आए
सच तो यह है कि CFAA के तहत सिर्फ browser में 'view page source' करने पर भी लोगों पर मुकदमा चल चुका है
लगता है अपराध से ज़्यादा मायने यह रखता है कि आपने किसे छेड़ा और network संबंध क्या थे
सज़ा संभव है
यह ID system दुरुपयोग के लिए बहुत आसान था, और अनुमान है कि Google भी यह जानता था और उसे ज़रूर abuse-prevention rules बनाने चाहिए थे
यह मामला penalties (Play Store permanent ban, कानूनी कार्रवाई, यहाँ तक कि आपराधिक शिकायत) तक जा सकता है
लेकिन व्यवहार में Meta जैसी बहुत बड़ी कंपनी पर वास्तविक कार्रवाई करना लगभग असंभव स्थिति है
(और Meta न भी हो, तो भी संभव है कि ऐसी संदिग्ध गतिविधियों को intelligence agencies या law enforcement ने चुपचाप मंज़ूरी दी हो — इस समस्या को रोकना बहुत मुश्किल है, और इस पर बात करना भी आसान नहीं)
उनके पास खुद tracking के 50 से भी ज़्यादा तरीके हैं
दूसरी कंपनियाँ भी बड़े खिलाड़ियों के साथ user data sharing clauses फिर से तय करके बहुत पैसा कमा रही हैं
deals हो चुकी हैं, permissions भी मिल चुकी हैं, और अब बस कुछ उपयोगकर्ता इस पर शोर मचा रहे हैं
Firefox में about:config के अंदर media.peerconnection.enabled option को false करके WebRTC block किया जा सकता है
Netguard और Nebulo को non-VPN mode में मिलाकर Meta servers की अनावश्यक connections को रोका जा सकता है
मुझे लगता है European Union (EU) को इस तरह के मामलों में रिकॉर्ड-स्तर के fines लगाने चाहिए
और जितनी बार उल्लंघन दोहराया जाए, 1~X% की progressive tax-style बढ़ोतरी भी होनी चाहिए
साथ में ऐसा website भी होना चाहिए जहाँ हर कंपनी के violations एक नज़र में दिखें
Meta हर साल fines भरने के बाद भी लगभग 70 billion dollar का net profit दर्ज करता है
सिर्फ fines नहीं, कुछ मामलों में तो लोगों को इससे कहीं छोटे उल्लंघनों पर जेल भी हुई है, इसलिए इससे कड़े कदमों की भी ज़रूरत है