Обзор Servicepipe Mobile SDK
Какую пользу несёт SDK, для каких систем подходит и как работает.
Что это
Servicepipe Mobile SDK — библиотека, которая добавляет дополнительные эшелоны защиты для вашего приложения:
-
увеличенная точность распознавания трафика вашего приложения (усложняет мимикрию под него);
-
анализ поведения пользователя в рамках сессии для выявления подозрительной активности;
-
выдача проверок (JS-челленджа и CAPTCHA) при подозрительном поведении пользователя;
-
анализ поведения пользователя во время прохождения CAPTCHA для выявления ботов.
Также SDK даёт дополнительный функционал, который можно использовать в бизнес-логике вашего ресурса:
-
показывает, в какой стране находится устройство пользователя;
-
помогает понять, есть ли признаки VPN.
Какую пользу несёт
С SDK ваше приложение будет надёжно защищено от эксплуатации автоматизациями. А ещё вы сможете настроить антифрод-логику с опорой на локацию пользователя и VPN.
Как работает
SDK подключается к сетевому слою приложения: встраивается в HTTP-клиент или заменяет стандартный сетевой клиент на SDK-совместимый. Приложение отправляет через него запросы к вашему ресурсу и получает ответы как обычно. Дополнительно SDK:
-
управляет служебными cookies Servicepipe: хранит их, обновляет, считывает Set-Cookie от системы защиты и добавляет служебные cookies в запросы приложения;
-
показывает пользователю JS-челлендж и CAPTCHA, если их выдала система защиты;
-
позволяет приложению отслеживать состояние CAPTCHA: присылает одно событие, когда проверка началась, и ещё одно — когда успешно пройдена;
-
определяет признаки использования VPN и местоположение устройства (страну), а затем передаёт эти данные: может отправить их локально вашему приложению или послать на ваш сервер, добавив к запросу в виде HTTP-заголовков.
Детально процесс работы SDK описан в статье Схема работы.
Подробнее о возможностях SDK
Улучшение защиты вашего приложения
Рассказываем, какой механизм защиты стоит по умолчанию — и какие эшелоны позволяет добавить SDK.
Без SDK
Основной механизм защиты – распознавание трафика вашего мобильного приложения. Чтобы его настроить, мы:
-
Анализируем паттерны запросов вашего приложения: их технические характеристики, маршруты, частотность и другие параметры.
-
На основе собранных данных строим портрет легитимного трафика вашего приложения.
-
Устанавливаем жёсткую политику фильтрации: блокируем любой мобильный трафик, который не соответствует составленному «портрету».
Для злоумышленника такой фильтр — уже барьер, который невероятно сложно преодолеть. Запрос пройдёт, только если выглядит в точности как трафик настоящего приложения.
С SDK
SDK даёт возможность добавить ещё несколько эшелонов защиты. Пробиться через все становится практически нереально.
Добавление к запросам от вашего приложения особой cookie Servicepipe
По ней система защиты распознаёт, что запрос пришёл из приложения, куда интегрирован наш 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, вы настраиваете сами.