화이트하우스 공식 앱의 네트워크 트래픽을 가로채 분석한 결과
1 week ago
2
- 화이트하우스 iOS 앱의 실제 HTTPS 트래픽을 MITM 프록시로 캡처해 어떤 서버와 데이터를 주고받는지 분석함
- 앱은 whitehouse.gov 외에도 Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook, Twitter 등 31개 제3자 호스트와 통신함
-
OneSignal로는 언어, 시간대, IP, 기기 모델, 세션 횟수 등 사용자 프로파일링 정보가 지속적으로 전송됨
-
Elfsight 위젯 로더를 통해 외부 스크립트가 실행되고, Google DoubleClick 광고 추적 코드도 앱 내부에서 동작함
- 앱의 프라이버시 매니페스트에는 “데이터 수집 없음”으로 표시되어 있으나, 실제로는 다수의 제3자 추적 및 데이터 전송이 이루어짐
네트워크 트래픽 분석 개요
- 화이트하우스 공식 iOS 앱의 네트워크 트래픽을 MITM(중간자 공격) 프록시로 캡처해 분석
- macOS 환경에서 mitmproxy를 설치하고, iPhone의 모든 HTTPS 트래픽을 프록시를 통해 기록
- 앱 버전은 v47.0.4 (build 81) 이며, Home, News, Live, Social, Explore 탭을 모두 탐색
- 트래픽은 변조 없이 복호화 및 기록되었으며, 일반 사용자 사용 방식 그대로 수행
앱이 접속한 서버
- 단일 세션에서 앱은 31개의 고유 호스트에 요청을 전송 (iOS 시스템 트래픽 제외)
- 총 206건의 요청 중 48건(23%) 만 whitehouse.gov로 전송
- 나머지 158건(77%) 은 Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook, Twitter 등 제3자 서비스로 전송
- 주요 요청 대상
-
whitehouse.gov: WordPress API (뉴스, 홈, 갤러리 등)
-
YouTube: 동영상 임베드 및 썸네일
-
Elfsight: 위젯 로딩, 정적 자산, 파일 저장소, 부트 API 등
-
OneSignal: 분석 및 사용자 프로파일링
-
Facebook/Twitter CDN: 이미지 로드
-
Google APIs 및 DoubleClick: 광고 및 추적
OneSignal로 전송되는 데이터
- 앱 실행 시 api.onesignal.com으로 HTTPS 요청 본문이 전송됨
- 포함된 정보: 언어, 시간대, 국가, IP 주소, 첫 실행 및 마지막 활동 시각, 기기 모델, OS 버전, 네트워크 유형(WiFi/셀룰러), 통신사, 탈옥 여부, 세션 횟수, 세션 시간, 고유 식별자
- 앱 실행마다 PATCH 요청을 다수 전송해 프로필을 갱신
- 첫 실행 시 18건의 PATCH 요청, 전체 세션에서는 9건의 OneSignal 요청 확인
- 순서: GET으로 기존 프로필 조회 → PATCH로 세션 정보 업데이트
- OneSignal은 세션별 IP, 활동 시간, 세션 횟수, 세션 지속 시간을 지속적으로 기록
- IP 주소 변경 시 프로필 업데이트
-
first_active 타임스탬프는 설치 시점 이후 변경되지 않음
- 결과적으로 OneSignal은 사용자별 지속적 프로필을 유지하며, 앱 사용 패턴과 네트워크 환경을 추적
- 트래픽의 User-Agent는 WhiteHouse/81 CFNetwork/3860.400.51 Darwin/25.3.0
Elfsight 관련 트래픽
- 정적 분석에서 확인된 6개 위젯과 2단계 JavaScript 로더가 실제 트래픽에서도 확인됨
- Social 탭을 열면 앱이 13개의 Elfsight 도메인에 접속
-
elfsightcdn.com, core.service.elfsight.com, static.elfsight.com, storage.elfsight.com, widget-data.service.elfsight.com, video-proxy.wu.elfsightcompute.com 등
-
/p/boot/ 요청을 통해 각 위젯 ID를 전송하면 서버가 실행할 스크립트 목록(assets 배열) 을 반환
- 예: TikTok → tiktokFeed.js, Instagram → instashow.js, Facebook → facebookFeed.js, YouTube → yottie.js
- 앱의 loadAssets 함수가 각 URL을 <script>로 삽입해 실행
- Elfsight 서버는 세션 중 10개 이상의 쿠키를 설정
-
elfsight_viewed_recently, Cloudflare 추적 쿠키(_cfuvid, __cf_bm), 세션 식별자 등 포함
Google DoubleClick 광고 추적
- YouTube 임베드 시 Google 광고 추적 인프라가 함께 로드됨
-
googleads.g.doubleclick.net, static.doubleclick.net 요청 확인
- DoubleClick은 Google의 광고 제공 및 추적 플랫폼으로,
화이트하우스 공식 앱 내부에서 광고 추적 코드가 실행됨
- 앱의 프라이버시 매니페스트에는 이 내용이 명시되지 않음
프라이버시 매니페스트와 실제 동작의 불일치
- 앱의 선언된 프라이버시 설정:
NSPrivacyCollectedDataTypes: []
NSPrivacyTracking: false
- 실제 세션에서 확인된 데이터 전송:
- OneSignal로 기기 모델, OS, IP, 시간대, 언어, 세션 횟수, 세션 시간, 고유 식별자 전송
- Elfsight 도메인 13곳 접속 및 10개 이상 추적 쿠키 수신
- Google DoubleClick 광고 추적 코드 실행
- Facebook, Twitter/X, YouTube, Google API 요청 발생
- 결과적으로 앱은 “데이터 수집 없음”으로 표시되어 있으나, 실제로는 다수의 제3자 추적 및 데이터 전송이 이루어짐
분석 방법론
-
프록시 도구: mitmproxy (mitmdump)
-
환경: macOS, iPhone(iOS), 동일 WiFi 네트워크
-
인증서: mitmproxy CA를 iOS 신뢰 설정에 추가
-
캡처 범위: 앱의 5개 탭 전체 탐색 중 발생한 HTTPS 트래픽
-
변조 여부: 없음, 트래픽은 관찰만 수행
-
개인정보 처리: IP, 기기 식별자, OneSignal ID 등은 게시물에서 모두 마스킹 처리
-
서버 침입 또는 조작 행위 없음, 앱의 자발적 통신만 기록
관련 연구
- 화이트하우스 iOS 앱의 정적 분석 보고서
- Android 버전의 Thereallo 분석 결과
Atomic Computer 소개
-
Atomic Computer는 사이버보안, 인프라, 개발 서비스를 제공하는 기업
- 모바일 앱 보안 평가 및 분석 서비스를 수행
-
Homepage
-
개발자
- 화이트하우스 공식 앱의 네트워크 트래픽을 가로채 분석한 결과