BotBan

Новости проекта

Движок стал строже к сканерам, а в кабинете появились страны и карта запросов

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

Мы подключили botban.ru к самому себе и сели читать журнал. Картина оказалась поучительной: сканер с одного адреса Google Cloud за полминуты запросил /id_rsa, /key.pem, /server.key и /rclone.conf, каждый раз представляясь новым роботом — ClaudeBot, GrokBot, CCBot, cohere. Заблокированы были только два запроса, где он назвался Googlebot: их мы умеем проверять по обратному DNS. Остальные прошли с баллом 25. Десяток адресов из облаков Tencent и Alibaba с одинаковым «iPhone OS 13» ходили по новостям с идеальными заголовками и баллом 0. Ниже — что мы с этим сделали.

Новые признаки

  • Сканеры сети. Censys, Shodan, InternetMeasurement, Nmap, sqlmap, Nuclei, WPScan и подобные подписываются честно. Раньше они проходили как «неизвестный робот», теперь получают полный вес признака.
  • Поиск ключей и дампов. Список путей расширен: ключи SSH и сертификаты, дампы базы, бэкапы конфигов, /owa/, /phpinfo.php, отпечатки WordPress вроде wlwmanifest.xml. И главное — память: второй запрос к секретам с того же адреса за шесть часов считается второй независимой уликой, а этого хватает на блокировку. Память общая для всех сайтов: сканер, прошедшийся по одному клиенту, у следующего встречает закрытую дверь. Обычную страницу с такого адреса это почти не трогает — за операторским NAT после сканера может прийти человек.
  • Смена масок. Адрес, который за час назвался тремя разными роботами, доверия лишается. Настоящий краулер ходит под одним именем.
  • Робот без проверки. Назвался роботом, но в каталоге его нет — небольшой довод. Честные мониторинги и SEO-сервисы бывают, поэтому один этот признак ничего не решает.
  • Сеть адреса. Теперь мы знаем, из какой сети пришёл адрес: домашний провайдер, оператор связи или хостинг. Адрес из облака весит мало — через те же облака ходят люди по VPN. Но «iPhone» из дата-центра с безупречными заголовками — единственное, за что можно зацепиться у парсера, и это второй довод.
  • Строка браузера без платформы. Настоящий Chrome всегда пишет «Mozilla/5.0 (Windows…». Строка без скобок собрана вручную.
  • Кредит доверия — не индульгенция. Робот из белого списка (мониторинг, краулер соцсети, ИИ-краулер) теряет пропуск, если ищет секреты или меняет имена.

Главный принцип не изменился: ни один признак не дотягивает до блокировки в одиночку, для неё нужны два независимых довода, а адреса, за которыми стоит много людей, жёстко не блокируются никогда.

ИИ-краулеры

В «Кого не трогать никогда» появился четвёртый переключатель — GPTBot, ClaudeBot, PerplexityBot, Bytespider и ещё три десятка роботов ИИ-компаний. По умолчанию они проходят. Это единственный переключатель, который можно выключить без вреда для людей: сайт просто перестанет попадать в ответы ассистентов. Кабинет об этом напомнит.

Страны, карта и справка об адресе

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

  • флаг страны рядом с каждым адресом в журнале и на дашборде;
  • карта «Откуда идут запросы» на дашборде — сколько визитов из каждой страны и какая доля заблокирована; страны, откуда идут в основном боты, подсвечены красным;
  • в раскрытом визите — кнопка «Подробнее об адресе»: страна, сеть и номер автономной системы, признак хостинга, обратное DNS-имя, отметка об общем адресе, история адреса на сайте за 30 дней и место в ваших списках;
  • чёрный список стран в настройках заработал по-настоящему.

Визитам за последние 30 дней страну дописали задним числом, так что карта не пустая с первого дня.