SlideShare a Scribd company logo
Вадим Антонюк
Anti-fraud Team Lead
IPONWEB
Fraud in mobile
applications:
how to define and
detect
➔ Особенности In-App сегмента
➔ Определяем и детектируем: метод #1 “Backgroundness”
➔ Определяем и детектируем: метод #2 “Entropy score”
➔ Сравнение результатов, реализация и next steps
➔ Заключение
Детекция фрода в рекламных запросах в
сегменте мобильных приложений
➔ Особенности In-App сегмента
➔ Определяем и детектируем: метод #1 “Backgroundness”
➔ Определяем и детектируем: метод #2 “Entropy score”
➔ Сравнение результатов, реализация и next steps
➔ Заключение
Детекция фрода в рекламных запросах в
сегменте мобильных приложений
статус доля
✓ PC web (display & video) verified 36%
✓ Mobile web (display & video) verified 26%
❏ Mobile Applications not verified 38%
❏ Digital Out of Home not verified 0%
❏ TV not verified 0%
Структура RTB-трафика по сегментам и статус
анти-фрод верификации, 1H 2017
статус доля
✓ PC web (display & video) verified 36%
✓ Mobile web (display & video) verified 26%
❏ Mobile Applications not verified 38%
❏ Digital Out of Home not verified 0%
❏ TV not verified 0%
Структура RTB-трафика по сегментам и статус
анти-фрод верификации, 1H 2017
Ad Stacking
Bots
Ghost SitesDomain spoofing
Основные типы рекламного фрода в веб-сегменте
Основные типы рекламного фрода в сегменте
мобильных приложений
в индустрии нет единого мнения
Основные типы рекламного фрода в сегменте
мобильных приложений
➔ Особенности In-App сегмента
➔ Определяем и детектируем: метод #1 “Backgroundness”
➔ Определяем и детектируем: метод #2 “Entropy score”
➔ Сравнение результатов, реализация и next steps
➔ Заключение
Детекция фрода в рекламных запросах в
сегменте мобильных приложений
➔ “Invalid traffic is [that, which] does not result from genuine user interest.”
(Google)
перефразируем:
➔ “Traffic which is a-priori non-viewable can be defined as fraudulent.”
(IPONWEB)
➔ критерий “a-priori non-viewability” работает для:
✓ “обычных” видов фрода в веб-сегменте;
✓ показов в фоновом режиме приложения (background mode);
Определяем App Fraud через non-Viewability
➔ в потоке входящих бид-реквестов находим пары [app + user], которые
шлют сигнал в непрерывном режиме;
➔ как минимум, часть этих реквестов приходит из фонового режима
приложения;
0:00 24:00 time
t2
t1
T2
T1
➔ определим “непрерывность” сигнала через (время между соседями) < t;
➔ для каждого t мы получим значение “непрерывного” интервала T (и 
проанализируем на реалистичность);
Backgroundness: слушаем поток бид-реквестов
➔ определим поток, для которого измеренное T > Tthreshold
как фоновый;
➔ просуммируем по всем users и заблокируем приложения с большой долей
такого трафика;
➔ полученный результат будет зависеть от t и Tthreshold
;
Backgroundness: слушаем поток бид-реквестов
➔ определим поток, для которого измеренное T > Tthreshold
как фоновый;
➔ просуммируем по всем users и заблокируем приложения с большой долей
такого трафика;
➔ полученный результат будет зависеть от t и Tthreshold
;
overfitting?
Backgroundness: слушаем поток бид-реквестов
➔ определим поток, для которого измеренное T > Tthreshold
как фоновый;
➔ просуммируем по всем users и заблокируем приложения с большой долей
такого трафика;
➔ полученный результат будет зависеть от t и Tthreshold
;
overfitting?
a way to simplify?
Backgroundness: слушаем поток бид-реквестов
“Silence
isn’t empty,
it’s full of answers.”
➔ тот же датасет, находим “максимальный период тишины” Tmax
(= T3
на рис.);
➔ ...и проанализируем на реалистичность (одного T достаточно);
0:00
24:00
T1
T2
T3
Backgroundness: слушаем паузы между бид-
реквестами
1) для каждой комбинации [app + publisher_id + user] находим Tmax
по 
данным полного дневного лога бид-реквестов;
2) агрегируем по всем users, получаем плотность распределения Tmax
для каждой пары [app + publisher_id] ;
3) выбираем пороговое значение Tmax
, блокируем пары [app +
publisher_id] со значимой долей трафика ниже порога;
___
(1) also works for compressed logs with minor calibration
Методология детектирования backgroundness
➔ 99.9% трафика с Tmax
больше 6 часов;
Распределение Tmax
: пример “хорошего” трафика
приложение: surpax.ledflashlight
Tmax200 5 10 15
приложение: gau.go.launcherex
Tmax200 5 10 15
Распределение Tmax
: пример “плохого” трафика
➔ 61.7% трафика с Tmax
меньше 6 часов;
приложение: rewardable.rewardabletv
Распределение Tmax
: пример “OMFG” трафика
Tmax200 5 10 15
➔ 82.5% трафика с Tmax
меньше 6 часов;
➔ Особенности In-App сегмента
➔ Определяем и детектируем: метод #1 “Backgroundness”
➔ Определяем и детектируем: метод #2 “Entropy score”
➔ Сравнение результатов, реализация и next steps
➔ Заключение
Детекция фрода в рекламных запросах в
сегменте мобильных приложений
Определяем App Fraud через аномальную
энтропию (#1)
Определяем App Fraud через аномальную
энтропию (#1)
Shannon’s entropy: H(x) = ∑ pi
log2
(1/pi
)
Определяем App Fraud через аномальную
энтропию (#1)
Shannon’s entropy: H(x) = ∑ pi
log2
(1/pi
)
●
app1
●
●●
●
user1
user2user3
user4
Определяем App Fraud через аномальную
энтропию (#1)
Shannon’s entropy: H(x) = ∑ pi
log2
(1/pi
)
●
app1
●
●●
●
user1
user2user3
user4
Определяем App Fraud через аномальную
энтропию (#1)
Shannon’s entropy: H(x) = ∑ pi
log2
(1/pi
)
●
app1
●
●●
●
user1
user2user3
user4
H1
= 0
Определяем App Fraud через аномальную
энтропию (#1)
Shannon’s entropy: H(x) = ∑ pi
log2
(1/pi
)
●
app1
●
●●
●
user1
user2user3
user4
●
app2
●
●●
●
user1
user2user3
user4
H1
= 0
Определяем App Fraud через аномальную
энтропию (#1)
Shannon’s entropy: H(x) = ∑ pi
log2
(1/pi
)
●
app1
●
●●
●
user1
user2user3
user4
●
app2
●
●●
●
user1
user2user3
user4
H1
= 0 H2
= 3/2
Определяем App Fraud через аномальную
энтропию (#1)
Shannon’s entropy: H(x) = ∑ pi
log2
(1/pi
)
●
app1
●
●●
●
user1
user2user3
user4
●
app2
●
●●
●
user1
user2user3
user4
●
app3
●
●●
●
user1
user2user3
user4
H1
= 0 H2
= 3/2
Определяем App Fraud через аномальную
энтропию (#1)
Shannon’s entropy: H(x) = ∑ pi
log2
(1/pi
)
●
app1
●
●●
●
user1
user2user3
user4
●
app2
●
●●
●
user1
user2user3
user4
●
app3
●
●●
●
user1
user2user3
user4
H1
= 0 H2
= 3/2 H3
= 2
Определяем App Fraud через аномальную
энтропию (#1)
Shannon’s entropy: H(x) = ∑ pi
log2
(1/pi
)
●
app1
●
●●
●
user1
user2user3
user4
●
app2
●
●●
●
user1
user2user3
user4
●
app3
●
●●
●
user1
user2user3
user4
H1
= 0 H2
= 3/2 H3
= 2
entropy
maxmin
Определяем App Fraud через аномальную
энтропию (#1)
Shannon’s entropy: H(x) = ∑ pi
log2
(1/pi
)
●
app1
●
●●
●
user1
user2user3
user4
●
app2
●
●●
●
user1
user2user3
user4
●
app3
●
●●
●
user1
user2user3
user4
H1
= 0 H2
= 3/2 H3
= 2
entropy
maxmin
app ↔ user
Определяем App Fraud через аномальную
энтропию (#2)
entropy
score
low high
user
юзер использует
(создает трафик в)
мало приложений
юзер использует
(создает трафик в)
много приложений
app
приложение получает
трафик от нескольких
пользователей
приложение получает
трафик от многих
пользователей
normalized entropy score:
H{user, app} = (1/log2
C) ∑ pi
log2
(1/pi
), где pi
= Ci
/C, C = ∑ Ci
✓ ✓
✓!
справедливость
к маленьким
объектам
Распределение бид запросов по entropy score
75%25%
score
доля бид-
реквестов
0 20 40 60 80 100
Распределение бид запросов по entropy score
75%25%
score
доля бид-
реквестов
0 20 40 60 80 100
bad actors’ range
➔ Особенности In-App сегмента
➔ Определяем и детектируем: метод #1 “Backgroundness”
➔ Определяем и детектируем: метод #2 “Entropy score”
➔ Сравнение результатов, реализация и next steps
➔ Заключение
Детекция фрода в рекламных запросах в
сегменте мобильных приложений
Сравнение методов “backgroundness” и “entropy score”
➔ при одинаково подобранных
уровнях достоверности,
“backgroundness” (14%) ловит на
порядок больше app-трафика,
чем “entropy score” (1.5-2%)
➔ методы дополняют друг друга с
минимальным пересечением
(~0.1%)
entropy score
backgroundness
Что нового ловит “entropy score” в дополнение к
“backgroundness” и что можно ловить еще?
➔ bundle_id names:
juteralabs.perktv
rewardable.rewardabletv
swagbuckstvmobile.views
yoorewards
incentivised traffic
Что нового ловит “entropy score” в дополнение к
“backgroundness” и что можно ловить еще?
➔ bundle_id names:
juteralabs.perktv
rewardable.rewardabletv
swagbuckstvmobile.views
yoorewards
incentivised traffic
непрерывный поток
бид-запросов с одного
устройства
концентрация бид-
запросов c малого
числа устройств
большое число
запросов с одного
устройства
✓ "backgroundness” ✓ “entropy score” ± “high frequency uuid”
➔ Особенности In-App сегмента
➔ Определяем и детектируем: метод #1 “Backgroundness”
➔ Определяем и детектируем: метод #2 “Entropy score”
➔ Сравнение результатов, реализация и next steps
➔ Заключение
Детекция фрода в рекламных запросах в
сегменте мобильных приложений
● В результате анализа бид-запросов, генерируемых мобильными
приложениями, на большом объеме данных были обнаружены
паттерны “backgroundness” и “low entropy score”, несовместимые с
нормальным пользовательским поведением.
● Обнаруженные паттерны могут являться основанием для
фильтрации мошеннического трафика в сегменте мобильных
приложений.
Заключение
Fraud in mobile applications: how to define and detect / Вадим Антонюк (IPONWEB)
✓ Полный дневной или выборочный недельный лог бид-реквестов
(>150 млрд. in-app запросов);
✓ Ночной batch-процесс считает метрики и готовит кэш с блок-
листами
✓ Раскатка кэша в продакшн в начале рабочего дня (есть
возможность вмешательства)
✓ “Backgroundness” 一 вывод на проектную мощность Nov-2017
❏ “Entropy score” 一 плановый запуск 1Q-2018
Appendix I: Техническая реализация

More Related Content

PDF
Opera Mediaworks Russia Mediakit 2015 new
PDF
Как настроить аналитику для мобильных приложений
PPTX
Conversion conf 2015-price.ru-petrovsky-similarweb.com-19.02-v1
PPT
pirate pay bit final 2010
PDF
Маркетинг мобильных приложений: чек-лист по запуску первой кампании
PDF
Performance-маркетинг мобильных приложений
PDF
Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"
PDF
Тестирование трафика мобильных приложений: кейсы и инструменты
Opera Mediaworks Russia Mediakit 2015 new
Как настроить аналитику для мобильных приложений
Conversion conf 2015-price.ru-petrovsky-similarweb.com-19.02-v1
pirate pay bit final 2010
Маркетинг мобильных приложений: чек-лист по запуску первой кампании
Performance-маркетинг мобильных приложений
Олег Никифоров "Тестирование трафика мобильных приложений: кейсы и инструменты"
Тестирование трафика мобильных приложений: кейсы и инструменты

Similar to Fraud in mobile applications: how to define and detect / Вадим Антонюк (IPONWEB) (20)

PPTX
Приложение Телепорт
PDF
Андрей Уразов - Методы раннего обнаружения ошибок
PPT
SearchInform. Евгений Юдов. "Как выбрать DLP-систему?"
PDF
Load testing with Tsung
PPTX
AppMetrica - аналитика мобильного приложения
PDF
Perfomance-маркетинг мобильных приложений
PPTX
“Три стратегии продвижения мобильных приложений”
PDF
Как «скачать» весь myTarget и не лопнуть. Михаил Иванков (Plarin)
PDF
Продвижение мобильных приложений: Эффективно закупаем трафик и правильно оцен...
PDF
Facemetric
PPTX
Вызовы для рынка мобильного маркетинга (Trademob, Артем Макаров) III Форум Ap...
PPTX
Лекция 1 введение в тестирование ПО, основные понятия и принципы
PDF
Телеканал Russia Today Splunk История успеха
PPTX
Хищения через Dbo.Я.Глубокий
PDF
Трекинг — взгляд изнутри, Алексей Васильев, Яндекс, Москва
PPTX
Лучшие практики мобильного маркетинга: как стать №1
PPTX
Андрей Осипов. Олег Любарец. О том, как построить систему аналитики для Raketa
PPT
SearchInform. Евгений Матюшёнок. ПАО "ТНС" энерго Ростов-на-Дону. Александр Е...
PDF
«Как перейти от веб-аналитики к аналитике мобильных приложений» Д. Школьник...
PDF
SearchInform. Татьяна Латушкина. "Как выбрать идеальную DLP-систему?"
Приложение Телепорт
Андрей Уразов - Методы раннего обнаружения ошибок
SearchInform. Евгений Юдов. "Как выбрать DLP-систему?"
Load testing with Tsung
AppMetrica - аналитика мобильного приложения
Perfomance-маркетинг мобильных приложений
“Три стратегии продвижения мобильных приложений”
Как «скачать» весь myTarget и не лопнуть. Михаил Иванков (Plarin)
Продвижение мобильных приложений: Эффективно закупаем трафик и правильно оцен...
Facemetric
Вызовы для рынка мобильного маркетинга (Trademob, Артем Макаров) III Форум Ap...
Лекция 1 введение в тестирование ПО, основные понятия и принципы
Телеканал Russia Today Splunk История успеха
Хищения через Dbo.Я.Глубокий
Трекинг — взгляд изнутри, Алексей Васильев, Яндекс, Москва
Лучшие практики мобильного маркетинга: как стать №1
Андрей Осипов. Олег Любарец. О том, как построить систему аналитики для Raketa
SearchInform. Евгений Матюшёнок. ПАО "ТНС" энерго Ростов-на-Дону. Александр Е...
«Как перейти от веб-аналитики к аналитике мобильных приложений» Д. Школьник...
SearchInform. Татьяна Латушкина. "Как выбрать идеальную DLP-систему?"
Ad

More from Ontico (20)

PDF
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
PDF
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
PPTX
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
PDF
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
PDF
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PDF
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PDF
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
PDF
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
PPTX
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
PPTX
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
PDF
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
PPTX
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
PPTX
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
PDF
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
PPT
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
PPTX
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PPTX
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
PPTX
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
PDF
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Ad

Fraud in mobile applications: how to define and detect / Вадим Антонюк (IPONWEB)

  • 1. Вадим Антонюк Anti-fraud Team Lead IPONWEB Fraud in mobile applications: how to define and detect
  • 2. ➔ Особенности In-App сегмента ➔ Определяем и детектируем: метод #1 “Backgroundness” ➔ Определяем и детектируем: метод #2 “Entropy score” ➔ Сравнение результатов, реализация и next steps ➔ Заключение Детекция фрода в рекламных запросах в сегменте мобильных приложений
  • 3. ➔ Особенности In-App сегмента ➔ Определяем и детектируем: метод #1 “Backgroundness” ➔ Определяем и детектируем: метод #2 “Entropy score” ➔ Сравнение результатов, реализация и next steps ➔ Заключение Детекция фрода в рекламных запросах в сегменте мобильных приложений
  • 4. статус доля ✓ PC web (display & video) verified 36% ✓ Mobile web (display & video) verified 26% ❏ Mobile Applications not verified 38% ❏ Digital Out of Home not verified 0% ❏ TV not verified 0% Структура RTB-трафика по сегментам и статус анти-фрод верификации, 1H 2017
  • 5. статус доля ✓ PC web (display & video) verified 36% ✓ Mobile web (display & video) verified 26% ❏ Mobile Applications not verified 38% ❏ Digital Out of Home not verified 0% ❏ TV not verified 0% Структура RTB-трафика по сегментам и статус анти-фрод верификации, 1H 2017
  • 6. Ad Stacking Bots Ghost SitesDomain spoofing Основные типы рекламного фрода в веб-сегменте
  • 7. Основные типы рекламного фрода в сегменте мобильных приложений
  • 8. в индустрии нет единого мнения Основные типы рекламного фрода в сегменте мобильных приложений
  • 9. ➔ Особенности In-App сегмента ➔ Определяем и детектируем: метод #1 “Backgroundness” ➔ Определяем и детектируем: метод #2 “Entropy score” ➔ Сравнение результатов, реализация и next steps ➔ Заключение Детекция фрода в рекламных запросах в сегменте мобильных приложений
  • 10. ➔ “Invalid traffic is [that, which] does not result from genuine user interest.” (Google) перефразируем: ➔ “Traffic which is a-priori non-viewable can be defined as fraudulent.” (IPONWEB) ➔ критерий “a-priori non-viewability” работает для: ✓ “обычных” видов фрода в веб-сегменте; ✓ показов в фоновом режиме приложения (background mode); Определяем App Fraud через non-Viewability
  • 11. ➔ в потоке входящих бид-реквестов находим пары [app + user], которые шлют сигнал в непрерывном режиме; ➔ как минимум, часть этих реквестов приходит из фонового режима приложения; 0:00 24:00 time t2 t1 T2 T1 ➔ определим “непрерывность” сигнала через (время между соседями) < t; ➔ для каждого t мы получим значение “непрерывного” интервала T (и  проанализируем на реалистичность); Backgroundness: слушаем поток бид-реквестов
  • 12. ➔ определим поток, для которого измеренное T > Tthreshold как фоновый; ➔ просуммируем по всем users и заблокируем приложения с большой долей такого трафика; ➔ полученный результат будет зависеть от t и Tthreshold ; Backgroundness: слушаем поток бид-реквестов
  • 13. ➔ определим поток, для которого измеренное T > Tthreshold как фоновый; ➔ просуммируем по всем users и заблокируем приложения с большой долей такого трафика; ➔ полученный результат будет зависеть от t и Tthreshold ; overfitting? Backgroundness: слушаем поток бид-реквестов
  • 14. ➔ определим поток, для которого измеренное T > Tthreshold как фоновый; ➔ просуммируем по всем users и заблокируем приложения с большой долей такого трафика; ➔ полученный результат будет зависеть от t и Tthreshold ; overfitting? a way to simplify? Backgroundness: слушаем поток бид-реквестов
  • 16. ➔ тот же датасет, находим “максимальный период тишины” Tmax (= T3 на рис.); ➔ ...и проанализируем на реалистичность (одного T достаточно); 0:00 24:00 T1 T2 T3 Backgroundness: слушаем паузы между бид- реквестами
  • 17. 1) для каждой комбинации [app + publisher_id + user] находим Tmax по  данным полного дневного лога бид-реквестов; 2) агрегируем по всем users, получаем плотность распределения Tmax для каждой пары [app + publisher_id] ; 3) выбираем пороговое значение Tmax , блокируем пары [app + publisher_id] со значимой долей трафика ниже порога; ___ (1) also works for compressed logs with minor calibration Методология детектирования backgroundness
  • 18. ➔ 99.9% трафика с Tmax больше 6 часов; Распределение Tmax : пример “хорошего” трафика приложение: surpax.ledflashlight Tmax200 5 10 15
  • 19. приложение: gau.go.launcherex Tmax200 5 10 15 Распределение Tmax : пример “плохого” трафика ➔ 61.7% трафика с Tmax меньше 6 часов;
  • 20. приложение: rewardable.rewardabletv Распределение Tmax : пример “OMFG” трафика Tmax200 5 10 15 ➔ 82.5% трафика с Tmax меньше 6 часов;
  • 21. ➔ Особенности In-App сегмента ➔ Определяем и детектируем: метод #1 “Backgroundness” ➔ Определяем и детектируем: метод #2 “Entropy score” ➔ Сравнение результатов, реализация и next steps ➔ Заключение Детекция фрода в рекламных запросах в сегменте мобильных приложений
  • 22. Определяем App Fraud через аномальную энтропию (#1)
  • 23. Определяем App Fraud через аномальную энтропию (#1) Shannon’s entropy: H(x) = ∑ pi log2 (1/pi )
  • 24. Определяем App Fraud через аномальную энтропию (#1) Shannon’s entropy: H(x) = ∑ pi log2 (1/pi ) ● app1 ● ●● ● user1 user2user3 user4
  • 25. Определяем App Fraud через аномальную энтропию (#1) Shannon’s entropy: H(x) = ∑ pi log2 (1/pi ) ● app1 ● ●● ● user1 user2user3 user4
  • 26. Определяем App Fraud через аномальную энтропию (#1) Shannon’s entropy: H(x) = ∑ pi log2 (1/pi ) ● app1 ● ●● ● user1 user2user3 user4 H1 = 0
  • 27. Определяем App Fraud через аномальную энтропию (#1) Shannon’s entropy: H(x) = ∑ pi log2 (1/pi ) ● app1 ● ●● ● user1 user2user3 user4 ● app2 ● ●● ● user1 user2user3 user4 H1 = 0
  • 28. Определяем App Fraud через аномальную энтропию (#1) Shannon’s entropy: H(x) = ∑ pi log2 (1/pi ) ● app1 ● ●● ● user1 user2user3 user4 ● app2 ● ●● ● user1 user2user3 user4 H1 = 0 H2 = 3/2
  • 29. Определяем App Fraud через аномальную энтропию (#1) Shannon’s entropy: H(x) = ∑ pi log2 (1/pi ) ● app1 ● ●● ● user1 user2user3 user4 ● app2 ● ●● ● user1 user2user3 user4 ● app3 ● ●● ● user1 user2user3 user4 H1 = 0 H2 = 3/2
  • 30. Определяем App Fraud через аномальную энтропию (#1) Shannon’s entropy: H(x) = ∑ pi log2 (1/pi ) ● app1 ● ●● ● user1 user2user3 user4 ● app2 ● ●● ● user1 user2user3 user4 ● app3 ● ●● ● user1 user2user3 user4 H1 = 0 H2 = 3/2 H3 = 2
  • 31. Определяем App Fraud через аномальную энтропию (#1) Shannon’s entropy: H(x) = ∑ pi log2 (1/pi ) ● app1 ● ●● ● user1 user2user3 user4 ● app2 ● ●● ● user1 user2user3 user4 ● app3 ● ●● ● user1 user2user3 user4 H1 = 0 H2 = 3/2 H3 = 2 entropy maxmin
  • 32. Определяем App Fraud через аномальную энтропию (#1) Shannon’s entropy: H(x) = ∑ pi log2 (1/pi ) ● app1 ● ●● ● user1 user2user3 user4 ● app2 ● ●● ● user1 user2user3 user4 ● app3 ● ●● ● user1 user2user3 user4 H1 = 0 H2 = 3/2 H3 = 2 entropy maxmin app ↔ user
  • 33. Определяем App Fraud через аномальную энтропию (#2) entropy score low high user юзер использует (создает трафик в) мало приложений юзер использует (создает трафик в) много приложений app приложение получает трафик от нескольких пользователей приложение получает трафик от многих пользователей normalized entropy score: H{user, app} = (1/log2 C) ∑ pi log2 (1/pi ), где pi = Ci /C, C = ∑ Ci ✓ ✓ ✓! справедливость к маленьким объектам
  • 34. Распределение бид запросов по entropy score 75%25% score доля бид- реквестов 0 20 40 60 80 100
  • 35. Распределение бид запросов по entropy score 75%25% score доля бид- реквестов 0 20 40 60 80 100 bad actors’ range
  • 36. ➔ Особенности In-App сегмента ➔ Определяем и детектируем: метод #1 “Backgroundness” ➔ Определяем и детектируем: метод #2 “Entropy score” ➔ Сравнение результатов, реализация и next steps ➔ Заключение Детекция фрода в рекламных запросах в сегменте мобильных приложений
  • 37. Сравнение методов “backgroundness” и “entropy score” ➔ при одинаково подобранных уровнях достоверности, “backgroundness” (14%) ловит на порядок больше app-трафика, чем “entropy score” (1.5-2%) ➔ методы дополняют друг друга с минимальным пересечением (~0.1%) entropy score backgroundness
  • 38. Что нового ловит “entropy score” в дополнение к “backgroundness” и что можно ловить еще? ➔ bundle_id names: juteralabs.perktv rewardable.rewardabletv swagbuckstvmobile.views yoorewards incentivised traffic
  • 39. Что нового ловит “entropy score” в дополнение к “backgroundness” и что можно ловить еще? ➔ bundle_id names: juteralabs.perktv rewardable.rewardabletv swagbuckstvmobile.views yoorewards incentivised traffic непрерывный поток бид-запросов с одного устройства концентрация бид- запросов c малого числа устройств большое число запросов с одного устройства ✓ "backgroundness” ✓ “entropy score” ± “high frequency uuid”
  • 40. ➔ Особенности In-App сегмента ➔ Определяем и детектируем: метод #1 “Backgroundness” ➔ Определяем и детектируем: метод #2 “Entropy score” ➔ Сравнение результатов, реализация и next steps ➔ Заключение Детекция фрода в рекламных запросах в сегменте мобильных приложений
  • 41. ● В результате анализа бид-запросов, генерируемых мобильными приложениями, на большом объеме данных были обнаружены паттерны “backgroundness” и “low entropy score”, несовместимые с нормальным пользовательским поведением. ● Обнаруженные паттерны могут являться основанием для фильтрации мошеннического трафика в сегменте мобильных приложений. Заключение
  • 43. ✓ Полный дневной или выборочный недельный лог бид-реквестов (>150 млрд. in-app запросов); ✓ Ночной batch-процесс считает метрики и готовит кэш с блок- листами ✓ Раскатка кэша в продакшн в начале рабочего дня (есть возможность вмешательства) ✓ “Backgroundness” 一 вывод на проектную мощность Nov-2017 ❏ “Entropy score” 一 плановый запуск 1Q-2018 Appendix I: Техническая реализация