Агрессивное сканирование сайта – анализ и защита

Опубликован , обновлён
Время на чтение: 1 минута 47 секунд

Сканирующие роботы

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

  • Поисковые системы формируют поисковой индекс
  • SEO-сервисы создают аналитические отчёты
  • Агрегаторы копируют информацию для собственных целей
Агрессивное сканирование сайта – анализ и защита

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

Некоторым роботам можно посылать команды с помощью специального файла robots.txt, мета-тегов или заголовков. Например, поисковые роботы Google и Яндекс понимают команды: сканировать/не сканировать страницу, индексировать/не индексировать страницу. С помощью специальных инструментов можно ограничивать скорость сканирования сайта.

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

Вежливый робот – сканирующий робот, содержащий ссылку на описание программы и правила управления поведением робота.

Агрессивный робот – сканирующий робот, который не имеет описания, не реагирует на команды.

Некоторые агрессивные роботы становятся настоящим кошмаром для владельцев сайтов.

Агрессивное сканирование

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

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

Классический сценарий:

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

Что произошло? С высокой вероятностью ваш сайт агрессивно сканирует китайский робот.

Анализ агрессивных роботов

Для предупреждения проблем от агрессивного сканирования нужно проводить периодический анализ. Как правило, это включает ряд работ:

  • Анализ логов сайта (успешные соединения - success.log, ошибки - error.log):
    • Проверка User-Agent
    • Проверка ip
    • Проверка количества обращений с одного ip
    • Проверка истории обращений с одного ip
    • Проверка времени между запросами с одного ip
    • Аналогичная проверка для подсетей
  • Анализ статистики сайта
  • Поиск известных агрессивных роботов

Защита от агрессивного сканирования

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

Признаки для ограничения или блокировки:

  • ip адрес – блокировка ip адреса
  • User-Agent – блокировка User-Agent
  • Время между запросами – снижение скорости для частых запросов

В качестве автоматической защиты можно использовать специальные программы. Например, программа Fail2ban (https://www.fail2ban.org/wiki/index.php/Main_Page) позволяет создать набор правил для блокировки нежелательных роботов.

Для проверки подозрительных ip адресов используйте сайт AbuseIpDB (https://www.abuseipdb.com/ ). Это обновляемая база данных ip-адресов, уличённых в неправомерных действиях.

Бонус - AspiegelBot

Один из недавних (время активности первая половина 2020 года) агрессивных роботов – это AspiegelBot. На слабых (с небольшим количеством ресурсов) хостингах сайты становятся неработоспособными. Этот робот не следует никаким правилам и инструкциям. На некоторых сайтах скорость сканирования достигала нескольких тысяч запросов в минуту. По всем признакам видим агрессивное сканирование.

В данном случае рекомендуем блокировать по User-Agent с помощью правил вашего сервера. Блокировка по ip адресу может себя не оправдать, так как используется широкий диапазон ip адресов.

# сервер nginx 

if ( $http_user_agent ~* (AspiegelBot) )
{
	return 403;
}

# сервер apache 

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} ^(AspiegelBot) [NC]
  RewriteRule .* - [F,L]
</IfModule>
Напишите - ответим быстро и понятно

noviKEY в социальных сетях:

Используя веб-сайт https://novikey.com/, вы соглашаетесь на использование файлов Cookies.