5 хв.
Якщо ви використовуєте 1С-Бітрікс , то, можливо, хоча б раз отримували лист із заголовком "Перевищений ліміт активності".Всередині листа приблизно такий текст:
На сайті відвідувач перевищив встановлений ліміт активності.
Починаючи з [дата], відвідувач заблокований на 600 сек.
Активність – 16 хітів за 10 с. (ліміт – 15)
Відвідувач – 1974831
Сесія – 2032988
Пошуковик – [0]
UserAgent –
Для додавання в стоп-лист скористайтеся посиланням нижче:
...
Чому це відбувається
У більшості випадків це не живий відвідувач, а бот-сканер , який перевіряє сайт на наявність уразливих файлів або вразливих CMS-скриптів. Мета – знайти дірку та впровадити шкідливий код (web shell, backdoor, спам-скрипт).Ми помітили, що сканування йшло за точними списками популярних шкідливих або застарілих файлів . Наприклад:
- /ee.php
- /edit.php
- /dropdown.php
- /doc.php
- /content.php
- /composer.php
- /classsmtps.php
- /adminer.php
- /as.php
- /alfanew.php
А також по вкладених шляхах:
- /assets/images/doc.php
- /about/function.php
- /admin/index.php
- /.well-known/index.php
Чому блокування в самому Бітрікс неефективне
Битрикс у листі дає посилання моментального блокування IP-адреси . На перший погляд – зручно. Але на практиці IP-адреси змінюються постійно (іноді на кожний новий запит).У результаті блокування IP у Бітрікс не дає реального ефекту, і сканування продовжується.
Як ми вирішили проблему
Ми вирішили не блокувати IP, а блокувати самі шкідливі запити лише на рівні веб-сервера (nginx).Перевага цього підходу:
- Запит навіть не дійде до PHP та Бітрікс, навантаження на сайт менше.
- Працює для всіх сайтів на сервері одразу.
- Не залежить від IP-адреси зловмисника.
Приклад вмісту:
Блокування шкідливих файлів на будь-якій вкладеності:
location ~* "(?x)
(/|^) (autoload_classmap\.php
| auth\.php
| atomlib\.php
| assets/images/doc\.php
| asasx\.php
| as\.php
| alfa\.php
| al\.php
| akc\.php
| adminfuns\.php
| admin/index\.php
| admin/function\.php
| admin/admin\.php
| admin\.php
| about/function\.php
| about/Geforce\.php
| about\.php
| 87\.php
| 13k\.php
| 12\.php
| ee\.php
| 10\.php
| edit\.php
| dropdown\.php
| doc\.php
| content\.php
| composer\.php
| classsmtps\.php
| chosen\.php
| blog\.php
| ay\.php
| av\.php
| avaa\.php
| adminer\.php
| alfanew\.php
)$" {
deny all;
return 403;
}
Блокування цілих розділів на сайті через NGINX
Іноді шкідливі сканери не просто перевіряють окремі файли, а послідовно перебирають цілі папки, наприклад wp-includes, wp-content, wp-admin (часто зустрічається на WordPress), а також каталоги з картинками або медіа, такі як assets.Щоб захиститись від таких масових запитів, можна відразу заборонити доступ до всього розділу на будь-які вкладення. Це особливо корисно, якщо на вашому сайті таких папок немає, і будь-які звернення до них є підозрілими.
Приклад конфігурації NGINX:
# Блокировка папок wp-includes, wp-content, wp-admin и assets на любой вложенности
location ~* "(?x)
/(
wp-includes
| wp-content
| wp-admin
| assets
)/" {
deny all;
return 403;
} Як це працює:- location ~* — реєстронезалежний регулярний вираз.
- (wp-includes|wp-content|wp-admin|assets) — список папок, що блокуються.
- / Наприкінці - гарантує, що правило спрацює саме на папку, а не на частину імені файлу.
- deny all; return 403; - Забороняє доступ і повертає код відповіді HTTP 403 (Forbidden).
Топ шкідливих запитів до сайту
| № | Запитуваний шлях | Частота | Опис загрози |
|---|---|---|---|
| 1 | /adminer.php | 325 | Популярний скрипт для управління БД, що часто використовується зловмисниками |
| 2 | /wp-admin/ | 298 | Адмін-панель WordPress, використовується для брутфорсу |
| 3 | /wp-content/plugins/ | 254 | Спроби знайти вразливі плагіни WordPress |
| 4 | /composer.php | 210 | Можуть запускати інсталятор або виконувати PHP-код |
| 5 | /classsmtps.php | 184 | Спам-скрипт або бекдор |
| 6 | /ee.php | 172 | Застарілий експлойт для атак RFI/LFI |
| 7 | /assets/images/doc.php | 158 | Маскування шкідливого файлу під зображення |
| 8 | /edit.php | 141 | Відомий бекдор для завантаження файлів |
| 9 | /alfanew.php | 132 | PHP web-shell |
| 10 | /wp-includes/ | 124 | Системні файли WordPress скануються на вразливості |
Додатковий захист: fail2ban
Fail2ban - це інструмент, який відстежує логи веб-сервера і може автоматично блокувати IP-адреси, що порушують ці правила.Наприклад, якщо з одного IP за короткий проміжок часу йде занадто багато запитів з помилкою 404, fail2ban може додати цей IP до бан на кілька годин або днів.
Плюси fail2ban:
- Автоматична реакція на підозрілі активності.
- Гнучкі налаштування фільтрів.
- Блокування не тільки для Інтернету, але і для SSH, FTP та інших сервісів.
Використання Cloudflare
Cloudflare це сервіс, який може фільтрувати трафік ще до того, як він потрапить на ваш сервер. Він уміє:- Захищати від DDoS-атак.
- Обмежувати частоту запитів (Rate Limiting).
- Автоматично блокувати підозрілих роботів.
Рекомендації щодо захисту Bitrix-сайту
- Налаштуйте блокування шкідливих файлів та шляхів через NGINX.
- Використовуйте fail2ban для автоматичного блокування IP за логами.
- Якщо можливо, підключіть Cloudflare.
- Регулярно оновлюйте Bitrix та PHP.
- Видаляйте модулі та скрипти, які не використовуються.
- Періодично перевіряйте сайт на наявність шкідливого коду.
Підсумок
Якщо ви регулярно отримуєте листи від Bitrix про перевищення ліміту активності, це сигнал, що ваш сайт сканують на вразливості.Не витрачайте час на ручне блокування IP в адмінці - налаштуйте захист на рівні сервера, щоб шкідливі запити навіть не доходили до сайту.
Ми можемо допомогти : налаштуємо NGINX , fail2ban та додаткові фільтри, щоб ваш сайт працював безпечно та без зайвого навантаження.
Також рекомендуємо ознайомитися: Вірус на Бітрікс з першого липня , Як хакери заражають сайти на Бітрікс і створюють бекдори , Вірус в Бітрікс через слабкі паролі , Вірус в assets Бітрікс , Лютневий вірус на Бітрікс .