1P by GN⁺ 18시간전 | ★ favorite | 댓글 1개
  • 화이트하우스 iOS 앱의 실제 HTTPS 트래픽을 MITM 프록시로 캡처해 어떤 서버와 데이터를 주고받는지 분석함
  • 앱은 whitehouse.gov 외에도 Elfsight, OneSignal, YouTube, Google DoubleClick, Facebook, Twitter31개 제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는 사이버보안, 인프라, 개발 서비스를 제공하는 기업
  • 모바일 앱 보안 평가 및 분석 서비스를 수행
Hacker News 의견들
  • 전체 3rd-party 요청 중 43%가 Google 관련(YouTube, Fonts, Analytics 포함)이고, Facebook과 Twitter까지 합치면 55% 정도임
    정부 앱이 과도한 트래킹이나 분석 코드를 넣는 건 문제지만, Google Fonts나 YouTube 임베드는 그리 심각하지 않다고 생각함
    제목에서 뭔가 Palantir나 ICE 같은 충격적인 도메인을 기대했는데, Google/Facebook이라니 좀 밋밋함
    제목은 단순히 “77%가 3rd-party 요청”이라고 하기보다, 요청의 성격과 심각도를 중심으로 써야 함
    참고로 atomic.computer도 Google Fonts와 Analytics를 쓰고 있음. 3rd-party 요청 자체를 나쁘다고 몰아가기 전에 자기 사이트도 점검해야 함

    • ICE나 Palantir가 Google이나 Facebook에서 데이터를 사는 게 금지된 건 아님
      결국 앱을 통해 어떤 데이터를 추적할지 스스로 결정할 수 있고, 일반적인 트래킹 제공자를 통해 세탁하듯 데이터를 모을 수도 있음
    • 실제 기사에서는 Google이나 YouTube보다 OneSignal과 Elfsight 요청에 초점을 맞췄음
      Google 관련 요청은 투명성을 위해 포함된 것으로 보이며, White House 앱을 비난하려는 의도는 아님
    • 현재 정부가 미국을 권위주의적 방향으로 몰고 가려는 시도가 보이지만, 거대한 시스템이라 쉽게 바뀌지 않는다고 생각함
    • “atomic.computer도 3rd-party 요청을 쓴다”는 식의 반론은 ‘메신저를 공격하는 논리’ 라 약함
      atomic.computer는 3rd-party 요청이 본질적으로 나쁘다고 말한 게 아니라, 데이터 수집과 추적의 수단으로 분석했을 뿐임
      사용자는 데이터가 수집된 후 어떻게 쓰이는지 통제할 수 없고, 결국 통제권의 부재가 핵심 문제임
  • mitmproxy를 Mac에 설치하고 iPhone 트래픽을 그쪽으로 라우팅해 HTTPS를 복호화했다고 함
    iPhone에서 사용자 인증서를 신뢰하게 만드는 게 그렇게 쉬운 일인지 궁금했음
    Android에서는 네트워크 트래픽을 들여다보는 게 꽤 번거로움
    이런 실험은 우리가 기기 통제권을 가져야 한다는 점을 잘 보여줌. 데이터가 어디로, 어떤 내용이 전송되는지 알 권리가 있음
    예전에 Zoom이 중국으로 트래픽을 보냈던 사례나, Facebook이 앱 내 브라우징 데이터를 추적했던 일도 떠오름

    • iOS는 여전히 기본적으로 사용자 설치 인증서를 신뢰함
      다만 앱이 자체 OpenSSL을 쓰거나 certificate pinning을 적용하면 예외임
      Facebook이나 Twitter 같은 대형 앱은 대부분 pinning을 사용하지만, 이런 단순한 앱은 그렇지 않음
    • iOS에서 mitmproxy 설정은 Android보다 훨씬 쉬움
      다만 pinning이 걸린 앱은 우회가 어렵고, 자체 앱 설치가 가능한 플랫폼이 더 유리함
    • CA 설치 과정이 번거롭긴 하지만, pinning이 없는 앱은 트래픽 가로채기가 어렵지 않음
      은행 앱처럼 pinning이 강한 경우는 루팅된 기기가 필요함
    • 흥미로운 건, 일부 보안 커뮤니티가 MITM 프록시를 비난하면서도 정작 기업 중심 시각에 물들어 있다는 점임
    • Zoom이 중국으로 트래픽을 보냈을 때, 정부 회의 영상이 그대로 넘어갔을 가능성도 있음
      그게 딥페이크 학습 데이터로 쓰였을지도 모른다는 상상까지 듦
  • 관련된 이전 토론 스레드가 있음
    이전 논의 1, 이전 논의 2

  • 나는 대부분의 광고 도메인(예: doubleclick.net)을 DNS 수준에서 차단
    뉴스 사이트를 포함해 대부분의 웹사이트가 수많은 3rd-party 연결을 여는 게 놀라움
    atomic.computer도 Cloudflareinsights와 Google Fonts를 불러오려 하지만 내 네트워크에서는 차단됨
    이런 요청들이 Google이 사용자를 인터넷 전반에서 추적하게 만드는 주요 원인임

  • 정부 앱은 일반 B2C 앱보다 훨씬 높은 기준을 적용받아야 함
    Google Fonts를 불러오는 건 괜찮지만, OneSignal이나 Facebook으로 텔레메트리를 보내는 건 다른 문제임
    호주에서는 PSPF와 ISM 규정상, 정부 데이터가 신뢰되지 않은 외부로 전송되면 안 됨
    이런 앱은 IRAP 평가에서 바로 탈락함
    해결책은 간단함 — 폰트는 자체 호스팅, 분석은 1st-party로, 외부 요청은 데이터 유출 벡터로 간주해야 함

    • 실제로는 높은 기준이 존재하지만, 현 행정부가 그 기준을 지키지 않음
    • 왜 정부 앱이 더 높은 기준을 가져야 하는지 의문이라는 의견도 있음. 결국 브랜드 문제일 뿐이라고 봄
  • 대부분의 B2C 앱도 3rd-party 요청 비율이 50% 이상임
    White House 앱의 77%가 놀랍지는 않지만, 앱스토어의 데이터 수집 항목을 잘못 기재한 게 문제였음
    이후 수정되어 현재는 올바르게 표시됨

    • 나는 White House 앱의 3rd-party 텔레메트리도, 다른 앱의 것도 모두 반대함. 멀티태스킹 가능함
    • 정부 앱이 B2C처럼 만들어진 게 바로 문제의 핵심임
    • White House 앱이 Huawei로 데이터를 보낸다는 식의 과장된 주장도 있었지만, 실제로는 다른 앱보다 20% 더 많다는 점이 놀라움
  • 정부 앱도 높은 기준을 받아야 하지만, 77%라는 수치가 업계 평균과 크게 다르지 않을 수도 있음
    수많은 앱이 광고 코드와 트래커를 포함하므로, 이 정도면 일반적인 수준일 가능성도 있음

  • 앱이 사용하는 SDK 목록을 AppGoblin에서 확인할 수 있음

  • Privacy manifest에는 “데이터 수집 없음”이라고 되어 있지만, 실제로는 OneSignal로 기기 모델, IP, 세션 수, 추적 ID를 전송함
    이는 명백한 허위 인증(false attestation) 문제임

  • 다음 단계는 아마 광고 추가일 것 같음