Обзор Servicepipe Mobile SDK

Какую пользу несёт SDK, для каких систем подходит и как работает.

Что это

Servicepipe Mobile SDK — библиотека, которая добавляет дополнительные эшелоны защиты для вашего приложения:

  • увеличенная точность распознавания трафика вашего приложения (усложняет мимикрию под него);

  • анализ поведения пользователя в рамках сессии для выявления подозрительной активности;

  • выдача проверок (JS-челленджа и CAPTCHA) при подозрительном поведении пользователя;

  • анализ поведения пользователя во время прохождения CAPTCHA для выявления ботов.

Также SDK даёт дополнительный функционал, который можно использовать в бизнес-логике вашего ресурса:

  • показывает, в какой стране находится устройство пользователя;

  • помогает понять, есть ли признаки VPN.

Какую пользу несёт

С SDK ваше приложение будет надёжно защищено от эксплуатации автоматизациями. А ещё вы сможете настроить антифрод-логику с опорой на локацию пользователя и VPN.

Для каких систем подходит

Можно интегрировать в приложения для Android, iOS и React Native.

Как работает

SDK подключается к сетевому слою приложения: встраивается в HTTP-клиент или заменяет стандартный сетевой клиент на SDK-совместимый. Приложение отправляет через него запросы к вашему ресурсу и получает ответы как обычно. Дополнительно SDK:

  • управляет служебными cookies Servicepipe: хранит их, обновляет, считывает Set-Cookie от системы защиты и добавляет служебные cookies в запросы приложения;

  • показывает пользователю JS-челлендж и CAPTCHA, если их выдала система защиты;

  • позволяет приложению отслеживать состояние CAPTCHA: присылает одно событие, когда проверка началась, и ещё одно — когда успешно пройдена;

  • определяет признаки использования VPN и местоположение устройства (страну), а затем передаёт эти данные: может отправить их локально вашему приложению или послать на ваш сервер, добавив к запросу в виде HTTP-заголовков.

Детально процесс работы SDK описан в статье Схема работы.

Подробнее о возможностях SDK

Улучшение защиты вашего приложения

Рассказываем, какой механизм защиты стоит по умолчанию — и какие эшелоны позволяет добавить SDK.

Без SDK

Основной механизм защиты – распознавание трафика вашего мобильного приложения. Чтобы его настроить, мы:

  1. Анализируем паттерны запросов вашего приложения: их технические характеристики, маршруты, частотность и другие параметры.

  2. На основе собранных данных строим портрет легитимного трафика вашего приложения.

  3. Устанавливаем жёсткую политику фильтрации: блокируем любой мобильный трафик, который не соответствует составленному «портрету».

Для злоумышленника такой фильтр — уже барьер, который невероятно сложно преодолеть. Запрос пройдёт, только если выглядит в точности как трафик настоящего приложения.

С SDK

SDK даёт возможность добавить ещё несколько эшелонов защиты. Пробиться через все становится практически нереально.

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

Анализ поведения в рамках сессии

К каждому запросу SDK добавляет ID сессии. Благодаря этому система защиты связывает отдельные обращения в единую цепочку и анализирует поведение пользователя: последовательность действий, частоту запросов и сценарии работы с ресурсом. Если поведение подозрительное, блокирует запрос либо выдаёт пользователю антибот-проверку: JavaScript-челлендж, CAPTCHA, либо обе сразу — сначала одну, затем другую.

Прохождение антибот-проверки

Когда система защиты выдаёт редирект на страницу с JavaScript-челленджем или CAPTCHA, SDK открывает её в специальном окне внутри приложения. Если клиент злоумышленника не способен обрабатывать сценарий с антибот-проверкой, то не сможет её открыть, а значит, и пройти.

Анализ процесса прохождения проверки

Во время JavaScript-челленджа и CAPTCHA система защиты учитывает не только итоговый ответ, но и технические и поведенческие признаки прохождения. Если признаки не похожи на то, что проверку проходит реальный человек с реального устройства, запрос блокируется.

Итог

Для автоматизаций становится почти нереально пробиться через защиту приложения с SDK. Для этого нужно:

  • делать запросы с теми же техническими характеристиками, что и приложения на телефонах реальных пользователей;

  • уметь воспроизводить наши служебные cookies;

  • повторять паттерны запросов реальных пользователей;

  • иметь техническую возможность распознать и пройти JS-челлендж и CAPTCHA;

  • при прохождении JS-челленджа и CAPTCHA делать это как реальный человек с реального устройства.

Чтобы обойти защиту, злоумышленникам пришлось бы построить настолько сложную, продвинутую и дорогую систему, что эксплуатация вашего приложения будет экономически невыгодной. Чего мы и добивались.

Определение страны, где сейчас находится устройство

Чтобы узнать текущее местоположение, SDK использует локальные признаки устройства. На iOS это таймзона и GPS, на Android — GPS, данные мобильной сети и таймзона. SDK их анализирует и возвращает код страны по стандарту ISO 3166-1 alpha-2: например, ru, или de.

Этот код страны SDK может:

  • передать приложению локально — для этого приложение должно просто сделать вызов API SDK;

  • отправить на ваш сервер — для этого SDK добавит к запросу, который делает приложение, HTTP-заголовок с кодом страны.

Куда передавать код страны, вы настраиваете сами.

Обнаружение VPN

SDK проверяет сетевое окружение: например, наличие VPN-интерфейсов, системный proxy и платформенные признаки активной сети. На Android также может использовать результат ConnectivityManager.getNetworkCapabilities(activeNetwork). В результате анализа SDK возвращает список VPN-признаков: их описание, тип и уровень уверенности в использовании VPN.

Эти данные SDK может:

  • передать приложению локально — для этого приложение должно просто сделать вызов API SDK;

  • отправить на ваш сервер — для этого SDK добавит к запросу, который делает приложение, HTTP-заголовок с VPN-признаками.

Куда именно передавать данные о VPN, вы настраиваете сами.

Что дальше

Интегрируйте SDK и наслаждайтесь надёжной защитой от эксплуатации вашего приложения автоматизациями.

Встроить SDK и ответить на ваши вопросы помогут статьи: