Перейти к содержимому
Leonidov.DEV

BotBlocker Security: WAF, который включается раньше WordPress

Безопасность
BotBlocker Security: WAF, который включается раньше WordPress

Хочу официально представить BotBlocker Security - плагин для WordPress, созданный, чтобы дать ранний уровень защиты от ботов, ботнетов и автоматизированных атак.

Проект вырос из реального опыта: постоянные brute-force атаки, сканеры уязвимостей, фейковые поисковые роботы и переполненные лог-файлы. Цель - защита, которая работает ещё до того, как WordPress начнёт расходовать ресурсы.

На чём сфокусирован BotBlocker

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

Ключевые возможности

  1. Ранний запуск. Запросы фильтруются до полной загрузки WordPress через MU-механизмы: это экономит CPU и память и блокирует мусорный трафик как можно раньше.
  2. Файрвол / WAF. Входящие запросы анализируются, проверяются на подозрительные шаблоны и блокируются по вредоносным сигнатурам.
  3. Анти-бот защита. Обнаружение автоматизированного поведения, фильтрация ботнетов и блокировка поддельных User-Agent.
  4. Защита входа. Защита админпанели и wp-login.php с контролем попыток brute-force.
  5. Анализ IP. Чёрные списки, динамическая блокировка, поддержка IPv4 и IPv6.
  6. Мониторинг и логирование. Журнал событий безопасности, список заблокированных запросов и анализ активности.
  7. Производительность. Минимальная нагрузка в обычном режиме, снижение нагрузки во время атак и совместимость с кешированием и CDN.

Как фильтруется запрос

BotBlocker ставится как MU-плагин, поэтому его код выполняется раньше обычных плагинов и темы. Запрос, который не прошёл проверки, отклоняется на этом уровне: WordPress не запускается, база не опрашивается, страница не собирается. На общем хостинге это заметно: волна ботов иначе съедает процессор, нужный посетителям.

Что BotBlocker Security проверяет в каждом запросе

Для каждого посетителя работает восемь проверок: cookie, репутация IP, поведение запроса, анти-детект скоринг и ещё несколько. Задача - поймать бота, который скопировал заголовки настоящего браузера, а не выдаёт себя в User-Agent. Если оценка спорная, посетитель получает задание: одно из восьми заданий CAPTCHA, среди них распознавание картинок и движущиеся фигуры.

Не ставьте BotBlocker поверх другого WAF на том же уровне: два фильтра мешают друг другу и делают логи нечитаемыми. Выберите одно место, где принимается решение.

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

Логи и настройка

Каждое решение видно в журнале: время, адрес, путь, сработавшее правило. Так волну ботов не спутать со сломанным кэшем или сервисом мониторинга, который слишком часто стучится на сайт. В первую неделю стоит ждать ложных срабатываний: поисковые роботы, проверки доступности и платёжные колбэки - обычные кандидаты. Их добавляют в белый список, а лог держат открытым несколько дней.

Нагрузка и цифры

На обычном запросе плагин добавляет несколько проверок до PHP, и это дешевле, чем поднимать весь WordPress ради бота. Во время атаки нагрузка падает, а не растёт: заблокированный трафик до сайта не доходит. Сейчас у BotBlocker 14 000 установок в WordPress.org и около 100 000 атак в сутки.

Когда он не нужен

Часть работы закрывают рекомендации WordPress по безопасности плагинов и OWASP Top 10: файрвол не чинит код. Если на сайте нет трафика, который стоит защищать, и нет попыток входа, хватит небольшого плагина для логина и двухфакторной аутентификации. BotBlocker рассчитан на сайты, которые уже видят ботов каждый день, или на те, где один наплыв уже ронял сайт.

Первая неделя после установки

Добавьте в белый список поисковых роботов и проверки доступности, которым доверяете, до первой волны ботов. Каждый день открывайте журнал и ищите блокировки, которых быть не должно: колбэки оплаты, вебхуки платёжного провайдера, сервис мониторинга. Включите двухфакторную аутентификацию для всех администраторов. Держите копию белого списка вне плагина на случай переустановки.

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

Ещё по теме: Лучший плагин безопасности для WordPress: на что смотреть и BotBlocker против Cloudflare: почему универсальный щит не спасает WordPress.