AppLovin 미디에이션 암호 해독됨: 기기 지문 인식으로 ATT 우회

AppLovin의 광고 중개 프로토콜에 대한 심층 분석 결과, 사용자 프라이버시를 보호하지 못하는 사용자 지정 암호가 발견되었습니다. 연구원은 동의한 사용자로부터 캡처한 5,000개 이상의 실제 입찰 요청을 복호화했으며, 암호화된 페이로드가 사용자가 App Tracking Transparency(ATT) 권한을 거부한 경우에도 여러 퍼블리셔의 앱에서 iPhone을 고유하게 식별할 수 있을 만큼 충분한 기기 데이터를 전송한다는 사실을 알아냈습니다.
암호 작동 방식
각 중개 요청은 ms4.applovin.com/1.0/mediate로 전송되는 HTTPS POST입니다. TLS 계층 내부에서 두 번째 암호가 페이로드를 래핑합니다. base64 디코딩 후, 와이어 형식은 콜론으로 구분된 세 개의 필드와 암호문으로 구성됩니다:
2:8a2387b7dbed018e5e485792eac2b56833ce8a3a:T7NreIR729giTKR-thJPcKeT6JXevACogl57SIFzwKp-1BASwpBT6v:<binary>
필드:
- 버전 태그(
2) - 40자 프로토콜 ID —
sha1(salt).hex() - 퍼블리셔의 AppLovin SDK 키의 54자 접미사(
Info.plist또는AndroidManifest.xml에 일반 텍스트로 저장됨)
암호는 두 가지 요소를 사용합니다: 모든 SDK 바이너리에 내장된 32바이트 상수 솔트(21개의 의미 있는 바이트 + 11개의 0바이트, 여러 앱 및 플랫폼에서 동일)와 퍼블리셔별 SDK 키입니다. 파생 키는 SHA-256(salt || sdk_key[:32])입니다. 키스트림은 비암호화 PRNG인 SplitMix64를 사용하여 생성됩니다. 카운터는 System.currentTimeMillis()와 파생 키의 처음 8바이트를 XOR한 값으로, 복호화 전에 와이어 상의 벽시계 시간을 유출합니다. MAC 또는 인증이 적용되지 않으므로 공격자가 암호문을 변조할 수 있습니다.
전송되는 데이터
복호화된 평문은 gzip 압축된 JSON으로, 약 30개의 최상위 키가 있습니다. 중요한 키:
device_info— 약 50개 필드가 있는 AppLovin 자체 핑거프린트 페이로드signal_data[]— 각 수요 파트너 SDK의 불투명 토큰
ATT가 거부된(IDFA가 0으로 설정된) 요청의 예:
필드 값 설명
revision iPhone14,3 하드웨어 모델(iPhone 13 Pro Max)
os 18.6.2 OS 버전
tm 5918212096 총 RAM(5.51 GB)
ndx / ndy 1284 × 2778 네이티브 화면 픽셀
kb en-US,es-ES 설치된 키보드
font UICTContentSizeCategoryXXXL 접근성 텍스트 크기
tz_offset -4 시간대
volume 40 시스템 오디오 볼륨
mute_switch 1 물리적 음소거 스위치
bt_ms_2 1770745989000 기기 부팅 시간(ms epoch)
dnt / idfa true / 00000… ATT 거부됨
idfv 81E958C3-…-51DE7CE11819 벤더 ID(앱 간 안정적)
추가 필드에는 세이프 에어리어 인셋, 여유 메모리, 통신사 코드, 국가 코드, 로캘, 방향, 상태 표시줄 높이, 모노토닉 클록, 배터리 플래그, 보안 연결 상태가 포함됩니다. 이는 사실상 서드파티 코드가 액세스할 수 있는 모든 시스템 속성입니다.
다운스트림 노출
일반적인 퍼블리셔는 약 18개의 수요 SDK(Meta, Google, Mintegral, Vungle, ironSource, Unity, InMobi, BidMachine, Fyber, Moloco, TikTok, Pangle, Chartboost, Verve, MobileFuse, Bigo, Yandex, 그리고 AppLovin 자체)를 포함합니다. 모든 배너 로드 시(약 30초 간격), AppLovin SDK는 복호화된 기기 페이로드를 각 다운스트림 네트워크에 전달하여 ATT 동의 없이 교차 앱 사용자 추적을 가능하게 합니다.
의미
ATT만으로 결정론적 식별을 방지할 수 있다는 가정은 거짓입니다. 유출된 필드를 통한 기기 핑거프린팅도 동일하게 작동합니다. 암호 계층의 인증 부재는 무결성 문제도 제기합니다.
📖 전체 소스 읽기: HN AI Agents
👀 See Also

AviationWeather.gov API에 'Stop Claude' 프롬프트 인젝션 시도가 포함되어 있습니다
한 사용자가 미국 정부의 AviationWeather.gov API가 Claude CoWork를 통해 접속할 때 응답에 'Stop Claude'라는 텍스트를 반환한다고 보고하며, 이는 프롬프트 인젝션 공격에 대한 보안 경고를 유발했습니다.

2분 만에 Nono 커널 기반 격리로 OpenClaw를 안전하게 보호하세요
OpenClaw 사용자들은 이제 성능 저하 없이 향상된 보안을 누릴 수 있습니다. 이는 단 2분만에 적용 가능한 빠르고 효과적인 솔루션인 Nono 커널 기반 격리 덕분입니다.

OpenClaw 스킬 분석기: AI 에이전트 스킬용 정적 보안 스캐너
한 개발자가 설치 전에 OpenClaw 스킬의 보안 위험을 스캔하는 정적 분석기를 구축했으며, 프롬프트 인젝션과 데이터 유출을 포함한 12개 범주에 걸쳐 40개 이상의 탐지 규칙을 갖추고 있습니다.

유니폼 가드 문제: 에이전트 샌드박스에 정책뿐만 아니라 신원이 필요한 이유
Nemoclaw의 openshell 샌드박스는 정책을 바이너리에 범위를 지정하여, 에이전트와 동일한 바이너리를 사용해 malware가 live-off-the-land를 수행할 수 있게 합니다. 오픈소스 에이전트 식별 레이어인 ZeroID는 보안 정책을 안전한 식별로 뒷받침되는 에이전트에 적용합니다.