
Yandex va Meta android foydalanuvchilarini "tinglamoqda"
6
215
0
Biz Meta va Yandeks kompaniyalari tomonidan qoʻllanilayotgan, milliardlab Android foydalanuvchilariga ta’sir qilishi mumkin boʻlgan yangi kuzatuv usulini fosh etdik. Aniqlanishicha, Android uchun moʻljallangan native ilovalar — Facebook, Instagram va Yandeksning bir nechta ilovalari, jumladan, Xaritalar va Brauzer — maxsus mahalliy (local) portlarni yashirincha tinglab boradi.
Bu Android native ilovalari brauzerlarning metadata ma’lumotlari, cookie-fayllar va Meta Pixel hamda Yandeks.Metrika skriptlaridan buyruqlarni qabul qiladi. Ushbu skriptlar minglab veb-saytlarga joylashtirilgan boʻlib, foydalanuvchilarning mobil brauzerlarida yuklanadi va mahalliy tirqishlar //local sockets// (localhost) orqali shu qurilmada ishlayotgan native ilovalar bilan yashirincha aloqa oʻrnatadi. Native ilovalar qurilma identifikatorlari — masalan, Android reklamali identifikatori (AAID) — ga dasturiy ravishda kirish huquqiga ega boʻlgani yoki foydalanuvchini aniqlashni amalga oshirgani sababli (Meta ilovalari holida), ushbu usul mobil brauzer sessiyalarini va veb-cookielarni foydalanuvchi shaxsi bilan bogʻlash imkonini beradi va shu tariqa, ularning skriptlari joylashtirilgan saytlar foydalanuvchilarini deanonimlashtiradi.
Brauzerdan ilovaga identifikatorlarni uzatishning bu usuli maxfiylikni himoya qilishga qaratilgan odatdagi vositalarni — cookielarni tozalash, inkognito rejimi va Android ruxsatnomalari nazoratini — chetlab oʻtadi. Bundan tashqari, bu usul zararli ilovalarga foydalanuvchilarning veb-faoliyatini tinglash imkonini ham yaratadi, deyiladi habr portalida.
Bu qanday ishlaydi?
Garchi Meta va Yandeks veb va mobil mazmun hamda identifikatorlarni bogʻlashda baʼzi farqlarga ega boʻlsa-da, asosan ikkala kompaniya ham localhost-soketlarga cheklanmagan kirish imkoniyatidan foydalanmoqda. Android operatsion tizimi INTERNET ruxsatiga ega istalgan oʻrnatilgan ilovaga loopback interfeysida (127.0.0.1) tinglovchi soket ochishga ruxsat beradi. Shu qurilmada ishlayotgan brauzerlar ham foydalanuvchining roziligisiz yoki platformaning aralashuvisiz ushbu interfeysga kira oladi. Bu esa veb-sahifalarga joylashtirilgan JavaScript-kodga Android uchun native ilovalar bilan oʻzaro aloqada boʻlish, foydalanuvchi harakatlari haqidagi maʼlumotlar va identifikatorlarni uzatish, shuningdek, vaqtincha mavjud boʻladigan veb-identifikatorlarni mobil ilovalarning uzoq muddatli identifikatorlari bilan bogʻlash imkonini beradi — bularning barchasi standart veb-APIlar orqali amalga oshiriladi.
Meta/Facebook Pixel tomonidan vebdan Meta ilovalariga cookie fbp uzatish (Android uchun)
Meta (Facebook) Pixel, Android mobil veb-brauzerida yuklanganda, WebRTC orqali first-party cookie _fbpni 12580–12585 UDP portlariga uzatadi — bu portlarni qurilmadagi istalgan ilova tinglashi mumkin. Biz aniqladikki, Google Play Storeda mavjud boʻlgan Metaga tegishli Android ilovalari — Facebook (515.0.0.23.90-talqini) va Instagram (382.0.0.43.84-talqini) — ushbu portlar diapazonini tinglaydi.

2025-yildan boshlab (asl maqolada sana aynan shunday yozilgan — tarjimon izohi) Meta Pixel _fbp cookie-faylining mazmunini SDP "ice-ufrag" maydoniga joylashtirish uchun SDP Munging nomi bilan tanilgan texnologiyadan foydalanmoqda, natijada STUN Binding Request xabari quyidagi rasmda koʻrsatilganidek localhost manziliga yuboriladi. Bu maʼlumot oqimi Chromening oddiy nosozliklarni tuzatish vositalari (masalan, DevTools) yordamida aniqlanmaydi.

Cookie _fbpni veb-saytdan native ilovaga va serverga uzatish jarayoni quyidagicha amalga oshadi:
Foydalanuvchi Facebook yoki Instagram native ilovasini ochadi, bu esa oxir-oqibat fon rejimiga oʻtadi va TCP portida (12387 yoki 12388) hamda UDP portida (12580–12585 oraligʻidagi birinchi boʻsh portda) kiruvchi trafikni tinglash uchun fon xizmati yaratadi. Foydalanuvchilar ilovalarga oʻz hisob ma’lumotlari bilan kirgan boʻlishi kerak.
Foydalanuvchi brauzerni ochadi va Meta Pixel birikkan veb-saytga tashrif buyuradi.
Ushbu bosqichda veb-saytlar joylashuvga va foydalanuvchiga qarab rozilik soʻrashlari mumkin.
Meta Pixel skripti _fbp cookieni WebRTC (STUN) SDP Munging orqali Instagram yoki Facebook native ilovasiga uzatadi.
Meta Pixel skripti shuningdek, _fbp qiymatini quyidagi parametrlar bilan birga — sahifa URL manzili (dl), veb-sayt va brauzer metama’lumotlari, hodisa turi (ev) (masalan, PageView, AddToCart, Donate, Purchase) — https://www.facebook.com/tr manziliga yuboradi.
Facebook yoki Instagram ilovalari brauzerda ishlayotgan Meta Pixel JavaScriptdan fbp cookieni qabul qiladi. Ilovalar fbp ni boshqa doimiy foydalanuvchi identifikatorlari bilan birga GraphQL (https://graph[.]facebook[.]com/graphql) orqali uzatadi va shu tariqa _fbp ID (veb-saytga tashrif) ni foydalanuvchining Facebook yoki Instagram hisob qaydnomasi bilan bogʻlaydi.

Taxminan 17-may kuni Meta Pixel oʻz skriptiga yangi usul qoʻshdi — bu usul _fbp cookieni STUN oʻrniga WebRTC TURN orqali uzatadi. TURN usuli SDP Mungingdan foydalanmaslik imkonini beradi; Chrome ishlab chiquvchilari oshkor qilinishidan soʻng SDP Munging’ni oʻchirishlari haqida ommaviy e’lon qilishgan edi. 2025-yil 2-iyun holatiga koʻra, Facebook yoki Instagram ilovalari ushbu yangi portlarni faol tinglayotganini kuzatmadik.
_fbp cookie haqida
Metaning cookie siyosatiga koʻra, _fbp cookie brauzerlarni reklama xizmatlari va sayt tahlili xizmatlarini taqdim etish maqsadida aniqlaydi va uning amal qilish muddati 90 kunni tashkil etadi. Ushbu cookie internetdagi eng mashhur millionta veb-saytning taxminan 25%ida mavjud boʻlib, bu uni Web Almanac 2024 maʼlumotiga koʻra internetdagi uchinchi eng keng tarqalgan first-party cookie qiladi.
First-party cookie degani — u foydalanuvchini turli veb-saytlar boʻylab kuzatish uchun ishlatilmaydi, chunki u faqat shu veb-sayt domeni doirasida oʻrnatiladi. Bu shuni anglatadiki, bir foydalanuvchida turli veb-saytlarda turli fbp cookielari boʻladi. Biroq, fosh qilingan usul turli fbp cookielarini bir foydalanuvchi bilan bogʻlash imkonini beradi, bu esa mavjud himoya choralari va foydalanuvchi manfaatlariga zid keladi.
Yandeks 2017-yildan beri localhost bilan aloqani ishlatadi
Yandeks.Metrika skripti ma’lum TCP portlar — 29009, 29010, 30102 va 30103 orqali localhostga uzun va tushunarsiz parametrlar bilan HTTP-soʻrovlar yuboradi. Bizning tekshiruvimizga koʻra, Yandeksga tegishli ilovalar — Yandeks.Xaritalar, Yandeks.Navigator, Yandeks.Qidiruv va Yandeks.Brauzer — ushbu portlarni faol tinglaydi. Bundan tashqari, tahlilimiz shuni koʻrsatadiki, yandexmetrica[.]com domeni 127.0.0.1 teskari aloqa manziliga yoʻnaltiriladi, va Yandeks.Metrika skripti maʼlumotlarni HTTPS orqali lokal portlar — 29010 va 30103 — ga uzatadi. Bunday yondashuv maʼlumotlar “chiqarilishi” jarayonini aniqlashni murakkablashtiradi va an’anaviy aniqlash mexanizmlarining ishini qiyinlashtiradi.

Yandeks ilovalari tinglanishi kerak boʻlgan portlar roʻyxatini olish uchun Yandeks domeniga (startup[.]mobile[.]yandex[.]net yoki unga oʻxshash) murojaat qiladi. Ushbu endpoint JSON formatidagi javobni qaytaradi, unda lokal portlar (masalan, 30102, 29009) va "first_delay_seconds" parametri mavjud boʻlib, fikrimizcha, bu parametr xizmat ishga tushishini kechiktirish uchun ishlatiladi. Test qurilmalarimizdan birida first_delay_seconds qiymati Yandeks ilovasining lokal portlarni tinglashni boshlashi uchun zarur boʻlgan vaqt (~3 kun) soniyalariga taxminan teng edi.
Yandeks.Metrika skripti tomonidan yuborilgan localhost HTTP-soʻrovlarini qabul qilgach, mobil ilova Base64 formatida kodlangan ikkilik maʼlumotlar bilan javob qaytaradi; bu maʼlumotlar tarkibida Android Advertising ID (AAID) hamda Java API orqali mavjud boʻlgan boshqa identifikatorlar — masalan, Google reklama IDsi va Yandeksga xos boʻlishi mumkin boʻlgan UUID mavjud boʻladi. Meta Pixel holatidan farqli oʻlaroq, bu maʼlumotlarning barchasi JavaScript kodi orqali veb-brauzerda bajarilib, Yandeks.Metrika serveriga (masalan, mc[.]yango[.]com) yuboriladi, native ilova orqali emas. Yandeks holatida native ilova Androidning native identifikatorlarini yigʻish va ularni localhost orqali brauzer mazmuniga uzatish uchun proksi sifatida xizmat qiladi.

Yandeksning veb-ilovadan native ilova va serverga qadar boʻlgan butun aloqa jarayoni quyidagicha amalga oshadi:
Foydalanuvchi Yandeksning native ilovalaridan birini ochadi, bu esa oxir-oqibat fon rejimiga oʻtadi va kiruvchi trafikni tinglash uchun ikkita HTTP porti (29009 va 30102) va ikkita port (29010 va 30103)da fon xizmati yaratadi.
Foydalanuvchi brauzerni ochadi va Yandeks.Metrika skripti birikkan veb-saytga tashrif buyuradi.
Yandeks skripti shifrlangan parametrlarni olish uchun oʻz serverlariga soʻrov yuboradi.
Ushbu shifrlangan parametrlar HTTP va HTTPS orqali localhostga yuboriladi. Bu URL manzili toʻgʻridan-toʻgʻri 127.0.0.1 IP manzilini yoki 127.0.0.1 manziliga yoʻnaltiriladigan yandexmetrica[.]com domenini oʻz ichiga oladi.
Yandeks.Metrika SDKi ilova ichida bu parametrlarni qabul qiladi va Yandeks.Metrika skriptiga veb-saytda 200 OK javobini yuboradi — bu javob tarkibida shifrlangan qurilma identifikatorlari mavjud boʻladi.
Yandeks.Metrika skripti veb-saytda bu identifikatorlarni qabul qiladi va ularni shifrlangan parametrlar bilan birgalikda oʻz serverlariga yuboradi.

Ushbu jadvalda Yandeksga tegishli bo‘lgan va localhost portlarida aniqlangan ilovalar keltirilgan. Har bir ilova uchun uning noyob paket nomi va sinovda ishlatilgan talqini ko‘rsatilgan:
Yandeks ilovasi | Paket nomi | Sinovdan o‘tkazilgan talqin |
Yandeks Xaritalar | ru.yandex.yandexmaps | 23.5.0 |
Yandeks Navigator | ru.yandex.yandexnavi | 23.5.0 |
Yandeks Brauzer | com.yandex.browser | 25.4.1.100 |
Yandeks Qidiruv | com.yandex.searchapp | 25.41 |
Yandeks Metro | ru.yandex.metro | 3.7.3 |
Yandeks Go: Taksi, Oziq-ovqat | 5.24.1 |
Qo‘shimcha xavf: brauzer tarixining sizib chiqishi
Identifikatorlarni veb-ilovalar va native ilovalar o‘rtasida almashish uchun HTTP-so‘rovlaridan foydalanish (ya’ni WebRTC STUN yoki TURN emas) foydalanuvchi brauzer tarixining uchinchi tomonlarga oshkor bo‘lishiga olib kelishi mumkin. Android uchun yovuz niyatli uchinchi tomon ilovasi ham yuqorida tilga olingan portlarni tinglasa, Yandeks.Metrika skripti tomonidan yuborilgan HTTP-so‘rovlarni hamda Metaning avval foydalanilgan aloqa kanali orqali yuborilgan ma’lumotlarni tutib qolishi va HTTP Origin sarlavhasi orqali kuzatishi mumkin.
Ushbu xavfni namoyish etish uchun maxsus ilova ishlab chiqdik. Aniqlanishicha, Chrome, Firefox va Edge brauzerlari bunday turdagi tarix sizib chiqishiga ham standart, ham maxfiy (inkognito) rejimda zaifdir. Brave brauzeri esa bu muammoga chalinmagan, chunki u localhostga so‘rovlarni bloklaydi va maxsus bloklash ro‘yxatiga ega; DuckDuckGo brauzeri esa bu muammoga faqat qisman duchor bo‘ladi, chunki uning bloklash ro‘yxatida kerakli domenlar yo‘q.
Garchi boshqa ilovalar ham ushbu portlarni tinglashi mumkin bo‘lsa-da, Meta yoki Yandeksga tegishli bo‘lmagan biror ilovaning bu portlarni tinglayotganini aniqlamadik.
Videodemo havolasi: https://localmess.github.io/assets/video/Yandex_Browsers_compressed.mp4
Yandeks lokal host bilan aloqa uchun HTTP-so‘rovlaridan foydalanganligi sababli, kerakli portlarni tinglayotgan har qanday ilova foydalanuvchi tashrif buyurayotgan veb-saytlarni kuzatishi mumkin — bu yuqoridagi videoda ko‘rsatilgan. Dastlab tushuncha asosidagi test ilovamizni ochamiz, u Yandeks foydalanayotgan portlarni tinglaydi va keyin fon rejimiga yuboriladi. So‘ngra turli brauzerlarda beshta veb-saytga tashrif buyuramiz. Natijada, bu besh saytning URL manzillari ilovada ro‘yxatlangan holda paydo bo‘ladi.
Ta’sirlangan saytlar
BuiltWith — veb-texnologiyalarni joriy qilishni kuzatuvchi veb-sayt — ma’lumotlariga ko‘ra, Meta Pixel 5,8 milliondan ortiq veb-saytlarga o‘rnatilgan. Yandeks.Metrika esa deyarli 3 million veb-saytda mavjud. HTTP Archive — ochiq va ommaviy ma’lumotlar to‘plami bo‘lib, har oyda 16 millionga yaqin veb-saytni skanerlab chiqadi — u ma’lumotlariga ko‘ra, Meta Pixel 2,4 million va Yandeks.Metrika 575 448 veb-saytda mavjud.
100 000 ta eng mashhur sahifa ko'zdan kechirishlari: Frankfurt va Nyu-Yorkda joylashgan serverlar orqali CrUX reytingiga ko‘ra eng mashhur 100 000 ta saytni ikki marta ko'zdan kechirdik, bu orqali saytlar localhost soketlaridan qay darajada foydalanayotganini baholadik. Quyidagi jadvalda bu holat aniqlangan saytlar soni keltirilgan. Har bir mintaqa uchun birinchi ustunda barcha cookie fayllaridan foydalanishga rozilik berilgan holatda kuzatuv vositalari joylashtirilgan saytlar soni ko‘rsatilgan. Ikkinchi ustunda esa ("roziliksiz" belgisi bilan) foydalanuvchi saytni brauzerda ochgan zahoti, ya’ni foydalanuvchining roziligisiz ham, localhost bilan aloqa o‘rnatishga urinayotgan saytlar soni ko‘rsatilgan.
Skript nomi | AQShda mavjudligi | AQShda roziliksiz | Yevropada mavjudligi | Yevropada roziliksiz |
Meta Pixel | 17 223 | 13 468 (78.2%) | 15 677 | 11 890 (75.8%) |
Yandex Metrica | 1 312 | 1 095 (83.5%) | 1 260 | 1 064 (84.4%) |
Bu qachondan boshlangandi?
Quyidagi jadvalda Yandeks va Meta tomonidan qo‘llanilgan usullarning evrilishi ko‘rsatilgan bo‘lib, har bir usul HTTP Archive tarixiy ma’lumotlari asosida birinchi marta aniqlangan sana bilan berilgan.
Usul | Boshlanish sanasi | Tugash sanasi | Portlar | Har fayllar |
Yandeks | ||||
HTTP | Fev 2017 | – | 29009, 30102 | 1, 2, 3, 4, 5 |
HTTPS | May 2018 |