안드로이드에서 localhost를 통한 은밀한 웹-앱 추적

2 days ago 5

  • MetaYandex가 안드로이드에서 새로운 웹-앱 추적 기법을 사용함
  • Facebook·** Instagram** 등 주요 앱이 로컬고정 포트를 통해 브라우저 정보와 쿠키 수신함
  • 브라우저 내 자바스크립트(Meta Pixel, Yandex Metrica)가 기기 내 실행 중인 앱과 localhost 소켓으로 통신함
  • 쿠키 삭제시크릿 모드권한 설정 등의 일반적 프라이버시 보호 수단을 우회할 수 있음
  • 악성 앱이 해당 방식을 악용해 사용자 방문 기록 엿보기 가능성도 내포함

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

주요 내용 요약

  • 연구팀은 MetaYandex가 안드로이드 사용자 수십억 명에게 영향을 줄 수 있는 혁신적 웹-앱 추적 방법을 발견함
  • Facebook, Instagram 등 안드로이드 네이티브 앱, 그리고 Yandex Maps, Browser 등 여러 앱이 고정된 로컬 포트에서 추적 목적으로 브라우저 신호를 수신
  • Meta PixelYandex Metrica 자바스크립트가 수천 개 웹사이트에 삽입되어, 사용자의 모바일 브라우저에서 실행될 때 같은 기기에 동작하는 네이티브 앱localhost 소켓으로 연동함
  • 네이티브 앱이 Android Advertising ID(AAID)기기 식별자에 접근하거나, Meta 앱처럼 사용자 신원 정보를 다루는 경우, 이 방식으로 웹 세션 및 쿠키와 신원을 연결함으로써 웹사이트 방문 사용자의 비식별성 해제가 가능함
  • 이와 같은 웹-앱 ID 공유 방식은 쿠키 삭제, 시크릿 모드, 안드로이드 권한 제어 등 통상적 프라이버시 보호 수단을 회피하며, 악의적 앱이 사용자의 웹 활동 감청에 악용될 소지도 있음

최근 업데이트

  • 2024년 6월 3일 기준 Meta/Facebook Pixel 스크립트가 더 이상 localhost로 패킷이나 요청을 보내지 않는 것으로 확인됨
  • 해당 코드 중 _fbp 쿠키 전송 부분이 거의 전부 제거됨

기술적 구현 방식

  • 웹사이트에 포함된 Meta PixelYandex Metrica 자바스크립트가 안드로이드 브라우저에서 실행됨
  • 이 스크립트들은 localhost를 통해 기기 내 활성화된 네이티브 앱고정 포트에 접속함
  • 브라우저 메타데이터, 쿠키, 명령 등이 이 경로로 네이티브 앱에 전달됨
  • 결과적으로 웹 브라우저와 네이티브 앱의 세션 및 식별 정보연계

프라이버시 및 보안 영향

  • 이 방법은 쿠키 삭제시크릿 모드 등 기존 웹 프라이버시 보호 정책무력화
  • Android 권한 시스템 역시 해당 경로를 통제하지 못함
  • 악성 앱이 같은 방식으로 웹 활동 감시를 시도할 가능성 존재함

참고 자료

  • Yandex가 localhost로 요청을 보내는 장면을 보여주는 비디오
    • 좌측: 원격 디버깅 툴에서 안드로이드 브라우저 내 네트워크 활동 확인
    • 우측: POC 앱(상단)과 브라우저(하단)가 실행되는 안드로이드 화면
  • Meta Pixel이 localhost로 STUN 요청을 보내는 장면
    • 좌측: Wireshark로 네트워크 트래픽 관찰
    • 우측: 웹사이트 방문 시 요청이 발생하는 모습(안드로이드 기기 에뮬레이션 상태)
  • Meta Pixel이 사용할 포트 및 프로토콜 매개변수 이미지
  • Meta Pixel이 SDP Munging을 통해 _fbp 쿠키 값을 삽입하는 과정 이미지
  • Meta Pixel이 STUN을 활용해 _fbp 쿠키 값을 모바일 앱으로 전송하는 이미지

Read Entire Article