Назад к блогу

SSL Pinning bypass через прокси: как перехватить трафик мобильного приложения и не сломать тест

SSL Pinning мешает перехватывать трафик мобильных приложений — разбираем, как это обойти через прокси без глубоких технических знаний.

📅6 августа 2026 г.

Вы настраиваете прокси, подключаете устройство — и всё равно приложение не показывает трафик или падает с ошибкой. Скорее всего, проблема в SSL Pinning: защите, которую разработчики намеренно встраивают в приложение, чтобы заблокировать перехват HTTPS-запросов. Это головная боль для всех, кто анализирует поведение конкурентских приложений, тестирует рекламные интеграции или изучает API маркетплейсов.

В этом руководстве разберём, что такое SSL Pinning, почему он мешает работе с прокси, и как его обойти — пошагово, без лишней теории.

Что такое SSL Pinning и зачем его встраивают в приложения

SSL Pinning (или Certificate Pinning) — это механизм безопасности, при котором мобильное приложение заранее «прошивает» в себя конкретный SSL-сертификат или публичный ключ сервера. При каждом подключении приложение проверяет: совпадает ли сертификат сервера с тем, что зашито внутри? Если нет — соединение обрывается.

В обычной HTTPS-схеме браузер или приложение доверяют любому сертификату, подписанному доверенным центром сертификации (CA). Именно этим пользуются прокси-инструменты вроде Charles Proxy или mitmproxy: они подставляют свой сертификат, расшифровывают трафик, и пересылают его дальше. Пользователь видит весь обмен данными в открытом виде.

SSL Pinning ломает эту схему. Приложение видит сертификат прокси-инструмента, понимает, что он не совпадает с «родным» сертификатом сервера, и отказывается работать. Именно поэтому вы видите ошибки вроде SSL handshake failed, Certificate verification failed или просто пустой экран в приложении.

Разработчики внедряют SSL Pinning по нескольким причинам:

  • Защита от атак типа Man-in-the-Middle (MITM)
  • Предотвращение реверс-инжиниринга API
  • Защита от ботов и автоматизированных запросов
  • Скрытие внутренней логики монетизации и рекламных интеграций

Среди приложений, которые активно используют SSL Pinning: банковские приложения, маркетплейсы (Wildberries, Ozon), рекламные SDK (Facebook, TikTok), платёжные системы и крупные e-commerce платформы. Именно поэтому обход SSL Pinning так важен для маркетологов, арбитражников и специалистов по анализу конкурентов.

Почему прокси не работает, если в приложении есть SSL Pinning

Когда вы настраиваете прокси на телефоне (например, через настройки Wi-Fi), весь HTTP и HTTPS трафик проходит через прокси-сервер. Для HTTP это работает без проблем — трафик и так открытый. Но для HTTPS прокси-инструмент должен «представиться» сервером, подставив свой сертификат.

Вот где возникает конфликт. Обычные приложения принимают этот сертификат, если вы установили корневой сертификат прокси-инструмента в системное хранилище устройства. Но приложения с SSL Pinning игнорируют системное хранилище — они проверяют только свой «зашитый» сертификат.

Как это выглядит на практике:

Вы подключаете Charles Proxy, устанавливаете его корневой сертификат на iPhone, запускаете приложение маркетплейса — и видите ошибку или пустой экран. В логах Charles — пустота или записи с ошибкой SSL. Это классическая картина SSL Pinning в действии.

Важно понимать: проблема не в прокси-сервере (резидентном, мобильном или дата-центровом). Прокси здесь выступает как промежуточный узел для маршрутизации трафика. Проблема — в самом приложении, которое отказывается принимать подменённый сертификат. Поэтому решение нужно искать на уровне приложения или устройства, а не на уровне прокси-сервера.

Существует несколько типов SSL Pinning, и они отличаются по сложности обхода:

Тип Pinning Что проверяется Сложность обхода
Certificate Pinning Полный сертификат сервера Средняя
Public Key Pinning Публичный ключ из сертификата Высокая
Hash Pinning Хэш сертификата или ключа Высокая
Network Security Config Конфиг-файл Android (XML) Низкая–средняя

Инструменты для перехвата трафика: Charles, mitmproxy, Burp Suite

Прежде чем переходить к обходу SSL Pinning, нужно выбрать инструмент для перехвата трафика. Все они работают по одному принципу: поднимают локальный прокси-сервер, через который проходит трафик устройства. Разница — в удобстве, функциях и цене.

Charles Proxy

Самый популярный инструмент среди маркетологов и тестировщиков без глубокого технического бэкграунда. Имеет графический интерфейс, работает на Windows и macOS. Позволяет видеть все запросы и ответы в удобном дереве, фильтровать по домену, редактировать запросы на лету. Платный, но есть пробный период. Отлично подходит для анализа API маркетплейсов и рекламных SDK.

mitmproxy

Бесплатный инструмент с открытым исходным кодом. Работает через командную строку, но есть веб-интерфейс (mitmweb). Очень гибкий: поддерживает скрипты для автоматической модификации трафика. Хорошо подходит для тех, кто хочет автоматизировать анализ или интегрировать перехват в пайплайн тестирования. Чуть сложнее в настройке, чем Charles.

Burp Suite

Профессиональный инструмент для тестирования безопасности. Имеет бесплатную Community-версию с базовым функционалом. Особенно удобен для детального анализа запросов, работы с cookies и сессиями. Активно используется при анализе API конкурентов и исследовании рекламных интеграций. Интерфейс сложнее Charles, но возможности шире.

Инструмент Интерфейс Цена Для кого
Charles Proxy GUI (удобный) Платный (~$50) Маркетологи, аналитики
mitmproxy CLI + Web UI Бесплатно Технические специалисты
Burp Suite GUI (сложный) Free / Pro Тестировщики безопасности

Для большинства задач маркетолога или арбитражника — анализа рекламных запросов, изучения API маркетплейса, мониторинга трафика приложения — Charles Proxy будет оптимальным выбором. Если нужна автоматизация или работа без GUI — mitmproxy.

Методы обхода SSL Pinning: от простых к продвинутым

Существует несколько подходов к обходу SSL Pinning. Они различаются по сложности, требованиям к устройству и надёжности. Рассмотрим каждый — от самого простого к самому мощному.

Метод 1: Установка сертификата в системное хранилище (только Android)

Самый простой способ — но работает только для приложений, которые используют системное хранилище сертификатов. На Android до версии 7.0 пользовательские сертификаты принимались наравне с системными. Начиная с Android 7.0, приложения по умолчанию игнорируют пользовательские CA. Если приложение явно разрешает пользовательские сертификаты в network_security_config.xml — этот метод сработает. Для большинства современных приложений с SSL Pinning — не поможет.

Метод 2: Frida — динамическое патчинг приложения

Frida — это инструмент для динамической инструментации приложений. Он позволяет «на лету» перехватывать вызовы функций внутри приложения и подменять их поведение. Для обхода SSL Pinning существуют готовые скрипты, которые отключают проверку сертификата без модификации APK. Требует root на Android или jailbreak на iOS. Это наиболее надёжный и универсальный метод.

Метод 3: Патчинг APK (Android)

Декомпиляция APK-файла с помощью apktool, удаление или модификация кода SSL Pinning, повторная сборка и подпись приложения. Не требует root, но требует технических навыков работы с smali-кодом. Хорошо работает для приложений с простой реализацией Pinning через Network Security Config. Для приложений с нативным кодом (C/C++) — значительно сложнее.

Метод 4: Objection — обёртка над Frida для новичков

Objection — это инструмент на базе Frida с более простым интерфейсом командной строки. Содержит встроенные команды для обхода SSL Pinning одной командой: android sslpinning disable. Подходит тем, кто не хочет разбираться с написанием Frida-скриптов вручную. Требует root или jailbreak.

Метод 5: Использование эмулятора с root

Вместо физического устройства можно использовать Android-эмулятор (например, Genymotion или стандартный AVD из Android Studio) с включённым root-доступом. Это позволяет устанавливать системные сертификаты и запускать Frida без риска «окирпичить» реальный телефон. Удобный вариант для регулярного тестирования в рабочей среде.

Пошаговый обход SSL Pinning на Android

Разберём наиболее практичный сценарий: Android-устройство или эмулятор с root, инструмент Objection + Frida, прокси-инструмент Charles Proxy или mitmproxy.

Что понадобится:

  • Android-устройство с root или эмулятор Genymotion
  • Компьютер с установленным Python 3
  • Frida-server для Android (скачать с GitHub)
  • Objection (устанавливается через pip)
  • Charles Proxy или mitmproxy на компьютере
  • ADB (Android Debug Bridge)

Шаг 1: Настройте прокси-инструмент на компьютере

Запустите Charles Proxy или mitmproxy. По умолчанию они слушают порт 8888 (Charles) или 8080 (mitmproxy). Запомните IP-адрес вашего компьютера в локальной сети — он понадобится для настройки прокси на устройстве.

Шаг 2: Настройте прокси на Android-устройстве

Зайдите в настройки Wi-Fi → выберите вашу сеть → нажмите «Изменить» → «Дополнительные параметры» → Прокси: Вручную. Укажите IP компьютера и порт инструмента. Теперь весь трафик устройства идёт через ваш прокси.

Шаг 3: Установите сертификат прокси-инструмента

Откройте браузер на устройстве и перейдите на адрес chls.pro/ssl (для Charles) или mitm.it (для mitmproxy). Скачайте и установите сертификат. На Android с root дополнительно переместите сертификат в системное хранилище — это нужно для некоторых приложений.

Шаг 4: Запустите Frida-server на устройстве

Скачайте frida-server нужной версии с GitHub (версия должна совпадать с версией Frida на компьютере). Загрузите файл на устройство через ADB:

adb push frida-server /data/local/tmp/
adb shell "chmod 755 /data/local/tmp/frida-server"
adb shell "su -c /data/local/tmp/frida-server &"

Шаг 5: Подключитесь через Objection и отключите SSL Pinning

На компьютере установите Objection через pip и запустите его, указав имя пакета приложения:

pip install objection
objection -g com.example.app explore

После подключения в консоли Objection выполните команду отключения SSL Pinning:

android sslpinning disable

После этого откройте приложение и начните взаимодействовать с ним. Трафик появится в Charles или mitmproxy в расшифрованном виде.

Шаг 6: Для приложений с Network Security Config

Если приложение использует network_security_config.xml, можно декомпилировать APK через apktool, найти этот файл и добавить разрешение для пользовательских сертификатов, затем пересобрать и переподписать APK. Это работает без root, но требует отключения проверки подписи приложения.

Пошаговый обход SSL Pinning на iOS

На iOS ситуация сложнее: для большинства методов требуется jailbreak. Без него возможности ограничены. Рассмотрим оба варианта.

Вариант А: С jailbreak (iOS 14-16, checkra1n / palera1n)

Шаг 1: Настройте прокси

На iPhone зайдите в Настройки → Wi-Fi → ваша сеть → Настроить прокси → Вручную. Укажите IP компьютера и порт Charles/mitmproxy.

Шаг 2: Установите сертификат

Откройте Safari и перейдите на chls.pro/ssl. Установите профиль через Настройки → Общие → VPN и управление устройством. Затем активируйте его в Настройки → Основные → Доверие сертификатам.

Шаг 3: Установите SSL Kill Switch 2 через Cydia/Sileo

SSL Kill Switch 2 — это твик для jailbroken iOS, который отключает SSL Pinning глобально для всех приложений. Найдите его в Cydia или Sileo, установите, перезагрузите устройство. После этого большинство приложений перестанут проверять сертификаты, и трафик будет виден в Charles.

Шаг 4: Альтернатива — Frida + Objection на iOS

Аналогично Android: установите frida-server через Cydia, подключитесь через Objection на компьютере и выполните ios sslpinning disable. Этот метод более гибкий и работает для приложений, которые SSL Kill Switch 2 не покрывает.

Вариант Б: Без jailbreak (ограниченные возможности)

Без jailbreak обойти SSL Pinning на iOS значительно сложнее. Один из вариантов — использование инструмента Proxyman с его функцией SSL Proxying для iOS без jailbreak. Proxyman устанавливает специальный профиль на устройство и использует VPN-интерфейс для перехвата трафика. Работает для многих приложений, но не для всех с жёстким Pinning.

Другой вариант — использовать iOS-симулятор в Xcode. Симулятор не имеет SSL Pinning на уровне ОС, и многие приложения можно запустить в нём (если они поддерживают симулятор). Но это подходит только для тестирования, а не для анализа продакшн-приложений.

Какой тип прокси выбрать для тестирования мобильных приложений

После того как SSL Pinning обойдён, трафик приложения проходит через ваш прокси-инструмент (Charles, mitmproxy). Но для некоторых задач нужно ещё и направить трафик через внешний прокси-сервер — например, чтобы приложение «видело» другой регион или другой IP-адрес. Здесь важно правильно выбрать тип прокси.

Резидентные прокси

Резидентные прокси используют IP-адреса реальных домашних пользователей. Мобильные приложения, особенно рекламные SDK и маркетплейсы, доверяют таким IP значительно больше, чем адресам дата-центров. Если вы анализируете поведение приложения в зависимости от региона — резидентные прокси дадут наиболее «чистую» картину, приближённую к реальному пользователю.

Мобильные прокси

Мобильные прокси работают через реальные мобильные сети (3G/4G/5G). Это особенно актуально при тестировании мобильных приложений: IP из мобильной сети имеет наивысший уровень доверия у Facebook Ads SDK, TikTok и других рекламных платформ. Если ваша цель — анализировать рекламные запросы приложения или тестировать поведение SDK в мобильной среде, мобильные прокси — оптимальный выбор.

Прокси дата-центров

Прокси дата-центров подходят для задач, где важна скорость, а не «натуральность» IP: например, для массового парсинга открытых API или тестирования производительности. Для анализа рекламных SDK и защищённых приложений они менее предпочтительны, так как легко распознаются антифрод-системами.

Тип прокси Доверие приложений Скорость Лучший сценарий
Резидентные Высокое Средняя Анализ по регионам, маркетплейсы
Мобильные Максимальное Средняя Рекламные SDK, Facebook, TikTok
Дата-центры Низкое Высокая Парсинг открытых API, нагрузочное тестирование

Практические сценарии: арбитраж, e-commerce, маркетинг

Разберём конкретные задачи, ради которых маркетологи и арбитражники идут на обход SSL Pinning.

Сценарий 1: Анализ рекламного SDK Facebook и TikTok

Арбитражники, работающие с Facebook Ads и TikTok Ads, часто хотят понять, какие данные SDK передаёт на сервер: какие события фиксируются, как формируются запросы атрибуции, какие параметры влияют на оптимизацию кампаний. Без обхода SSL Pinning это невозможно — оба SDK используют Certificate Pinning.

После обхода через Frida/Objection можно увидеть в Charles все события SDK: установки, покупки, регистрации, — и убедиться, что трекинг настроен корректно. Это особенно важно при настройке CAPI (Conversions API) и проверке дедупликации событий.

Сценарий 2: Мониторинг цен на Wildberries и Ozon через приложение

Приложения Wildberries и Ozon используют SSL Pinning для защиты своих API. Селлеры, которые хотят мониторить цены конкурентов через мобильное приложение (а не веб-версию), сталкиваются с этой защитой. После обхода SSL Pinning можно изучить структуру API-запросов и понять, какие эндпоинты используются для получения данных о ценах, наличии и рейтинге товаров.

Важно: полученные данные можно использовать только для личного анализа. Автоматизированный парсинг через воспроизведение API-запросов нарушает условия использования платформ.

Сценарий 3: Тестирование рекламных креативов из разных регионов

Маркетологи, которые тестируют рекламу в Facebook Ads и TikTok Ads из разных регионов, хотят видеть, как приложение ведёт себя при подключении через IP из конкретной страны. Комбинация обхода SSL Pinning + резидентного прокси из нужного региона позволяет увидеть, какой контент и какие цены показываются пользователям из этого региона.

Сценарий 4: QA-тестирование собственного приложения

Если вы разрабатываете собственное мобильное приложение или работаете с командой разработки, перехват трафика с обходом SSL Pinning — стандартная практика QA. Это позволяет проверить корректность запросов, найти утечки данных, проверить работу аналитики и рекламных SDK в реальных условиях перед релизом.

Сценарий 5: Анализ конкурентов в нише мобильных игр и приложений

Маркетологи мобильных игр используют перехват трафика для анализа монетизации конкурентов: какие офферы показываются, как работает система внутриигровых покупок, какие рекламные сети используются. Это помогает строить более эффективные стратегии UA (User Acquisition) и монетизации.

Чек-лист: проверь настройку перед тестом

Перед тем как приступить к перехвату трафика, убедитесь, что всё настроено корректно. Вот полный чек-лист:

✅ Чек-лист настройки

  • Прокси-инструмент (Charles/mitmproxy) запущен на компьютере и слушает нужный порт
  • Компьютер и устройство находятся в одной Wi-Fi сети
  • На устройстве в настройках Wi-Fi указан правильный IP компьютера и порт прокси
  • Корневой сертификат прокси-инструмента установлен на устройстве
  • На Android: сертификат перемещён в системное хранилище (если есть root)
  • На iOS: сертификат активирован в разделе «Доверие сертификатам»
  • Frida-server запущен на устройстве (если используете Frida/Objection)
  • Версия Frida на компьютере совпадает с версией frida-server на устройстве
  • Objection успешно подключился к процессу приложения
  • Команда android sslpinning disable выполнена без ошибок
  • В Charles/mitmproxy появляются записи при работе с приложением
  • HTTPS-запросы расшифровываются (не показывают ошибку SSL)

Частые проблемы и их решения

Проблема Причина Решение
Трафик не появляется в Charles Неверный IP/порт прокси Проверьте IP компьютера и порт
SSL ошибка в Charles Сертификат не установлен или не активирован Переустановите и активируйте сертификат
Frida не подключается Несовпадение версий frida/frida-server Синхронизируйте версии
Objection не отключает Pinning Нативный код (C/C++) с Pinning Используйте кастомный Frida-скрипт
Приложение крашится после bypass Приложение проверяет целостность Отключите также root detection через Objection

Заключение

SSL Pinning — серьёзная защита, но не непреодолимая. Для большинства практических задач маркетолога или арбитражника достаточно связки: Android-эмулятор с root + Frida/Objection + Charles Proxy. На iOS — SSL Kill Switch 2 при наличии jailbreak или Proxyman без него. Главное — правильно настроить цепочку: прокси-инструмент на компьютере → трафик через него → обход Pinning на устройстве.

Помните, что обход SSL Pinning в сторонних приложениях допустим только для личного анализа и исследования. Автоматизированный парсинг и воспроизведение API-запросов нарушает условия использования большинства платформ.

Если ваша задача — анализировать трафик мобильных приложений в разных регионах или тестировать поведение рекламных SDK из конкретных стран, вам понадобится не только обход SSL Pinning, но и качественный прокси-сервер. Для работы с рекламными платформами (Facebook Ads, TikTok Ads) и маркетплейсами рекомендуем использовать мобильные прокси — они имеют наивысший уровень доверия у антифрод-систем и позволяют корректно эмулировать реальное мобильное окружение.