Назад | Перейти на главную страницу

Как программно определять ботов

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

Есть ли список известных IP-адресов ботов? Работает ли проверка известных пользовательских агентов ботов?

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

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

Несомненным преимуществом такого решения является то, что вы можете написать что-то довольно интересное, если вы работаете полный рабочий день администратором ;-)

Есть несколько элементов, к которым нужно стремиться.

Строка пользовательского агента - это одно значение, но его можно тривиально подделать.

Я нашел достаточно полезную эвристику - провести небольшую предварительную обработку, а затем посмотреть трафик:

  • Обратный поиск IP
  • Вызвать проект Routeviews (http://www.routeviews.org/), чтобы поднять CIDR и ASN для данного IP. Это позволяет вам расширяться от одиночных IP-адресов до непрерывных диапазонов сети с аналогичными шаблонами трафика.
  • Разверните имена ASN: http://bgp.potaroo.net/cidr/autnums.html

Проанализируйте свои журналы доступа, добавив информацию об имени хоста, ASN, CIDR и ASN. Подмножество URL-адресов невариантной части (обычно удаляя все, что стоит за '?', Хотя YMMV). Если у вас есть определенные поисковые или служебные страницы, сосредоточьтесь на них (обычно я видел проблемы либо с ботами, использующими какую-либо службу проверки пользователей, либо с поиском).

Ищите одиночные IP-адреса с большим объемом трафика.

Ищите отдельные блоки CIDR или ASN с большим объемом трафика.

Исключите законный поисковый трафик (Google, Bing, Yahoo, Baidu, Facebook и подобные боты / сетевое пространство). Вероятно, это будет одна из ваших основных областей текущего обслуживания, этот материал все время меняется.

Исключите законный пользовательский трафик. Специально для массовых пользователей вашего сайта.

Определите, каковы обычные модели использования как для конечных пользователей, так и для поисковых роботов. Если типичный пользователь посещает 1-3 страницы в минуту, при типичном сеансе 5-10 минут, а робот Google ограничивается, скажем, 10 поисками в минуту, и вы внезапно видите, что один блок IP или CIDR загорается сотнями или тысячи поисков в минуту, возможно, вы нашли свою проблему.

Изучите источники массового / значительного (в отрицательном смысле) трафика. Часто запрос WHOIS показывает, что это своего рода хостинговое пространство - обычно не там, где вы увидите много законного пользовательского трафика. Шаблоны могут появляться в строках пользовательского агента, URL-адресах запросов, строках реферера и т. Д., Что указывает на дополнительные шаблоны.

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

Проверки различных баз данных репутации (поиск спама, SenderBase, теперь есть кое-что от Google в этом направлении) также могут подтвердить плохо контролируемое сетевое пространство.

Я хотел бы сказать, что у меня есть что продать вам в этом направлении, но я работаю в основном с некоторыми awk и другими инструментами, чтобы собрать это воедино. Он будет анализировать миллион строк журнала в минуту или около того (плюс немного дополнительных накладных расходов для подготовки хэшей для IP-адресов и информации ASN / CIDR) на скромной рабочей станции. Не полностью автоматизирован, но через несколько минут работы он даст мне достойное представление о проблеме.

Быстрый поиск в Google показал этот сайт. Это может быть хорошей отправной точкой.

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

На самом деле есть новая технология, которая предназначена для борьбы с ботами в более крупных масштабах. Это может быть полезно для покупателей программных медиа. Это называется снятием отпечатков пальцев с устройства и по сути заменяет отслеживание посетителей на основе файлов cookie. Предпосылка заключается в том, что файлы cookie часто используются мошенниками, а IP-адреса также могут быть изменены через VPN. С другой стороны, отпечатки пальцев остаются уникальными для устройства, IP и GEO и не могут быть изменены. Есть несколько веб-сайтов, которые предоставляют это решение - fraudhunt.net, CPA Детектив и Distil - это лишь некоторые из них.

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

darodar.com (и различные субдомены) Econom.co ilovevitaly.co semalt.com (и различные субдомены) buttons-for-website.com see-your-website-here.com