Как обнаружить скликивание контекстной рекламы?

Защита от скликивания рекламы

Обнаружение клик фрода на сайте рекламодателя

Введение. Клик-фрод (мошенничество с кликами, click fraud, скликивание рекламы) – мошеннические клики на рекламе с оплатой за клик – представляет серьезную угрозу для интернет-экономики. Хотя мошенничество с кликами привлекло большое внимание специалистов по безопасности, у рекламодателей,  непосредственных жертв кликфрода, все еще нет эффективной защиты, и они не могут выявлять мошеннические клики самостоятельно. В этой статье мы предлагаем рекламодателям новый подход к выявлению мошеннических кликов и оценке возврата инвестиций (ROI) их рекламных кампаний без помощи рекламных сетей или издателей. Наша ключевая идея заключается в проактивной проверка браузеров и пассивном изучении действий пользователей. В частности, мы представили новый функциональный тест и разрабатываем продвинутые характеристики вовлеченности пользователей. Наша система обнаружения может значительно затруднить совершение мошенничества с  кликами, и при этом она прозрачна для пользователей. Кроме того, ее легко развернуть на стороне рекламодателя. Чтобы проверить эффективность нашего подхода, мы разработали прототип и запустили его на большом работающем веб-сайте, а затем провели 10-дневные рекламные кампании для сайта в одной из крупнейших рекламных сетей. Результаты эксперимента показали, что предложенная нами защита эффективна при идентификации как клик-ботов, так и людей-кликеров, при этом издержки как на стороне сервера, так и на стороне клиента, незначительны.

В случае мошеннического клика выгодополучателем является как рекламная сеть, так и издатель, а рекламодатель – единственная жертва модели с оплатой за клик. Хотя рекламная сеть платит издателю за эти мошеннические действия, она все равно получает от рекламодателя еще больше. Таким образом, рекламная сеть все равно  получает выгоду от мошенничества с кликами. Только рекламодатель становится жертвой, платя за эти обманные клики. Поэтому у рекламодателей самый большой стимул противодействовать мошенничеству. В этой статье мы сосредоточимся на обнаружении мошеннических кликов с точки зрения рекламодателей.

Обнаружение мошенничества с кликами не тривиально. Схемы обмана постоянно развивались в последние годы [3–7]. Существующие решения по обнаружению пытаются идентифицировать действия, связанные с мошенничеством, с разных точек зрения, но у каждой есть свои ограничения. Решения, предложенные в [8–10], для выявления мошеннических действий издателей выполняют анализ трафика в логах рекламной сети. Тем не менее, продвинутые клик-боты могут проводить атаки не привлекая внимания, что делает эти механизмы обнаружения на основе аномального поведения менее эффективными. Хаддади [11] предложил для формирования черных списков издателей-мошенников использовать объявления-приманки, для которых заранее известен уровень кликов. Вдохновленный этим [11] Dave et al. [4] предложил рекламодателям определять уровень мошенничества на основе стандартных объявлений-приманок. Тем не менее, размещение такой “эталонной” рекламы увеличивает бюджеты рекламодателей.

В этой статье мы предлагаем рекламодателям новый подход к самостоятельному обнаружению атак, совершаемых ботами и людьми. Наш подход позволяет оценивать возврат инвестиций (ROI) рекламных кампаний, классифицируя каждый входящий клик как «мошеннический», «случайный» или «настоящий». Наша система основывается на двух предпосылках, присущих только легитимным кликам. Первая – реальный пользователь должен инициировать легитимный щелчок в реальном браузере. То есть клиент должен быть настоящим полноценным браузером, а не ботом, и, следовательно, он должен поддерживать JavaScript, DOM, CSS и другие веб-стандарты, которые используются в современных браузерах. Вторая – законный клик по рекламе от человека, заинтересованного в продукте, должен иметь определенный уровень вовлеченности в просмотр рекламируемого сайта.

Основываясь на вышеизложенных принципах, мы разработали систему обнаружения мошеннических кликов, в основном состоящую из двух компонентов: (1) проактивный тест на функциональность и (2) пассивный анализ поведения при просмотре. Тест функциональности фактически ставит под сомнение подлинность клиента (браузера или бота), исходя из предположения, что большинство клик-ботов имеют ограниченную функциональность по сравнению с современными браузерами и, следовательно, не пройдут этот тест. В частности, клиент проверяется на соответствие веб-стандартам, которые широко поддерживаются современными браузерами. Если тест не пройден, все клики, сгенерированные клиентом, помечаются как мошеннические. Второй компонент пассивно проверяет поведение каждого пользователя на рекламируемом сайте. Его цель – выявить кликеров-людей и более продвинутых клик-ботов, которые могут пройти тест на функциональность. Если клиент проходит тест на функциональность, а также показывает достаточную вовлеченность на сайте, соответствующий клик помечается как реальный. Клик помечается как случайный, если соответствующий клиент проходит проверку функциональности, но демонстрирует неправильное поведение при просмотре. Такой клик может быть создан разумным кликером, специально нажимающим кнопку мыши, или пользователем, случайно нажавшим на рекламу. Мы не пытаемся различить эти два типа, поскольку ни один из них не приводит потенциального клиента с точки зрения рекламодателя.

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

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

Оставшаяся часть статьи организована следующим образом. Мы предоставляем базовые знания в Разделе 2. Затем мы детализируем наш подход в Разделе 3 и проверяем его эффективность с использованием реальных данных в Разделе 4. Мы обсуждаем ограничения нашей работы в Разделе 5 и исследования, связанные с темой, в Разделе 6. Наконец, мы делаем выводы в разделе 7.

2. Введение в обнаружение скликивания рекламы

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

2.1 Клик-боты (кликеры)

Клик-бот ведет себя как браузер, но обычно имеет относительно ограниченную функциональность по сравнению с последним. Например, бот может быть не в состоянии проанализировать все элементы HTML-страниц, выполнить сценарии JavaScript или применить CSS. Таким образом, клик-бот создается как простое вредоносное ПО, внедряемое в компьютер жертвы. Даже если предположить, что сложный клик-бот получит возможности, близкие к настоящему  браузеру, его реальное поведение при подключении к рекламируемому сайту все равно будет отличаться от реального пользователя. Это связано с тем, что клик-боты являются автоматизированными программами и недостаточно умны, чтобы видеть, думать и вести себя, как люди.

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

На Рисунке 1 показано, как компьютеры-жертвы совершают мошенничество с кликами под командой бот-мастера. Во-первых, ботмастер распространяет вредоносное ПО, используя уязвимости в безопасности, заставляя жертву загрузить и запустить троянского коня. После взлома жертва становится ботом и получает инструкции от командно-контрольного (C&C) сервера, контролируемого бот-мастером. В таких инструкциях может указываться целевой сайт, количество кликов, которые нужно выполнить, реферрер, который будет использоваться в сфабрикованных HTTP-запросах, на какую рекламу нажимать, когда и как часто нажимать [3].

После получения инструкций, клик-бот начинает заходить на указанный сайт издателя. Он отправляет HTTP-запрос (шаг 1). Веб-сайт возвращает запрошенную страницу, а также все встроенные в нее рекламные теги (шаг 2). Рекламный тег – это фрагмент HTML-кода или JavaScript, представляющий объявление (обычно в фрейме). Для каждого рекламного тега клик-бот генерирует HTTP-запрос к рекламной сети для извлечения рекламного контента, как в реальном браузере (шаг 3). Рекламная сеть возвращает рекламу (шаг 4). Из всех возвращенных объявлений бот выбирает объявление, соответствующее указанному шаблону, и имитирует клик по нему, который инициирует еще один HTTP-запрос к рекламной сети (шаг 5). Рекламная сеть регистрирует клик с целью выставления счета рекламодателю и выплаты денег издателю, а затем возвращает ответ HTTP 302 о перенаправлении (шаг 6). Клик-бот следует ему (возможно, в несколько шагов) и, наконец, получает доступ к рекламируемому сайту (шаг 7). Рекламодатель возвращает обратно клик-боту целевую страницу1 (шаг 8). Так кликбот совершил один акт мошенничества с кликами. Каждый раз, когда бот нажимает на объявление, рекламодатель переводит деньги рекламной сети, а издатель получает от нее вознаграждение. Обратите внимание, что бот часто работает в фоновом режиме, чтобы избежать подозрений, поэтому все HTTP-запросы на рисунке 1 генерируются без ведома жертвы.

2.2 Человеческие клики

Люди-кликеры – это люди, которых нанимают за деньги, чтобы они нажимали на целевые рекламные объявления. У людей-кликеров есть финансовый стимул нажимать на объявления как можно быстрее, что отличает их от реальных пользователей, которые действительно заинтересованы в рекламируемых продуктах. Например, реальный пользователь с большей вероятностью будет читать описания, рассматривать изображения, думать и ходить по сайту, чтобы узнать о продукте перед покупкой. У платного кликера такого интереса нет, и поэтому он быстро заскучает и потратит на сайт мало времени [12].

2.3 Рекламодатели

Рекламодатели находятся в выгодном положении – они могут  наблюдать и в дальнейшем выявлять все мошеннические действия, совершаемые клик-ботами и кликерами-людьми. Чтобы завершить мошенничество с кликами, все мошеннические HTTP-запросы должны быть так или иначе направлены на рекламируемый веб-сайт, независимо от того, сколько промежуточных редиректов и сторон задействовано на этом пути. Этот указывает на то, что и клик-боты, и кликеры-люди должны в конечном счете обратиться к жертве. Таким образом, рекламодатели имеют преимущество в обнаружении клик-ботов и людей-кликеров в процессе общения. Кроме того, именно рекламодатели оплачивают весь этот цирк, а значит у них самая сильная мотивация противодействовать клик-фроду.

2.4 Веб-стандарты и методы обнаружения функций

Главная функция браузера – получать удаленные ресурсы (HTML, стили и мультимедиа) с веб-серверов и представлять их пользователю [13]. Чтобы правильно анализировать и отображать полученный HTML-документ, браузер должен соответствовать стандартам HTML, CSS, DOM и JavaScript. Каждый объект имеет свои особенности, включая свойства, методы и события. Например, функции, прикрепленные к DOM-объекту, включают createAttribute, getElementsByTagName, title, domain, url и т.д. Каждый современный браузер поддерживает эти функции. Однако разные браузеры (да и разные версии одного браузера) различаются по уровням поддержки этих веб-стандартов или используют собственные расширения. Чтобы обеспечить правильное отображение веб-сайтов во всех основных браузерах, разработчики обычно используют технику “обнаружения функций” (feature detection) для создания JavaScript-кода с кросс-браузерной совместимостью.

Обнаружение функций – это метод, который определяет, поддерживается ли функция или возможность в конкретном браузере. Одним из распространенных методов является отражение. Если браузер не поддерживает определенную функцию, механизмы JavaScript возвращают нуль при обращении к этой функции; в противном случае JavaScript возвращает ненулевую строку. Например, если оператор JavaScript «document.createElement» возвращает значение null в определенном браузере, это означает, что браузер не поддерживает метод createElement, работающий с объектом документа. Аналогично, тестируя браузер на соответствие большему количеству фундаментальных функций, указанных в веб-стандартах для современных браузеров, мы можем оценить уровень поддержки браузером всех этих шаблонов, проверить подлинность среды выполнения и понять, реальный браузер перед нами или нет.

Техника обнаружения функций имеет три основных преимущества. Во-первых, обнаружение функций может быть эффективным механизмом определения клик-ботов. Клик-бот не может “сдать экзамен” на обнаружение функций, если только он не реализовал все основные функции настоящего браузера. Во-вторых, обнаружение функций полностью и до конца определяет функциональность клиента, и даже большой пул функций может использоваться для быстрого и эффективного определения всех его функций. Наконец, методы, используемые для обнаружения, предназначены для работы в разных браузерах и будут продолжать работу со временем, даже по мере появления новых программ, поскольку новые браузеры (в основном) поддерживают отражение – еще до внедрения новых фич – и должны также расширять, а не заменять существующие веб-стандарты.

3. Методология обнаружение скликивания рекламы

Наш подход в основном связан с гостевым клиентом и вовлеченностью пользователей на рекламируемом сайте – с их помощью мы определяем, является ли соответствующий клик по объявлению действительным или нет. Чтобы максимизировать точность детекции, мы также проверяем источник (IP-адрес клиента) и промежуточный путь (т.е. издателя) клика.

На рисунке 2 представлена схема нашего подхода. Наша система обнаружения состоит из трех компонентов: (1) поддержка JavaScript и проверка событий мыши, (2) проверка функциональности браузера и (3) проверка поведения.

Для каждого входящего пользователя на целевой странице мы проверяем, поддерживает ли клиент JavaScript и инициируются ли какие-либо события мыши. Отсутствие поддержки JavaScript или отсутствие мышиных события указывает на то, что клиент может быть не настоящим браузером, а ботом. В противном случае мы еще дальше проверяем функциональность клиента на соответствие веб-стандартам, которые широко поддерживаются всеми основными браузерами. Клиенты, не прошедшие этот тест на функциональность, помечаются как клик-боты. В противном случае мы дополнительно изучаем поведение клиента на сайте рекламодателя и обучаем поведенческий классификатор, чтобы отличать действительно заинтересованных пользователей от случайных.

3.1 Поддержка JavaScript и тест событий мыши

Один простой способ обнаружить клик-бота – проверить, поддерживает ли клиент JavaScript или нет. Это связано с тем, что, по крайней мере, 98% веб-браузеров поддерживают JavaScript [14], а сервисы онлайн-рекламы обычно рассчитывают на поддержку JavaScript.

Мониторинг событий мыши – еще один эффективный способ обнаружения мошенников. В общем случае разумный пользователь с немобильной платформой (ноутбук/настольный компьютер) должен сгенерировать как минимум одно событие при просмотре веб-сайта. Отсутствие событий от мыши классифицирует клиента как клик-бота. Однако это может быть не так для пользователей мобильных платформ (смартфонов/планшетов). Таким образом, мы применяем тест на мышиные события только для пользователей десктопных платформ.

Таблица 1. Протестированные браузеры, версии и даты выпуска

3.2 Функциональный тест

Клиент, прошедший тестирование JavaScript-событий и мыши, должен пройти дополнительный тест функциональности на основе обнаружения функций.

Таблица 2. Набор функций, который поддерживают современные браузеры

Чтобы избежать ложных срабатываний и гарантировать, что каждый современный браузер пройдет проверку функциональности, мы провели большое исследование и оценили поддержку функций в 5 основных браузерах [15]: Chrome, Firefox, IE, Safari и Opera. Чтобы понять последовательность поддержки функций, мы выбрали 10 версий каждого браузера, за исключением 5 версий для IE. В таблице 1 перечислены браузеры, которые мы тестировали. В результате мы получили набор из 153 функций, связанных с веб-стандартами, включая окно браузера, DOM и CSS (см. таблицу 2). Все эти функции поддерживаются как настольными браузерами, так и их мобильными версиями. Все эти функции последовательно поддерживаются 45 версиями браузеров за последние десять лет. Мы называем этот набор аутентичным. Мы также создали фиктивный набор функций, который имеет то же количество, что и аутентичный, но получился путем добавления «123» к каждой функции в наборе. Таким образом, каждая функция в фиктивном наборе не должна поддерживаться никаким реальным браузером. Обратите внимание, что мы просто используем строку «123» в качестве примера. При внедрении нашей модели обнаружения, рекламодатель должен периодически менять эту строку, чтобы затруднить обнаружение этого фиктивного набора.

Как выполнить функциональный тест. На рисунке 3 показано, как выполняется проверка функциональности. Для первого HTTP-запроса, выданного клиентом, веб-сервер рекламодателя отвечает как обычно, но вместе со смешанным набором аутентичных и фиктивных функций. Хотя размер смешанного набора является фиксированным (например, 100), пропорция аутентичных признаков в наборе определяется случайным образом. Эти аутентичные и фиктивные функции в наборе случайным образом выбираются из соответствующих наборов. Ожидается, что клиент выполнит каждую функцию в своей среде и затем, в качестве ответа на вызов, сообщит веб-серверу, сколько аутентичных функций в смешанном наборе.

Настоящий браузер может сообщить правильное количество аутентичных функций на сервер после выполнения кода и, таким образом, он пройдет проверку функциональности. Однако клик-бот не пройдет тест, потому что он не сможет проверить функции, содержащиеся в наборе и вернуть правильное число. Учитывая, что некоторые непроверенные браузеры могут не поддерживать некоторые аутентичные функции, мы настроили узкий диапазон [x – N, x], чтобы справиться с этим, где x – правильный ответ, а N – небольшое неотрицательное целое число. Считается, что клиент прошел тест, пока его ответ находится в пределах [x – N, x]. Мы, основываясь на результатах наших измерений, установили N равным 4-м.

Анализ обхода. Предположим, что клиент получает от сервера смешанный набор из 150 функций, и этот набор состоит из 29 случайно выбранных подлинных функций и 121 случайно выбранных поддельных функций. Таким образом, ожидаемое число должно попадать в диапазон [25,29]. Рассмотрим хитроумного кликера, который заранее знает о нашем механизме обнаружения. Бот не должен проверять функции, он просто угадывает число из возможного диапазона [0,150] и возвращает его на сервер. В этом случае вероятность того, что предполагаемое число успешно попадет в [25,29], составляет всего 3%. Таким образом, у бота мало шансов (3%) обойти проверку функциональности.

3.3 Проверка поведения кликеров

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

Тем не менее, клик-боты и люди-кликеры обычно демонстрируют совершенно другое поведение на рекламируемом сайте по сравнению с реальными пользователями. Клик-фрод, осуществляемый клик-ботами, обычно заканчиваются загрузкой целевой страницы рекламодателя и не имитирует поведение человека на сайте. Для людей-кликеров их единственная цель – заработать больше денег, нажимая на объявления как можно быстрее. Oни, как правило, быстро просматривают рекламируемый сайт и затем переходят к следующей задаче. Реальные заинтересованные пользователи, как правило, больше узнают о продукте и проводят больше времени на рекламируемом сайте. Обычно они прокручивают страницу вверх и вниз, щелкают по интересующим их ссылкам, просматривают несколько страниц и иногда совершают покупки.

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

Таблица 3. Сводка наших рекламных кампаний

4 Экспериментальные результаты обнаружения скликивания

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

4.1 Запуск рекламных кампаний

Чтобы получить реальный трафик кликов, мы зарегистрировались в крупной рекламной сети и провели рекламные кампании для популярного сайта, касающегося обработки дерева. Руководствуясь техникой рекламных приманок, предложенной в [11], мы создали для сайта три объявления-приманки и предположили, как и в предыдущих работах [4, 11, 16], что очень немного живых людей намеренно нажмет на эту рекламу  и клики, как правило, будут принадлежать ботам или живым мошенникам. Объявления-наживки – это текстовые объявления с бессмысленным содержанием, как показано на рисунке 4. Обратите внимание, что наши объявления были созданы на английском языке. Кроме того, мы создали две обычные рекламы, для которых тексты объявлений точно описывают рекламируемый сайт. Наша цель проведения рекламных кампаний – получить как вредоносный, так и аутентичный трафик кликов для проверки системы обнаружения фрода. С этой целью мы настроили показ приманок на партнерских сайтах на любом языке по всему миру, а обычные объявления показывали только на страницах результатов поиска на английском языке, чтобы избежать мошенничества издателей и не подмешивать их клики в нормальные рекламные объявления. Мы ожидали, что большинство, если не все, клики на объявлениях-приманках будут мошенническими, а на обычной рекламе – реальными.

Рекламные кампании прошли в течение 10 дней. В таблице 3 представлена сводка. Наши объявления получили 2 миллиона показов2, получили почти 11 тысяч кликов и средний CTR достиг 0.53%. Среди них 2.7 тысячи кликов были признаны рекламной сетью незаконными и не были засчитаны. Процент недействительных кликов достиг 25.15%. Средняя цена за клик (СРС) составила 0,06 доллара США. Обратите внимание, что два обычных объявления получили только 512 кликов, что составляет 4,67% от общего числа. Причина в том, что хотя мы выбрали довольно высокие ставки для обычных объявлений, наша реклама не смогла конкурировать с объявлениями других рекламодателей за верхние позиции и, следовательно, получила меньше кликов.

Рис. 4. Объявление-приманка с текстом из случайно выбранных английских слов

Рис. 5. Сравнение трафика кликов и обычного трафика по странам

4.2 Характеристика кликов

Мы категоризируем полученный трафик кликов, анализируя географическое распределение пользователей, тип браузера, репутацию IP-адреса и репутацию сайтов. Наша цель – с помощью статистического анализа лучше понять как пользователей, которые нажимали на наши объявления, так и сайты-источники, на которых пользователи нажимали на наши объявления. Хотя рекламная сеть сообщила, что наша реклама привлекла около 11 тысяч кликов, мы на рекламируемом сайте получили только 9.9 тысячи переходов, которые и  стали основой для более тщательного изучения и проверки нашего подхода.

Географическое распределение. Мы получили информацию о географическом нахождении пользователей при помощи сервиса IP-геолокации [17]. Наши 9.9 тысяч кликов пришли из 156 стран. На рис. 5 показано распределение кликов по объявлениям в 10 ведущих странах, которые сгенерировали наибольшее количество переходов. На рисунке 5 также показано обычное количество ежедневных посетителей сайта из этих стран. Обратите внимание, что форма данных «X / Y» означает, что X% кликов по рекламе и Y% обычных ежедневных посетителей принадлежат этой конкретной стране. Топ-10 стран дали 77.7% всего числа кликов. Один только Китай выдал более 55% кликов, в то время как США – 2.1%. Это довольно необычно, потому что ежедневно только 0,11% пользователей приходит на сайт из Китая, в то время как посетителей из США около 76%. Подобно Китаю, Египту, Ираку, другие, как правило  неанглоговорящие страны, дали гораздо более высокую долю трафика, связанного с рекламными кликами, чем их обычный ежедневный вклад в посещаемость сайта. Подозреваем, что издатели из этих стран использовали ботов для нажатия на нашу рекламу. Хуже того, стратегия нашей партнерской рекламной сети может еще больше усугубить мошенничество. Правило гласит, что если у издателя высокий процент кликов по рекламе, то сеть будет чаще показывать ее на этом сайте. Чтобы гарантировать, что наши объявления привлекают как можно больше кликов в рамках ежедневного бюджета, рекламная сеть может чаще показывать наши объявления на неанглоязычных сайтах.

Рис. 6. Распределение кликов по браузерам

Рис. 7.  Распределение кликов по издателям

Тип браузера. Далее мы рассмотрим распределение браузеров, чтобы увидеть, какие браузеры чаще всего использовались при просмотре наших объявлений и кликов по ним. Мы получили информацию о браузере из переменной  User-Agent, которая содержится в HTTP-запросах к сайту.

На рисунке 6 показано распределение браузеров, используемых теми, кто кликал по нашей рекламе. IE, Chrome, Firefox, Safari и Opera – 5 самых популярных браузеров для компьютеров, что согласуется со статистикой популярности веб-браузеров от StatCounter [15]. Примечательно, что на мобильные браузеры пришлось почти 50% общего трафика, что намного превышает предполагаемую долю использования мобильных устройств (около 18% [18]). Внимательное изучение показало, что 40% трафика с мобильных браузеров принадлежало Китаю. Эта страна сгенерировала более 50% всего трафика, что исказило общую картину распространения браузеров.

Черные списки. Часть наших данных, очевидно, может принадлежать клик-ботам или скомпрометированным компьютерам. Такие злонамеренные клиенты также могли быть использованы мошенниками для осуществления других преступных действий и, таким образом, уже внесены в черные списки. Проверив IP-адреса пользователей в общедоступных черных списках IP-адресов [19], мы обнаружили, что 29% всех хостов уже были в них.

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

Мы использовали поле Referer из заголовка HTTP-запроса, чтобы найти издателей, которые показывали наши объявления, а затем направляли пользователей на наш рекламируемый сайт. Однако мы смогли идентифицировать издателей только для 37.2% трафика (3685 кликов), поскольку оставшийся трафик либо содержал пустое поле Referer, либо имел домен рекламной сети в качестве поля referer. Например, поле Referer для более чем 40% трафика имело вид doubleclick.net. Затем для обнаруженных издателей мы выяснили, какие сайты принесли наибольшее количество кликов. Обратите внимание, что в данном случае издателями могут быть как веб-сайты, так и мобильные приложения. В общей сложности мы определили 499 уникальных веб-сайтов и 5 приложений. Все эти приложения работали на iPhone и сгенерировали всего 28 кликов. Остальные 3657 кликов пришли с 499 уникальных сайтов. На рисунке 7 показано распределение трафика кликов по этим 504 издателям. Топ-3 сайтов с наибольшим количеством кликов по нашей рекламе – это игровые сайты, на долю которых пришлось более 45% всех кликов с обнаруженным полем издателя. На самом деле, 7 сайтов из 10 – это игровые сайты. Сайты  с маленькими играми часто привлекают много посетителей, и на рекламу там нажимают чаще всего. Тем не менее, все наши ключевые слова были связаны с деревообработкой, и, очевидно, содержание этих игровых сайтов не соответствовало им. В соответствии с вышеупомянутой политикой таргетинга по контексту, рекламная сеть не должна была показывать наши объявления на таких площадках. Одна из возможных причин заключается в том, что с точки зрения рекламной сети привлечение кликов имеет приоритет над попаданием в содержимое страницы.

4.3 Проверка нашего подхода

Как мы уже написали выше, наш подход состоит из трех основных компонентов: проверка поддержки JavaScript и событий мыши, проверка функциональности и проверка поведения при просмотре. В этой главе мы рассмотрим эффективность каждого метода.

Поддержка JavaScript и событий мыши. Среди 9.9 тысяч рекламных кликов, полученных на рекламируемом сайте, 75.2% пользователей не поддерживали JavaScript. Мы пометили этих пользователей как клик-ботов. Обратите внимание, что этот процент может быть немного завышен, учитывая, что некоторые пользователи (не более 2% [14]) могут отключать JavaScript. Кроме того, эти посещения без поддержки JavaScript не связаны с посещениями мобильных браузеров. Мы проверили – почти все мобильные браузеры обеспечивают поддержку JavaScript, несмотря на ограниченную вычислительную мощность. Затем мы сосредоточились на 10 лучших сайтах издателей с наибольшим количеством кликов для выявления потенциально вредоносных “партнеров”. На рисунке 8 показан процент кликов без поддержки скриптов со стороны этих 10 ведущих издателей. Среди них два не развлекательных веб-сайта – google.com и ask.com – имеют низкие доли: 9,4% и 15,2%, соответственно. Напротив, остальные 8 развлекательных сайтов имеют довольно высокое соотношение кликов без поддержки сценариев. Например, из 86 посетителей с tvmao.com ни один не поддерживает JavaScript! Мы считаем, что все 86 кликов являются мошенническими и были сгенерированы ботами. Аналогичным образом, 99.1% кликов с сайта armsgames.com, 96.1% кликов с сайта 3dgames.org и 95.3% с сайта gamesgirl.net также не поддерживают JavaScript. Такие высокие показатели указывают на то, что коэффициент недействительный кликов в реальных кампаниях намного больше, чем средний показатель в 25.15%, заявленный рекламной сетью, как показано в таблице 3.

Мы рассмотрели 506 кликов по рекламе (с поддержкой JavaScript), которые не дали мышиных событий при переходе на наш сайт. Из них 96 инициированы с мобильных платформ, включая iPad, iPhone, Android и Windows Phone. Оставшиеся 410 кликов пришли с настольных платформ или ноутбуков. Эти 410 рекламных кликов также имеют несколько другой тип вовлечения пользователей – у них нет кликов мышью, нет  прокрутки страниц, у них короткое время жизни. Мы пометили их как клик-боты.

Рис. 8. Отсутствие поддержки JavaScript для Топ-10 сайтов издателей, на которые пришлось наибольшее количество кликов

Мы также исследовали трафик с сайта 4399.com в связи с тем, что этот сайт вызвал наибольшее количество кликов по нашей рекламе среди всех выявленных издателей. Следующие данные указывают на мошенничество этого издателя. Во-первых, все 853 клика с 4399.com были созданы в течение одного дня. Примечательно, что в один час было сгенерировано 95 кликов. Во-вторых, несколько IP-адресов нажимали на наши объявления несколько раз в течение одной минуты, у них всех был один и тот же User-Agent, а в целом один и тот же User-Agent был (в среднем) у почти 15 кликов. В-третьих, около 70% клиентов не поддерживали JavaScript. Следовательно, мы подозреваем, что владелец сайта использовал автоматические сценарии для создания мошеннических кликов по нашим объявлениям. Однако эти сценарии, скорее всего, не были способны выполнять JavaScript-код, связанный с нашей рекламой. Кроме того, они, вероятно, подделывают IP-адреса и поля User-Agent в HTTP-запросах, чтобы избежать обнаружения.

Функциональное тестирование. Как мы уже писали, клик-боты, которые не могут работать как полноценные современные браузеры, не пройдут тест на функциональность. Среди зарегистрированных 9.9 тыс. кликов, 7,448 кликов без поддержки JavaScript даже не начали тест функциональности, а 35 из оставшихся кликов с поддержкой JavaScript не прошли тест функциональности и впоследствии были помечены как клик-боты. Таким образом, 75.6% кликов (7,483 кликов) были идентифицированы нашим механизмом обнаружения фрода как исходящие от кликов-ботов. Среди них 99.5% (7,448 кликов) были простыми клик-ботами без поддержки JavaScript; остальные 0.5% (35 кликов) были относительно продвинутыми кликерами с поддержкой JavaScript, но они не прошли тест функциональности.

Таблица 4. Параметры, полученные для каждого клика по объявлению

Проверка поведения при просмотре сайта. После выполнения двух указанных выше шагов и удаления неполных данных, нам осталось проверить 1,479 рекламных кликов (14.9%). Из них 1127 кликов по объявлениям-наживкам, а 352 – от нормальной рекламы. Далее мы классифицируем трафик кликов по трем категориям – «мошеннические», «случайные» и «действительные» – на основе информации о вовлеченности пользователей, клиентских IP-адресах и репутации издателя.

Особенности. Мы считаем, что три параметра могут эффективно отличить продвинутых клик-ботов и людей-кликеров от реальных пользователей. (1) Как пользователи ведут себя на рекламируемом сайте, т.е. информация о поведении пользователей при просмотре. (2) Кто нажимает на нашу рекламу – хост с подозрительным IP, вероятно, чаще совершает мошеннические клики (3). Где пользователи нажали на рекламу – клики с сомнительных веб-сайтов скорее будет мошенническими. В таблице 4 перечислены все данные, которые мы извлекли для  каждого клика в рекламном трафике, чтобы охарактеризовать поведение пользователей на сайте.

Основа понимания. Все предыдущие работы [4, 11, 16] предполагали, что лишь немногие люди намеренно нажимали на приманки, и только клик-боты и люди-кликеры попадались на такие объявления. То есть клик по объявлению-наживке сам по себе считается мошенническим. Однако это предположение слишком безусловно. Рассмотрим следующую ситуацию. Реальный пользователь нажимает на рекламу-приманку непреднамеренно или просто из любопытства, без злого умысла. Затем пользователю нравятся рекламируемые продукты, и начинается просмотр рекламируемого сайта. В этом случае клик по объявлению, созданный этим пользователем, не должен быть помечен как мошеннический. Таким образом, чтобы минимизировать ложные срабатывания, мы лишь частично приняли вышеупомянутое предположение и тщательно изучили те клики по приманкам, которые показали нормальное поведение людей на сайте. Мы готовы были пересмотреть классификацию, основываясь на следующей эвристике. Клик по объявлению-наживке, если IP-адрес хоста отсутствует в черном списке и веб-сайт издателя имеет хорошую репутацию, помечается как действительный, если выполняется одно из следующих условий: (1) 30 секунд времени пребывания на сайте, 15 событий мыши и 1 клик; (2) 30 секунд времени пребывания, 10 событий мыши, 1 событие прокрутки и 1 щелчок; или (3) 30 секунд времени пребывания, 10 событий мыши и 2 просмотренные страницы. Мы считаем, что приведенные выше условия являются достаточно строгими, чтобы избежать ошибочной маркировки рекламных кликов, генерируемых ботами и людьми-кликерами, как действительных.

Обратите внимание, что наши обычные объявления показывались только на страницах с результатами поиска в поисковой системе, и мы ожидали, что большинство кликов (если не все)  по ним будут настоящими. Отчет по рекламной кампании, представленный рекламной сетью в Таблице 3, подтверждает это, показывая, что процент недействительных кликов для обычных объявлений в среднем составил всего 5.08%. Основываясь на нашем дизайне и отчете о рекламной кампании, мы предполагаем, что в основном клики по обычным объявлениям реальные. Однако, после дальнейшей ручной проверки этих обычных кликов, мы обнаружили, что некоторые из них не показали нормального поведения пользователя. Эти нормальные клики по рекламе мы можем пометить как случайные, если выполняется одно из следующих двух условий: (1) менее 5 секунд времени на сайте; (2) менее 10 секунд времени и менее 5 событий мыши. Случайный трафик кликов может исходить от пользователей, которые непреднамеренно нажали на рекламу, а затем сразу же ушли с рекламируемого сайта. С точки зрения рекламодателей, такой трафик кликов не дает никакой ценности при расчете ROI рекламной кампании в конкретной рекламной сети, и поэтому должен классифицироваться как случайный.

На самом деле, если за этим не стоит сторонняя финансовая транзакция, имеет значение только намерение пользователя – только так можно понять, является соответствующий клик по объявлению мошенническим или нет. То есть только сами пользователи знают всю правду о мошеннических / настоящих / случайных кликах. Для этих кликов (без инициирования каких-либо финансовых транзакций) мы использовали вышеупомянутые разумные допущения и прямую эвристику, чтобы сформировать основу понимания.

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

Результаты классификации. Используя Weka [20], мы выбрали в качестве алгоритма классификации сокращенное дерево решений C4.5 [21] со значениями параметров по умолчанию (т.е. 0.25 для доверительного коэффициента и 2 для минимального числа инстансов на лист) и выполнили 10-кратную перекрестную проверку. Ложноположительные показатели и ложноотрицательные показатели составили 6.1% и 5.6% соответственно. Обратите внимание, что это результаты классификации 1479 немаркированных кликов. В целом, наш подход показал высокую точность обнаружения при общем количестве 9.9 тыс. кликов, с ложноположительным показателем 0.79% и ложноотрицательным показателем 5.6%, а общая точность обнаружения составила 99.1%.

Накладные расходы. Мы оценили накладные расходы, вызванные нашей системой обнаружения, на стороне клиента и сервера, с точки зрения временной задержки, использования ЦП, памяти и хранилища.

Единственная дополнительная работа, которая требуется от клиента, – выполнение JavaScript-сценария и передача результатов функционального теста на сервер в виде AJAX POST запроса. Мы измерили накладные расходы на стороне клиента, используя две метрики: количество строк исходного кода (SLOC) и время выполнения JavaScript-кода. Код JavaScript составил всего около 150 SLOC, и мы наблюдали лишь незначительное влияние на клиента. Мы также оценили время выполнения клиентом JavaScript на стороне сервера, чтобы избежать вероятности того, что клиент может сообщить фиктивное время выполнения. Обратите внимание, что время выполнения, измеренное сервером, содержит время приема-передачи, что делает полученное нами время выполнения больше, чем фактическое. На рисунке 9 показано время выполнения JavaScript-кода для 9.9 тыс. клиентов. Около 80% клиентов завершили исполнение в течение одной секунды. Предполагая, что время приема-передачи (RTT) составляет 200 миллисекунд, фактические накладные расходы, возникающие на стороне клиента, составили всего несколько сотен миллисекунд.

Рис. 9. Время выполнения клиентом проверочного кода JavaScript, в миллисекундах

Мы использовали SAR (System Activity Report) [22] для анализа производительности сервера и измерения накладных расходов на стороне сервера. Мы не наблюдали скачков нагрузки. Это связано с тем, что большая часть нашей работы по обнаружению выполнялась на стороне клиента, а трафик, вызванный кликами, был незначителен по сравнению с нормальным.

5 Обсуждение и ограничения

В этой статье мы предположили, что обычный клик-бот, находящийся на зараженном хосте, не имеет своего собственного JavaScript-движка или доступа ко всему программному стеку настоящего веб-браузера. Продвинутый бот, реализующий полноценный агент браузера, станет гораздо более заметным и вероятность его обнаружения возрастет. Клик-бот также может использовать настоящий браузер для генерации действий и, таким образом, пройти наш тест функциональности. Чтобы идентифицировать таких мошенников, мы могли бы дополнительно определять, действительно ли наши объявления и сайты, на которых они рекламируются, видны пользователям. Для этого можно использовать новые функции, предоставляемые некоторыми рекламными сетями. Они позволяют рекламодателям встраивать в свои объявления JavaScript-код для лучшего понимания того, что происходит с рекламой на стороне клиента. С помощью этих функций мы могли бы определить, виден ли наш рекламный фрейм на экране пользователя или он загружен в фоне, действительно ли фокус на нем и нажат ли он.

Кроме того, по сравнению с нашими функциями, относящимися к поведению пользователя (время пребывания, события мыши, события прокрутки, клики и т.д.), функции, связанные с конверсией пользователей3, как ожидается, будут еще лучше различать ботов, людей-кликеров и реальных пользователей. Наш сайт – это профессиональный форум, а не интернет-магазин. Если пользователь регистрируется (создает учетную запись) на форуме, это аналогично покупке в интернет-магазине. Однако такое преобразование из гостя в участника является слишком редким событием, чтобы полагаться на него для улучшения классификатора

6 Связанные работы

Отпечатки браузера (Browser Fingerprinting). Отпечатки браузера позволяют сайту идентифицировать браузер клиента, даже если клиент отключит файлы cookie. Существующие методы снятия отпечатков можно в основном разделить на две категории, основываясь на источнике информации, которая необходима для составления отпечатка. Первая категория снимает отпечатки браузера, собирая информацию прикладного уровня, включая информацию из HTTP-заголовков запросов и информацию о конфигурации системы [23]. Вторая категория выполняет изучение браузера, исследуя трафик, генерируемый им [24]. Оба метода имеют свои ограничения в обнаружении ботов. Сложные клик-боты могут подделывать почти всю информацию прикладного уровня, а отпечатки браузера могут изменяться довольно быстро с течением времени [23]. Кроме того, рекламодатель часто не может собрать достаточно трафика для дактилоскопии клиента всего за один визит на сайт. По сравнению с существующими методами снятия отпечатков браузера, наша технология обнаружения работающих функций имеет три основных преимущества. Во-первых, боты не могут легко пройти функциональный тест, если они не реализовали основную функциональность, присутствующую в современных браузерах. Во-вторых, клиента можно тщательно протестировать на стороне рекламодателя даже за один раз. Наконец, наша техника может работать продолжительное время, так как даже новые браузеры должны соответствовать всем веб-стандартам, которые в настоящее время поддерживаются современными браузерами.

Выявление клик-фрода. В нескольких предыдущих исследованиях были изучены известные действия мошенников, и было установлено, что клик-боты постоянно развиваются и становятся все более изощренными. В качестве первого исследования, посвященного анализу функциональности клик-робота, Daswani et al. [3] разобрал работу Clickbot.A и обнаружил, что бот может проводить малозаметные мошенничества с кликами, избегая обнаружения. Миллер с соавторами [5] исследовал два других семейства ботов. Они обнаружили, что эти два бота были более продвинутыми, чем Clickbot.A в плане сокрытия мошеннических кликов. Один клик-бот использовал  перенаправления между ботами и рекламными сетями, а другой имитировал поведение пользователей при просмотре веб-страниц. Некоторые другие характеристики клик-ботов описаны в [4]. Боты лишь иногда генерируют мошеннические клики и только тогда, когда живой пользователь нажимает на ссылку, что делает мошеннический трафик едва ли отличимым от легального. Обычные браузеры также могут быть использованы для генерирования мошеннического трафика кликов. Трафик, генерируемый обычным браузером, может быть перехвачен вредоносным издателем и далее преобразован в мошеннический клик [7]. Один из ботнетов [6] использует вредоносное ПО для подмены локального DNS жертвы на вредоносный, а затем заменяет рекламу и проводит атаки с использованием перехвата кликов. Наша система обнаружения позволяет идентифицировать каждого такого клик-бота при помощи активного функционального тестирования, а с другими видами мошеннических кликов бороться за счет анализа их трафика на стороне сервера.

Обнаружение клик-фрода. Metwally et al. провел анализ логов трафика рекламных сетей для выявления мошеннических действий – non-coalition hit inflation fraud [8], coalition fraud [9] и duplicate clicks [10]. Основное ограничение такой работы заключается в том, что логи рекламных сетей обычно недоступны для рекламодателей. Haddadi в [11] и Dave et al. в [4] предлагают, чтобы рекламодатели использовали рекламу-наживку для обнаружения мошеннических кликов по своим объявлениям. Хотя рекламные объявления-приманки доказали свою эффективность, рекламодатели вынуждены тратить на эти рекламные объявления дополнительные деньги. Dave [16] представил подход к обнаружению мошеннических кликов с точки зрения рекламной сети, а не с точки зрения рекламодателя. Li et al. [7] использовал функции, связанные с доставкой рекламы, для обнаружения вредоносных издателей и рекламных сетей. Однако мониторинг и реконструкция путей доставки рекламы отнимает много времени, и его трудно проводить в реальном времени. Schulte et al. [25] обнаружил вредоносное ПО на стороне клиента с помощью так называемого механизма интерактивного вызова программ (PIC). Однако для проверки всего HTTP-трафика между клиентом и сервером должен быть введен промежуточный прокси-сервер, что неизбежно приведет к значительной задержке. Как и [4, 11], наша защита работает на стороне сервера, но не вызывает никаких дополнительных затрат для рекламодателей. Наша работа – первая, которая обнаруживает клик-ботов, проверяя их функциональные возможности на соответствие спецификациям, которые широко используются в современных браузерах На этом этапе можно обнаружить большинство ботов, поскольку они не имеют таких функциональных возможностей или имеют ограниченные возможности по сравнению с современными браузерами. Для продвинутых кликов-ботов и людей-кликеров мы изучаем их поведение при просмотре на рекламируемом сайте, извлекаем полезную информацию и обучаем классификатор для их идентификации.

7 Заключение

В этой статье мы предложили рекламодателям новый подход к независимому обнаружению мошеннических действий, совершаемых ботами или людьми. Предлагаемая нами система обнаружения выполняет две основные задачи: проактивное тестирование функциональности и пассивный анализ поведения. Целью первой задачи является обнаружение клик-ботов. Клиенту нужно доказать, что он является полноценным браузером, выполнив часть JavaScript-кода. Для более искушенных клик-ботов и кликеров-людей мы реализовали второй подход, наблюдая за тем, что пользователь делает на рекламируемом сайте. Кроме того, мы тщательно проверяем, кто инициирует клик, и какой издатель привел пользователя на сайт рекламодателя, проверяя IP-адреса клиента и репутацию ссылающегося сайта. Мы реализовали прототип, и развернул его на большом работающем сайте для оценки производительности. Затем мы запустили настоящую рекламную кампанию в крупной рекламной сети и изучили реальный трафик кликов, предоставив рекламодателям лучшее понимание результатов с точки зрения географического распределения и сайтов-издателей. Используя данные реальной кампании, мы продемонстрировали, что наша система обнаружения эффективна в обнаружении мошенничества.




Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *