AppLovin Mediation Cipher Broken: Device Fingerprinting Bypasses ATT

✍️ OpenClawRadar📅 Опубликовано: 16 мая 2026 г.🔗 Source
AppLovin Mediation Cipher Broken: Device Fingerprinting Bypasses ATT
Ad

Глубокий анализ протокола рекламной медиации AppLovin выявил собственный шифр, который не защищает конфиденциальность пользователей. Исследователь расшифровал более 5000 реальных бид-запросов, полученных от согласившихся пользователей, и обнаружил, что зашифрованный полезная нагрузка передает достаточно данных об устройстве, чтобы однозначно идентифицировать iPhone в приложениях от разных издателей — даже если пользователь запретил отслеживание через App Tracking Transparency (ATT).

Как работает шифр

Каждый запрос медиации — это HTTPS POST на ms4.applovin.com/1.0/mediate. Поверх TLS второй шифр оборачивает полезную нагрузку. После декодирования base64 формат передачи состоит из трех разделенных двоеточием полей + зашифрованного текста:

2:8a2387b7dbed018e5e485792eac2b56833ce8a3a:T7NreIR729giTKR-thJPcKeT6JXevACogl57SIFzwKp-1BASwpBT6v:<binary>

Поля:

  • Тег версии (2)
  • 40-символьный идентификатор протокола — sha1(salt).hex()
  • 54-символьный суффикс ключа SDK издателя AppLovin (хранится в открытом виде в Info.plist или AndroidManifest.xml)

Шифр использует два ингредиента: 32-байтовую постоянную соль, вшитую в каждый бинарник SDK (21 значимый байт + 11 нулевых, одинаковая для нескольких приложений и платформ), и ключ SDK каждого издателя. Полученный ключ — SHA-256(salt || sdk_key[:32]). Поток ключей генерируется с помощью SplitMix64, некриптографического ГПСЧ. Счетчик — System.currentTimeMillis(), XOR с первыми 8 байтами производного ключа — раскрывает метку времени на проводе до расшифровки. MAC или аутентификация не применяются, поэтому злоумышленник может подделать зашифрованный текст.

Ad

Что передается

Расшифрованный открытый текст — это JSON, сжатый gzip, с примерно 30 ключами верхнего уровня. Критически важные:

  • device_info — собственный fingerprint-набор AppLovin с ~50 полями
  • signal_data[] — непрозрачные токены от каждого SDK партнера по спросу

Пример из запроса, где ATT отклонено (IDFA обнулен):

Поле         Значение               Что это
revision      iPhone14,3            Модель (iPhone 13 Pro Max)
os            18.6.2                Версия ОС
tm            5918212096            Общий объем RAM (5,51 ГБ)
ndx / ndy     1284 × 2778          Разрешение экрана
kb            en-US,es-ES          Установленные клавиатуры
font          UICTContentSizeCategoryXXXL  Размер текста доступности
tz_offset     -4                   Часовой пояс
volume        40                    Громкость системы
mute_switch   1                     Физический переключатель беззвучного режима
bt_ms_2       1770745989000         Время загрузки устройства (мс эпохи)
dnt / idfa    true / 00000…        ATT отклонено
idfv          81E958C3-…-51DE7CE11819  ID поставщика (стабильный во всех приложениях)

Дополнительные поля включают отступы safe-area, свободную память, код оператора, код страны, локаль, ориентацию, высоту строки состояния, монотонные часы, флаги батареи и состояние защищенного подключения. Это практически все системные свойства, доступные стороннему коду.

Распространение

Типичный издатель включает около 18 SDK спроса (Meta, Google, Mintegral, Vungle, ironSource, Unity, InMobi, BidMachine, Fyber, Moloco, TikTok, Pangle, Chartboost, Verve, MobileFuse, Bigo, Yandex, плюс собственный AppLovin). При каждой загрузке баннера (~ каждые 30 секунд) SDK AppLovin передает расшифрованную полезную нагрузку устройства каждому из этих сетей, что позволяет отслеживать пользователя между приложениями без согласия ATT.

Последствия

Предположение, что одного ATT достаточно для предотвращения детерминированной идентификации, неверно. Фингерпринтинг устройства через утекшие поля работает так же хорошо. Отсутствие аутентификации в шифре также вызывает проблемы с целостностью.

📖 Источник: HN AI Agents

Ad

👀 Смотрите также

OpenClaw Security: 13 практических шагов для защиты вашего ИИ-агента
Безопасность

OpenClaw Security: 13 практических шагов для защиты вашего ИИ-агента

В посте на Reddit изложены 13 мер безопасности для установок OpenClaw, включая запуск на отдельной машине, использование Tailscale для изоляции сети, изоляцию под-агентов в Docker и настройку белых списков для доступа пользователей.

OpenClawRadar
Безопасный поток утверждения администратором для групповых чат-ассистентов от инъекций подсказок
Безопасность

Безопасный поток утверждения администратором для групповых чат-ассистентов от инъекций подсказок

Практический подход к защите LLM-ассистентов в общих групповых чатах: приостановка VM, OAuth и инструментов выполнения кода до подтверждения администратором по временной ссылке.

OpenClawRadar
arifOS: Управляющее ядро MCP стоимостью 15 миллионов долларов для обеспечения безопасности инструмента OpenClaw
Безопасность

arifOS: Управляющее ядро MCP стоимостью 15 миллионов долларов для обеспечения безопасности инструмента OpenClaw

arifOS — это легковесный MCP-сервер, который перехватывает вызовы инструментов OpenClaw, оценивает их по шкале от 000 до 999 и блокирует небезопасные действия с помощью 13 строгих уровней безопасности до того, как они достигнут файловых систем, API или баз данных.

OpenClawRadar
Fil-C делает setjmp/longjmp и ucontext безопасными для памяти
Безопасность

Fil-C делает setjmp/longjmp и ucontext безопасными для памяти

Fil-C реализует setjmp/longjmp и ucontext API без повреждения стека или висящих указателей, предотвращая распространенные ошибки, ведущие к сбоям или уязвимостям.

OpenClawRadar