-
Meta와 Yandex가 안드로이드에서 새로운 웹-앱 추적 기법을 사용함
-
Facebook·** Instagram** 등 주요 앱이 로컬고정 포트를 통해 브라우저 정보와 쿠키 수신함
-
브라우저 내 자바스크립트(Meta Pixel, Yandex Metrica)가 기기 내 실행 중인 앱과 localhost 소켓으로 통신함
-
쿠키 삭제나 시크릿 모드 및 권한 설정 등의 일반적 프라이버시 보호 수단을 우회할 수 있음
-
악성 앱이 해당 방식을 악용해 사용자 방문 기록 엿보기 가능성도 내포함
Disclosure: Covert Web-to-App Tracking via Localhost on Android
주요 내용 요약
- 연구팀은 Meta 및 Yandex가 안드로이드 사용자 수십억 명에게 영향을 줄 수 있는 혁신적 웹-앱 추적 방법을 발견함
-
Facebook, Instagram 등 안드로이드 네이티브 앱, 그리고 Yandex Maps, Browser 등 여러 앱이 고정된 로컬 포트에서 추적 목적으로 브라우저 신호를 수신함
-
Meta Pixel 및 Yandex Metrica 자바스크립트가 수천 개 웹사이트에 삽입되어, 사용자의 모바일 브라우저에서 실행될 때 같은 기기에 동작하는 네이티브 앱과 localhost 소켓으로 연동함
- 네이티브 앱이 Android Advertising ID(AAID) 등 기기 식별자에 접근하거나, Meta 앱처럼 사용자 신원 정보를 다루는 경우, 이 방식으로 웹 세션 및 쿠키와 신원을 연결함으로써 웹사이트 방문 사용자의 비식별성 해제가 가능함
- 이와 같은 웹-앱 ID 공유 방식은 쿠키 삭제, 시크릿 모드, 안드로이드 권한 제어 등 통상적 프라이버시 보호 수단을 회피하며, 악의적 앱이 사용자의 웹 활동 감청에 악용될 소지도 있음
최근 업데이트
- 2024년 6월 3일 기준 Meta/Facebook Pixel 스크립트가 더 이상 localhost로 패킷이나 요청을 보내지 않는 것으로 확인됨
- 해당 코드 중 _fbp 쿠키 전송 부분이 거의 전부 제거됨
기술적 구현 방식
- 웹사이트에 포함된 Meta Pixel과 Yandex Metrica 자바스크립트가 안드로이드 브라우저에서 실행됨
- 이 스크립트들은 localhost를 통해 기기 내 활성화된 네이티브 앱의 고정 포트에 접속함
-
브라우저 메타데이터, 쿠키, 명령 등이 이 경로로 네이티브 앱에 전달됨
- 결과적으로 웹 브라우저와 네이티브 앱의 세션 및 식별 정보가 연계됨
프라이버시 및 보안 영향
- 이 방법은 쿠키 삭제나 시크릿 모드 등 기존 웹 프라이버시 보호 정책을 무력화함
-
Android 권한 시스템 역시 해당 경로를 통제하지 못함
-
악성 앱이 같은 방식으로 웹 활동 감시를 시도할 가능성 존재함
참고 자료
-
Yandex가 localhost로 요청을 보내는 장면을 보여주는 비디오
- 좌측: 원격 디버깅 툴에서 안드로이드 브라우저 내 네트워크 활동 확인
- 우측: POC 앱(상단)과 브라우저(하단)가 실행되는 안드로이드 화면
-
Meta Pixel이 localhost로 STUN 요청을 보내는 장면
- 좌측: Wireshark로 네트워크 트래픽 관찰
- 우측: 웹사이트 방문 시 요청이 발생하는 모습(안드로이드 기기 에뮬레이션 상태)
-
Meta Pixel이 사용할 포트 및 프로토콜 매개변수 이미지
-
Meta Pixel이 SDP Munging을 통해 _fbp 쿠키 값을 삽입하는 과정 이미지
-
Meta Pixel이 STUN을 활용해 _fbp 쿠키 값을 모바일 앱으로 전송하는 이미지