Хочу официально представить BotBlocker Security - плагин для WordPress, созданный, чтобы дать ранний уровень защиты от ботов, ботнетов и автоматизированных атак.
Проект вырос из реального опыта: постоянные brute-force атаки, сканеры уязвимостей, фейковые поисковые роботы и переполненные лог-файлы. Цель - защита, которая работает ещё до того, как WordPress начнёт расходовать ресурсы.
На чём сфокусирован BotBlocker
- ранняя фильтрация входящего трафика и снижение нагрузки на сервер;
- блокировка автоматизированных атак;
- прозрачный мониторинг и логирование.
Ключевые возможности
- Ранний запуск. Запросы фильтруются до полной загрузки WordPress через MU-механизмы: это экономит CPU и память и блокирует мусорный трафик как можно раньше.
- Файрвол / WAF. Входящие запросы анализируются, проверяются на подозрительные шаблоны и блокируются по вредоносным сигнатурам.
- Анти-бот защита. Обнаружение автоматизированного поведения, фильтрация ботнетов и блокировка поддельных User-Agent.
- Защита входа. Защита админпанели и wp-login.php с контролем попыток brute-force.
- Анализ IP. Чёрные списки, динамическая блокировка, поддержка IPv4 и IPv6.
- Мониторинг и логирование. Журнал событий безопасности, список заблокированных запросов и анализ активности.
- Производительность. Минимальная нагрузка в обычном режиме, снижение нагрузки во время атак и совместимость с кешированием и 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.