Мастер-класс по удалению рефспама с Google Analytics

  • Реферальный спам (спам в реферере, спам в логах) – спам через реферер, т.е. сайт получает фейковый трафик от спам-ботов. В Google Analytics такой источник трафика помечен как «не определён».
  • Бот – специальная программа, разработанная для выполнения повторяющихся задач с высокой степенью точности и скорости.

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

  1. кликфрода (т.е. для намеренного скликивания рекламных объявлений);
  2. сбора адресов электронной почты;
  3. воровства контента;
  4. распространения вредоносных программ;
  5. искусственного завышения трафика веб-сайта и т.д.

Таким образом, в зависимости от того, для каких целей используется бот, он может быть «хорошим» и «плохим».

 

Не каждый сайт в равной степени подвергается воздействию спам-ботов

Это объясняется тем, что в основе работы спам-ботов лежит обнаружение и использование слабостей сайта в своих корыстных целях.

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

Дело в том, что зачастую пользовательская CMS/движок интернет-магазина не столь хорошо протестированы для обнаружения и исправления уязвимых мест программы. Поэтому используйте зарекомендовавший себя хостинг-провайдер, CMS и движки интернет-магазина.

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

 

Инструкция по обнаружению и устранению рефспама:

Шаг 1: Зайдите в GA «Источники трафика» → «Весь трафик» → «Рефералы» и отсортируйте отчет по «Показателю отказов» в порядке убывания:

Шаг 2: Обратите внимание на рефералы с показателем отказов в 100% или 0% и показателем «Сеансы» в 10 или более. Как правило, это и есть рефспам.

Шаг 3: Если подозрительный реферал принадлежит к одному из сайтов, перечисленных в нижеприведенном списке, — это точно рефспам:

1. semalt.com
2. semalt.semalt.com
3. buttons-for-website.com
4. blackhatworth.com
5. makemoneyonline.com
6. ilovevitaly.com
7. priceg.com

(для русскоязычного сегмента список сайтов будет другим. Например, hulfingtonpost.com, darodar.com (спасибо читателю Marin за уточнение)

Шаг 4: Если вы не можете определить принадлежность подозрительного реферала, не остается ничего другого, как на свой страх и риск пройти по ссылке.

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

Шаг 5: Как только вы убедитесь, что интересующий вас реферал является плохим ботом, ваша задача как можно скорее заблокировать его и не позволить вновь зайти на сайт.

  • Не тратьте драгоценное время на блокировку плохих ботов через создание фильтра в GA.

Это объясняется, по крайней мере, двумя причинами:

#1 Существуют сотни, тысячи плохих ботов и каждый день их появляется столько же, т.е. чисто физически невозможно создать такое количество фильтров, которое бы справлялось с атаками ботов.

#2 Чем больше фильтров вы будете применять для сайта, тем больше вопросов по выборке данных вы получите в GA.

То есть:

  • Невозможно устранить рефспам из источника трафика рефералов, используя «Реферальный список исключений».

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

 

Визиты спам-ботов нанесут колоссальный удар по отчетам GA и навсегда исказят данные по трафику.

Возникает вопрос, что делать в таком случае?

#1 К графику «Сеансы» добавьте комментарий, объясняющий причину необычного всплеска трафика.

#2 Заблокируйте реферал, используемый спам-ботом

Зайдите в файл «.htaccess» (или в «web config», если вы используете IIS) и добавьте следующий код:

RewriteEngine On
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*semalt\.com\ [NC,OR]
RewriteRule .* – [F]

Данный код заблокирует все http и https рефералы с сайта semalt.com и со всех его поддоменов.

#3 Заблокируйте IP адрес, используемый спам-ботом

Зайдите в файл «.htaccess file» и добавьте следующий код:

RewriteEngine On
Options +FollowSymlinks
Order Deny,Allow
Deny from 234.45.12.33

Примечание: не копируйте этот код в свой файл .htaccess — это лишь пример, в таком виде он не сработает, вам необходимо подставить свои значения.

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

  • Блокируйте только те IP адреса, которые негативно влияют на ваш сайт.

Не пытайтесь блокировать все известные вредоносные IP-адреса через файл «htaccess», т.к. он станет настолько огромным, что вы не сможете качественно управлять сайтом. Это также не самым лучшим образом повлияет на производительность веб-сервера.

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

#4 Блокируйте диапазон IP-адресов, используемый спам-ботом

Если вы уверены, что определенный диапазон IP-адресов используется спам-ботами, то вы можете заблокировать весь спектр IP-адреса с помощью нижеприведенного кода:

RewriteEngine On
Options +FollowSymlinks
Deny from 76.149.24.0/24
Allow from all

Здесь 76.149.24.0/24 – это CIDR диапазон.

  • CIDR – это метод IP-адресации, позволяющий гибко управлять пространством IP-адресов.

Блокировка через CIDR – это более эффективный способ, чем блокировка отдельных IP-адресов, т.к. данный метод займет намного меньше места на сервере.

#5 Блокировка вредоносных пользовательских агентов, используемых спам-ботами

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

RewriteEngine On
Options +FollowSymlinks
RewriteCond %{HTTP_USER_AGENT} Baiduspider [NC]
RewriteRule .* – [F,L]

Простой поиск через Google может выдать большой список сайтов, содержащих информацию о вредоносных пользовательских агентах (ПА), используйте ее для определения ботов, которые заходят на ваш сайт.

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

Блокируйте лишь те вредоносные ПА, которые атакуют ваш сайт. Не пытайтесь заблокировать все известные пользовательские агенты, иначе это сделает ваш файл «.htaccess» настолько большим, что вы не сможете корректно управлять сайтом. Кроме того, это негативно отразится на производительности веб-сервера.

#6 Используйте функцию GA фильтрации роботов «Исключение обращений роботов и «пауков»» (находится под отчетом «Настройки представления»).

#7 Хотя бы раз в неделю мониторьте логи сервера

Борьбу с плохими ботами необходимо начинать на уровне сервера. Если вы сможете в первую очередь защитить сайт от атак ботов, вам не придется потом их удалять из отчетов GA.

#8 Используйте программу «Firewall» (защита от сетевых атак)

«Firewall» – это своеобразный фильтр между компьютером/веб-сервером и интернетом, который может защитить ваш сайт от плохих ботов. Если вы работаете в крупной организации, то вы, скорее всего, не понаслышке знаете об этой программе и активно ее используете в своей работе.

#9 Обращайтесь за помощью к системному администратору

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

#10 Используйте в качестве браузера Google Chrome

Если вы еще не пользуетесь программой «Firewall», то вторым лучшим решением будет использование Google Chrome.

  • Chrome обнаруживает и сканирует вредоносные программы быстрее, чем любой другой браузер.

Если вы пользуетесь Google Chrome, у вас меньше шансов заразиться при переходе по подозрительной ссылке в отчете GA «Рефералы».

#11 Используйте пользовательское уведомление для мониторинга необычного всплеска трафика, особенно если оно касается прямых заходов и рефералов. Если вы будете пользоваться данным уведомлением в GA, то сможете быстро обнаруживать и устранять плохие боты.

#12 Вкладывайте деньги в испытания, проверяющие возможность проникновения в систему

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

Оригинал статьи можно просмотреть тут.



  • Marian

    Я пользуюсь исключением рефералов в интерфейсе Universal Analytics (Admin — Tracking Info — Referral Exclusion LIst). Вроде помогает.

  • Marian

    1. Также эти нехорошие люди маскируют ботов по известные сайты. Недавно увидел в рефералах hulfingtonpost.com — маскировка под известный новостной портал буржуйский.

    2. Также можна внести в список примеров darodar.com — у меня он повсюду под видом, например, forum.topic17376199.darodar.com

  • Спасибо, Marian, дополним статью Вашими примерами.

  • Владимир

    К чему в статье про реф. спам написано:
    кликфрода (т.е. для намеренного скликивания рекламных объявлений);
    сбора адресов электронной почты;
    воровства контента;
    распространения вредоносных программ;
    искусственного завышения трафика веб-сайта и т.д.
    Вообще же никакого отношения не имеет.

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

  • Александр

    Почему указаны только что необходимо сделать, а как пошагово это выполнить не указали?
    Пример: «#11 Используйте пользовательское уведомление для мониторинга необычного всплеска трафика»

    Как настроить пользовательское уведомление для мониторинга необычного всплеска трафика?

    Это касается и всех остальных пунктов статьи.
    Если целью статьи ставилось указать читателям, что мы не ориентируемся в этом вопросе, то Вам это удалось.
    В действительно полезной статье указывается не только что нужно сделать, но и как это действительно делается.
    Или ставилась задача получить новых клиентов на услугу обеспечения безопасности сайтов?

  • Александр, добрый вечер! В первую очередь это перевод мастер-класса зарубежного специалиста. Это его видение, статья рассчитана на аудиторию, которая работает с такими данными, в ней по пунктам описано, куда нужно зайти и какие данные внести. Лично я не смогу справиться с такими настройками, поэтому в таких случаях обращаюсь к программистам.

    Услуги обеспечения безопасности сайтов наша компания не предоставляет и предоставлять не планирует.

    Что касается пункта №11 — для начала зайдите в Google Analytics; где именно находится настройка пользовательских уведомлений Вы можете посмотреть на скриншоте — http://joxi.ru/V2VazyRtYe3xmv

  • Иван

    Добрый день. Прописал

    RewriteEngine On
    Options +FollowSymlinks
    RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*semalt\.com\ [NC,OR]
    RewriteRule .* – [F]

    Но в Аналитике я вижу переходы с semalt.semalt.com / referral со 100% отказами.
    Наверно не работает данная инструкция?

  • Здравствуйте, Иван! Причин может быть несколько, например, неправильно составленное правило htaccess или, возможно, ваш сервер вообще не поддерживает некоторые (а то и все) директивы htaccess (из-за настроек сервера такое бывает). Поэтому рекомендуем для начала установить, работают ли вообще хоть какие-то директивы в вашем htacces.

    Попробуйте еще прописать так:

    RewriteEngine on
    RewriteCond %{HTTP_REFERER} example\.com [NC,OR]
    RewriteCond %{HTTP_REFERER} example\.example\.com [NC]
    RewriteRule .* — [F]

  • Иван

    RE:Алина Дрига
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} example\.com [NC,OR]
    RewriteCond %{HTTP_REFERER} example\.example\.com [NC]
    RewriteRule .* — [F]

    Спасибо. Эта инструкция обрезала реферера.

  • Иван

    Добрый день. В прошлый раз вы мне помогли с новой инструкцией для исключения поддомена. Но этих поддоменов очень много. Подскажите пожалуйста по новой инструкции для исключения всего домена с поддоменами. Например для *.social-buttons.com.
    Просто описывать все поддомены через правило
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} example\.com [NC,OR]
    RewriteCond %{HTTP_REFERER} example\.example\.com [NC]
    RewriteRule .* — [F]

    очень долго. Спасибо.

  • Попробуйте так: найти общую часть в url сайта, на который у вас обнаружены ссылки и указать ее вместо example в инструкции, приведенной ниже.

    RewriteCond %{HTTP_REFERER} ^http://(.*)example\.(.*) [NC]
    RewriteRule .* — [F]

  • Иван

    Добрый день. Что-то не сработала Ваше условие. В интернете еще нашел вот такое правило:

    RewriteCond %{HTTP_REFERER} (buttons) [NC]
    RewriteRule .* — [F]

    Вот на этой странице — http://www.exlab.net/files/tools/sheets/mod_rewrite/mod_rewrite.png

    Как вы думаете сработает? Где более подробно можно прочитать про настройку файла .htaccess, можете подсказать? Спасибо.

  • Добрый день, Иван!

    Попробуйте, с htaccess сложно угадать, надо пробовать. Почитать можно тут на английском или тут на русском.

  • Сергей Коваль

    Я у себя использовал такую конструкцию:

    Options -Indexes

    # Set spammers referral as spambot
    SetEnvIfNoCase Referer *URL-1* spambot=yes
    SetEnvIfNoCase Referer *URL-2* spambot=yes
    —-
    ## add as many as you find

    Order allow,deny
    Allow from all
    Deny from env=spambot

  • VALERA

    Все ваши примеры-это пустая трата времени.
    Вы лучше сообщите как вообще заблокировать Referrals переходы на сервер?
    Полностью, забить таких посетителей!

  • Valera, забить таких посетителей, конечно, вариант. Но, к сожалению, заблокировать раз и навсегда такие переходы не получится, надо постоянно следить.

  • Сергей

    Добрый день. Скажите пожалуйста как можно запретить несколько CIDR сразу?

    Прописал значения CIDR через запятую, после чего сам не смог попасть на сайт. Все прописанные CIDR относились к другому региону.

    RewriteEngine On
    Options +FollowSymlinks
    Deny from 76.149.24.0/24
    Allow from all

  • Добрый день! Вы не смогли попасть на сайт, так как сразу заблокировали все адреса. Вам нужно указывать каждый адрес, который вы хотите запретить, отдельно:
    Deny from 76.149.24.1
    Deny from 76.149.24.2
    Deny from 76.149.24.3

  • Alex

    Посмотрел по логам, боты вообще не заходят на сайт, так что непонятно при чет тут вообще .htaccess
    спямят напрямую в гугл аналитикс

  • embo

    Уважаемые оптимизаторы, как вы считаете – реф спам на моем сайте приносит много 100% отказов может ли это влиять на продвижение? (Приблизительно в одно время с появлением множества реф спама где то на 15% понизились заходы с органики)

  • embo, добрый день! Яндекс уверяет, что рефспам не влияет на видимость сайта, но сказанное может отличаться от реального. Лучше перестраховаться и фильтровать ботов, закрывать доступ по IP, писать в Яндекс, если возникают какие-то проблемы. Еще одна статья по этой теме, которая может помочь — http://optimizatorsha.ru/yandex/refspam/. Но согласно нашему опыту, прямого влияния на продвижение нет.

  • Олег

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

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

  • Алексей

    Ребята!!! Вся эта работа с файлом .htaccess пустая трата времени по большей части! Дело НЕ в том что вы что-то неправильно настроили или у вас сервер не поддерживает какие-то команды, а всё дело что есть такая штука Measurement Protocol.
    Measurement Protocol позволяет использовать Google Analytics для сбора данных практически из любой среды, к примеру заносить данные по своим розничным продажам в оффлайн магазине. Однако, тот же Measurement Protocol можно использовать и для передачи спама. Спамерам ничего не нужно узнавать — ID можно генерировать автоматически в больших количествах.
    ТАК КАК НЕПОСРЕДСТВЕННОГО ВЗАИМОДЕЙСТВИЯ С САЙТОМ НЕТ, то нельзя отсечь спамные данные на уровне сервера, используя .htaccess. Данные можно исключить из отчетов только с помощью фильтров Google Analytics.