Covert Web-to-App Tracking via Localhost on Android

Date:

Share:

Disclosure: Covert Web-to-App Tracking via
Localhost on Android

We disclose a novel tracking method by Meta and Yandex potentially affecting
billions of Android users. We found that native Android apps—including Facebook,
Instagram
, and
several Yandex apps including Maps and Browser—silently listen on fixed local
ports
for tracking purposes.

These native Android apps receive browsers’ metadata, cookies and commands from
the Meta Pixel and Yandex Metrica scripts embedded on thousands of web sites. These JavaScripts load
on users’ mobile browsers and silently connect with native apps running on the same device through
localhost sockets. As native apps access programatically
device identifiers like the Android
Advertising ID (AAID) or handle user identities as in the case
of Meta apps, this method effectively allows these organizations to link mobile
browsing sessions and web cookies to user identities
, hence de-anonymizing users’
visiting sites embedding their scripts.

This web-to-app ID sharing method bypasses typical privacy protections such as clearing
cookies, Incognito Mode and Android’s permission controls. Worse, it opens the door for potentially
malicious apps eavesdropping on users’ web activity.

📢 UPDATE: As of June 3rd 7:45 CEST, Meta/Facebook Pixel script is no longer
sending
any packets or requests to localhost. The code responsible for sending the _fbp cookie has been
almost
completely removed.


📁 Additional Resources

– Video showing Yandex sending localhost requests. The left window shows a
remote debugging inspector window of the browser on the Android phone.
The right window shows the screen of the Android phone, with our proof-of-concept app at the top and
the browser at the bottom:

– Video showing Meta Pixel sending localhost STUN requests. The left window
shows Wireshark, a program that monitors web traffic.
The right window shows the browser visiting a website. Note that the requests only start sending
once the page is loaded when emulating a Android phone (Pixel 7)
and the breakpoint added to the Facebook script is passed:

– Image showing Meta Pixel parameters for which ports and protocols to
contact localhost.

– Image showing Meta Pixel performing SDP Munging to insert the _fbp cookie
value.

– Image showing Meta Pixel using STUN to _pass fbp cookie value to mobile
apps.


Source link

Subscribe to our magazine

━ more like this

‘I wish the stones here could talk’: an epic hike through Kosovo’s Accursed mountains | Kosovo holidays

There are stone bunkers shrouded in the mist on the hillside to my right, just shy of the ridgeline marking the Albanian-Kosovo border. To...

I’m Ensorcelled by Books by Friends

I love books. I love reading. I love reading books.Ensorcelled by Eliot Peper is genius. It’s a unique format that can be read in...

‘I worked at a place that gave you “points”… Every sick day:’ Employees share the most non-functional sick leave policies they’ve had to work...

Employees are sharing some of the most ridiculous sick leave policies they have had to work with and they make you want to smack...

I Tried Taylor Swift’s Viral Corset Outfits—See How They Fit

While each product featured is independently selected by our editors, we may include paid promotion. If you buy something through our links, we may...

Analog(ue) #202: Over Before it Begins

#202: Over Before it Begins June 19th, 2022 · 81 minutes Haven't you heard? Myke had COVID. This episode of Analog(ue) is sponsored by: Fitbod: Get stronger, faster with a fitness plan...