
Комментарии 7
Притом, такие ботнеты с поиском уязвимых страниц по списку существовали ещё лет десять-пятнадцать назад, когда я работал в техподдержке хостера и клиенты регулярно звонили с жалобами на вскрытый вордпресс или джумлу.
С тех пор к этому зоопарку добавились только скрапперы LLM.
Я давно уже думаю о простом WAF по аналогии с Fail2Ban: смотрим логи и если видим нетипичное поведение (много ошибочных запросов) - баним IP.
Это не спасет от 0-day уязвимости, если одной командой можно получить какой-то доступ. Но это спасет от всех сканеров и попьет очень много крови у настоящего хакера, который неизбежно будет исследовать приложение множеством необычных запросов. Достаточно просто читать лог!
Можно даже (довольно легко) отлавливать в логе успешную аутентификацию и таких пользователей обрабатывать уже как-то иначе. (например, для них выше порог доверия).
Сам Fail2Ban тут не совсем удобен - он вот как раз не умеет понимать, что юзер успешно залогинен (то есть, скорее всего это именно наш юзер, а не просто мамкин хакер из Индонезии), а любые лимиты fail2ban можно "обойти" сканируя сервер слишком медленно, чтобы оказаться ниже радаров.
С точки зрения нагрузок на сервер несколько тысяч посторонних запросов в сутки к несуществующим страницам статического сайта - это ни о чем. Не стоит беспокоиться вообще.
С точки зрения безопасности в момент выкладки сайта на сервер всегда имет смысл убедиться в том, что вы не выложили туда чего-нибудь лишнего, например какого-нибудь файлика с какими-нибудь ключами.
Да, у меня на одном сайте с мп3 на русском качают из США 80%.
Это явно роботы. То есть из 100гб траффика в месяц, 80 это ИИ компании. Сервер дома стоит, и пока делать что-то лень, но автор хотя бы прояснил путь.
А после индексации и попадания в выдачу ПС(Поисковых Систем), ситуация с ботами ухудшится в десятки раз, если не в сотни(когда открываю в ipfw подсети CN - идёт постоянное сканирование ~2 запроса в сек).
Вами проделана отличная аналитика, но при дальнейших исследованиях выяснится, что:
Тезис “2. Фильтр по User-Agent отсекает только вежливых” - верен пока сканируют свежезареганные домены. После попадания в выдачу ПС, по Юзерагенту (UA) отсекается более 80% скрапперов и сканеров(у меня - это тысячи запросов в сутки). Но силами Nginx глубокий анализ UA не реализовать, потребуется серверный скриптовый язык (PHP).
“3. Поведение надёжнее самоназвания” больше относится к тем, кто и так легко блокируется по некорректному UA. Современные скрапперы лазят либо полноценным браузером, либо библиотеками, которые автоматически скачивают CSS/JS и картинки.
Тезис “5. Смотреть надо в свои логи” быстро упрётся в недостаточность информации в логах - вам потребуются заголовки запроса, ими отсеиваются боты с полноценными браузерами (chromedriver / geckodriver).
А в целом, вы на верном пути. Добро пожаловать в клуб :)
PS: В ipfw / fall2ban придётся блокировать подсети по Странам (у меня это весь AFRINIC/LACNIC и почти все из APNIC). Иначе столкнётесь с волнами набегов по 100 - 200 тыс. фейковых запросов в сутки.
PPS: А потом вы придёте к необходимости реализовать JS-challenge перед пропуском на сайт. И в итоге, создадите полноценный WAF.
Я поставил сайт-визитку и посчитал посетителей. Живых оказалось 8 %