Хочу офіційно представити 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.