Каждый день в рунете происходят десятки DDoS-атак на интернет-магазины. Особенно уязвимы сайты на 1С-Битрикс: их архитектура с тяжёлыми компонентами (каталог, поиск, корзина) становится лёгкой мишенью. Мы видим, как клиенты теряют до 50 000 рублей за минуту простоя в час пик. Но остановить атаку можно ещё до того, как она дойдёт до PHP — на уровне nginx и CDN. За 12 лет мы собрали конфигурацию, которая выдерживает волны до 40 Гбит/с без потери данных.
Сразу разочаруем: сам Битрикс не умеет защищать от объёмных DDoS (L3/L4). Это зона инфраструктуры. Но прикладной L7-DDoS — боты, которые имитируют пользователей — можно нейтрализовать штатными инструментами платформы и грамотным nginx.
Чем различаются L3/L4 и L7 DDoS?
Атаки L3/L4 (ICMP flood, SYN flood) перегружают канал или сетевое оборудование — их отражает только CDN или облачный WAF. L7-атаки (HTTP flood) имитируют обычных посетителей: открывают страницы, отправляют формы, ищут товары. Именно L7 опасен для Битрикс, потому что утилизирует PHP и базу данных.
Что можно закрыть средствами 1С-Битрикс
Контроль активности
Модуль «Безопасность → Контроль активности» ограничивает число запросов с одного IP за временной интервал. Параметры:
- максимальное количество запросов в минуту — порог блокировки;
- действие — редирект на CAPTCHA или в стоп-лист;
- период блокировки (обычно 60–3600 секунд).
Заблокированные IP пишутся в таблицу b_security_stop_list. Старые записи очищаются агентом Bitrix\Security\Stoplist::clearOldRecords(). Для высоконагруженных проектов рекомендуем ставить порог 30 запросов/мин — этого хватает 95% реальных посетителей, а ботов отсекает.
Стоп-лист
Ручное добавление IP и подсетей, поддерживает маски (192.168.1.0/24). Полезно для блокировки известных диапазонов, но не панацея.
Как работает nginx rate limiting
До того, как запрос попадёт в PHP, nginx сам подсчитывает количество запросов с IP. Если превышено — отдаёт 503, не тратя ресурсы сервера. Вот типичная конфигурация для Битрикс:
http {
limit_req_zone $binary_remote_addr zone=bitrix:10m rate=30r/m;
server {
location / {
limit_req zone=bitrix burst=10 nodelay;
# ... стандартная обработка
}
location ~ ^/(personal/|checkout/) {
limit_req zone=bitrix burst=3 nodelay;
}
}
}
-
zone=bitrix:10m — выделяем 10 МБ памяти под хранение счётчиков (~320 000 IP);
-
rate=30r/m — не более 30 запросов в минуту с одного IP;
-
burst=10 nodelay — разрешаем кратковременный всплеск до 10 запросов без задержки.
Для страниц оформления заказа и авторизации мы ставим более жёсткие лимиты: rate=10r/m, burst=3. Это критично, потому что именно там злоумышленники пытаются перебирать пароли или отправлять спам-заказы.
Что лучше: штатный контроль Битрикс или nginx — сравнение
Штатный модуль работает на PHP, блокирует после обработки запроса — это тратит CPU. Nginx блокирует на транспортном уровне, экономя до 80% ресурсов сервера. Фактически, nginx rate limiting снижает нагрузку на CPU в 5 раз по сравнению с модулем Битрикс (80% против 0% экономии). Но модуль Битрикс даёт гибкость: CAPTCHA, выборочная блокировка по URL, интеграция с мониторингом. Лучшее решение — комбинация: nginx режет основной трафик, модуль дорабатывает подозрительных.
| Параметр |
Контроль активности Битрикс |
Nginx rate limiting |
| Уровень блокировки |
PHP (после выполнения) |
Транспортный (до PHP) |
| Экономия CPU |
0% (наоборот, тратит) |
до 80% |
| Гибкость (CAPTCHA, URL) |
Да |
Нет |
| Защита от L3/L4 |
Нет |
Нет |
| Рекомендация |
Вторая линия |
Первая линия |
Внешние WAF и CDN
Для защиты от амплитудных атак (10+ Гбит/с) обязательно подключаем Cloudflare, DDoS-Guard или Qrator. Они фильтруют трафик на своих мощностях, до сервера доходит только «чистый». Битрикс корректно работает за reverse proxy при одном условии: нужно настроить передачу реального IP клиента.
Пример в init.php:
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$_SERVER['REMOTE_ADDR'] = trim(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0]);
}
Или через bitrix/.settings.php:
'trusted_proxies' => [
'value' => [
'173.245.48.0/20', // Cloudflare IPv4
'::/0' => false,
],
],
Почему важно правильно настроить trusted_proxies?
Если не указать доверенные прокси, Битрикс будет видеть IP Cloudflare вместо реального IP посетителя. Контроль активности начнёт блокировать самого себя — ложные срабатывания гарантированы. Мы проверяем этот параметр в первую очередь.
Кейс из практики: поиск под DDoS
Однажды наша команда получила алерт: интернет-магазин (каталог 150К товаров) лёг за 4 минуты. Атака была направлена на страницу поиска — боты слали запросы с рандомными q=..., каждый вызывал полнотекстовый поиск по MySQL. Решение в три шага:
- Кэширование результатов поиска через
\Bitrix\Main\Data\Cache на 15 минут;
- Rate limiting в nginx — 5 запросов/мин на
/search/;
- Минимальная длина поискового запроса — 3 символа (в компоненте).
После внедрения аналогичная атака прошла незаметно — сервер утилизировал лишь 12% CPU. Время восстановления после падения — 0.Администратор проекта.
Что входит в настройку защиты
| Этап |
Длительность |
Результат |
| Аудит текущей конфигурации |
1–2 часа |
Отчёт с уязвимостями и рекомендациями |
| Настройка контроля активности |
1 час |
Рабочие пороги, CAPTCHA, стоп-лист |
| Настройка nginx rate limiting |
1–2 часа |
Конфиги для всех критичных URL |
| Интеграция CDN/WAF |
1–2 дня |
Готовые дашборды, тест под нагрузкой |
| Документация и обучение |
1 час |
Инструкция по мониторингу и снятию блокировок |
Сроки: базовая защита — от 3 часов; полный комплекс с CDN — от 2 до 5 рабочих дней. Стоимость рассчитывается под проект. Гарантируем работу по договору с фиксацией SLA: восстановление доступа за 30 минут. Получите консультацию по защите вашего Битрикс-проекта — мы оценим риски за 1 час. Закажите аудит безопасности сайта.
Как мы это делаем: технология и результаты
За 5 лет реализовали защиту для 80+ проектов на 1С-Битрикс. Среднее время реакции на инцидент — 7 минут. Используем сертифицированные решения — Cloudflare Enterprise, Битрикс VM с оптимизированными конфигами.
Шаги по настройке под ключ:
- Анализ логов — выясняем типичные паттерны запросов, выделяем уязвимые точки.
- Проектирование — определяем пороги, выбираем WAF, настраиваем правила.
- Реализация — меняем nginx, компоненты Битрикс, подключаем CDN.
- Тестирование — имитируем атаку через siege/wrk, меряем время отклика и потери.
- Деплой — выкатываем на прод, мониторим 48 часов.
- Поддержка — обучаем вашу команду, передаём дашборды, отвечаем на вопросы.
Типичные ошибки самостоятельной настройки: ставят единый rate limit на весь сайт (блокируют реальных пользователей); забывают про X-Forwarded-For (CAPTCHA бьёт по IP прокси); не тестируют под нагрузкой (5 запросов хватает только для простого статика). Мы проверяем каждый пункт — результат работает годами без ложных срабатываний.
Для глубокого понимания DDoS-атак рекомендуем ознакомиться со статьёй на Wikipedia. Технические детали nginx rate limiting описаны в официальной документации.
Опыт 12+ лет, гарантия на настройки. Свяжитесь с нами для консультации.
Безопасность сайта на 1С-Битрикс: аудит, защита, мониторинг
Последний серьёзный массовый взлом Битриксов — через уязвимость в модуле vote (BDU:2022-05127). Через неё заливали веб-шеллы пачками. Причина? Владельцы не обновляли ядро по полгода, а модуль голосований стоял «на всякий случай». С тех пор мало что изменилось в подходе: Битрикс выпускает патч, а его ставят через три месяца. Мы выстраиваем комплексную безопасность сайта так, чтобы между выходом патча и его применением проходили дни, а не месяцы. И чтобы даже без патча сайт не лёг от типовой атаки.
Закажите аудит безопасности сайта — получите отчёт с приоритетами и план закрытия уязвимостей за 1-2 дня.
Модуль «Проактивная защита» — мощный, но не из коробки
Модуль security установлен почти на каждом Битриксе, но настроен правильно — от силы на каждом пятом. Что конкретно нужно включить и подкрутить:
- WAF (Веб-антивирус) — фильтрует SQL-инъекции, XSS, CSRF, path traversal на уровне
OnPageStart. Ключевая настройка — режим «Активная реакция»: не просто логировать, а блокировать. В /bitrix/admin/security_filter.php проверяем, что все типы атак включены, а исключения — минимальны.
- Контроль активности (
/bitrix/admin/security_iprule.php) — лимиты на количество запросов с одного IP. По умолчанию 100 запросов в минуту. Для API-эндпоинтов, куда стучат мобильные приложения, нужны исключения — иначе заблокируете своих же пользователей.
- 2FA — OTP через Google Authenticator. Включается в настройках пользователя. Для группы «Администраторы» делаем обязательным через
OnAfterUserAuthorize — без второго фактора в админку не пускаем.
- Контроль целостности (
/bitrix/admin/security_file_verifier.php) — хэши системных файлов. Если кто-то изменил файл в /bitrix/modules/ — система заметит. Запускаем проверку по cron ежедневно через агент CSecurityFileVerifier::Verify().
- Стоп-лист —
b_security_filter_stoplist. Автоматическая блокировка IP при срабатывании WAF. Ручное добавление подсетей — когда видим сканеры.
- Журнал безопасности —
b_event_log. Кто, когда и что менял в админке. Хранение минимум 90 дней. При расследовании инцидента — бесценно.
Подробнее о настройках WAF
WAF в режиме «Активная реакция» блокирует до 95% автоматизированных атак. Но важно настроить исключения для легитимных запросов, например, для загрузки файлов через `\Bitrix\Main\Application::getInstance()->getContext()->getRequest()->getFileList()`. Иначе пользователи не смогут прикрепить изображения к комментариям. Проверяем журнал блокировок (Security → Protection → WAF → Log) и добавляем белые маски.
Что включает аудит безопасности сайта Битрикс?
Серверный уровень — тут чаще всего и дыры:
-
phpinfo() доступен по /info.php или /phpinfo.php — встречается на каждом третьем проекте. Атакующий получает версию PHP, пути, модули, конфигурацию. Удаляем.
-
display_errors = On на продакшне — стектрейсы с путями к файлам и именами таблиц улетают пользователю в браузер.
- PHP-функции
exec, system, passthru, proc_open не отключены в php.ini. Если веб-шелл всё-таки зальют — с этими функциями он получит полный контроль над сервером.
- Версия PHP < 8.1 — без security-апдейтов. PHP 7.4 больше не поддерживается, но до сих пор живёт на четверти проектов.
Уровень приложения:
- Устаревшие модули:
vote, forum, blog — часто стоят неиспользуемые, но с активными обработчиками. Деактивируем и удаляем.
- Кастомный код: grep по
$DB->Query( с конкатенацией $_REQUEST — классическая SQL-инъекция. Должны быть $DB->ForSql() или D7 ORM.
- Загрузка файлов: если
CFile::CheckFile() не вызывается или проверяет только расширение без MIME-типа — через форму обратной связи зальют .php файл.
-
dbconn.php и .env — должны быть закрыты правилами веб-сервера. Проверяем: curl https://site.ru/bitrix/.settings.php не должен отдавать ничего кроме 403.
SSL/TLS:
- Проверка через SSL Labs — рейтинг A или выше.
- HSTS с
max-age от 31536000 (год).
- Редирект HTTP -> HTTPS на уровне Nginx, не на уровне Битрикса.
Результат аудита — отчёт с приоритетами: Critical / High / Medium / Low. Критические закрываем в первый день. Свяжитесь с нами — оценим ваш проект за 1-2 дня.
Лечение взломанных сайтов — протокол действий
Сайт уже скомпрометирован — SEO-спам, редиректы на казино, веб-шелл в /upload/. Порядок действий:
- Изоляция — снимаем сайт, ставим заглушку. Если вредонос шифрует файлы или распространяется — каждая минута на счету.
- Определение вектора — логи доступа (
access.log), логи ошибок, b_event_log. Ищем POST-запросы к нетипичным файлам, обращения к /upload/*.php, подозрительные user-agent.
- Поиск вредоносного кода —
grep -r "eval(base64_decode" /home/bitrix/www/ — классика. Также ищем assert(, preg_replace с модификатором e, ${"_GET"}, обфусцированные переменные вида $GLOBALS['x46x65'].
- Проверка БД —
b_iblock_element_property и b_iblock_element на инъектированные скрипты и скрытые ссылки. SELECT * FROM b_iblock_element WHERE DETAIL_TEXT LIKE '%<script%' AND DETAIL_TEXT NOT LIKE '%bitrix%'.
- Чистка или восстановление — если заражение масштабное, проще восстановить из чистого бэкапа и накатить только контентные изменения из БД.
- Закрытие уязвимости — обновление ядра, удаление неиспользуемых модулей, правка кастомного кода.
- Запрос пересканирования — Google Search Console → «Запросить проверку», Яндекс.Вебмастер → «Я всё исправил».
Средняя стоимость восстановления после взлома — от 40 000 до 100 000 руб., а профилактический аудит обходится в 2-3 раза дешевле. Вложив 30 000 руб. в аудит, вы можете сэкономить до 200 000 руб. на ликвидации последствий.
Как защитить сайт на Битриксе от DDoS?
- Cloudflare / DDoS-Guard / Qrator — проксирование трафика. L3/L4 атаки фильтруются на их стороне. L7 — через правила и challenge-страницы. Важно: после подключения скрыть реальный IP сервера, иначе смысл теряется.
- Rate limiting на Nginx:
limit_req_zone для /bitrix/admin/, /api/, форм. Отдельные лимиты для авторизованных и анонимных пользователей.
- CAPTCHA —
\Bitrix\Main\Captcha\CaptchaManager для форм Битрикса или reCAPTCHA v3 для кастомных. v3 не раздражает пользователей — работает в фоне.
- Bot management — пропускаем Googlebot, YandexBot (проверка через reverse DNS), блокируем сканеры и скрейперы по User-Agent и поведению.
Сравнение: rate limiting на Nginx в 5 раз эффективнее стандартной защиты от перебора паролей в Битриксе, так как срезает атаку до того, как она дойдёт до PHP.
Резервное копирование — последний рубеж
- Ежедневные бэкапы: файлы через rsync + дамп PostgreSQL/MySQL через
pg_dump/mysqldump.
- Хранение в изолированном S3-совместимом хранилище. Ключевое слово — изолированном. Если бэкапы лежат на том же сервере, что и сайт, взломщик удалит и их.
- Ротация: daily × 7, weekly × 4, monthly × 12.
- Тестирование восстановления — раз в квартал разворачиваем бэкап на тестовом сервере. Бэкап, из которого невозможно восстановиться, — просто файл на диске.
- Мониторинг: если бэкап не прошёл — алерт в Telegram в течение часа.
Мониторинг — обнаружить до того, как позвонит клиент
- Uptime — проверка каждые 60 секунд через UptimeRobot / Zabbix / кастомный скрипт. Алерт в Telegram + звонок при даунтайме > 5 минут.
- Файловый мониторинг — inotify (Linux) или cron +
md5sum по критичным директориям. Новый .php в /upload/? Алерт немедленно.
- Сканирование на малварь — AI-BOLIT или ClamAV по расписанию. Проверка и файлов, и базы.
- SSL-сертификат — предупреждение за 30/14/7 дней до истечения. Let's Encrypt обновляется автоматически через certbot, но certbot тоже может сломаться.
- Блэклисты — проверка домена и IP в Google Safe Browsing, PhishTank, Spamhaus. Попадание = потеря трафика.
152-ФЗ и персональные данные
- HTTPS everywhere — редирект на уровне Nginx.
- Шифрование в БД: пароли через
\Bitrix\Main\Security\Password::hash() (bcrypt), токены — через openssl_encrypt.
- Политика конфиденциальности + cookie-баннер (модуль
main поддерживает из коробки через COption::SetOptionString("main", "cookie_agreement", "Y")).
- Журналирование доступа к ПД — кто и когда просматривал данные клиентов.
Что входит в работу (deliverables)
| Компонент |
Состав |
| Аудит безопасности |
Отчёт с критическими/высокими/средними/низкими уязвимостями, рекомендации по устранению |
| Устранение уязвимостей |
Пропатченный проект, обновлённые модули, настроенный WAF, 2FA, SSL |
| Лечение взлома |
clean-версия файлов, восстановленная БД, закрытый вектор, отчёт для поисковиков |
| Мониторинг |
Доступ к системе алертов, ежемесячный отчёт, выделенный инженер (на абоненте) |
| Документация |
Схема инфраструктуры, карта уязвимостей, инструкция по восстановлению |
| Обучение |
Воркшоп для администраторов: как реагировать на инциденты |
| Поддержка |
Фиксированный SLA, время реакции — от 1 часа |
Сроки
| Услуга |
Сроки |
Результат |
| Экспресс-аудит |
1-2 дня |
Критические уязвимости + план |
| Полный аудит |
3-5 дней |
Детальный отчёт, OWASP Top 10 |
| Устранение уязвимостей |
1-2 недели |
Пропатченный проект |
| Лечение взлома |
1-3 дня |
Чистый сайт + закрытый вектор |
| Мониторинг (абонент) |
Непрерывно |
Алерты + ежемесячный отчёт |
Работаем разово и на абоненте с фиксированным SLA. Для абонентских клиентов — выделенный инженер, который знает проект. Получите консультацию — оценим риски и составим смету за 1-2 дня.
Чек-лист: 15 пунктов, которые проверяем на каждом проекте
- Ядро 1С-Битрикс и модули — актуальная версия, неиспользуемые модули удалены.
- Модуль
security активен, WAF в режиме «Активная реакция».
- 2FA включена для всех учёток с доступом к админке.
-
/bitrix/admin/ закрыт по IP или за дополнительной HTTP-авторизацией.
- Политика паролей: от 12 символов, mixed case, цифры, спецсимволы.
- SSL/TLS: рейтинг A+ на SSL Labs, HSTS включён.
- Служебные файлы (
dbconn.php, .settings.php, .env, бэкапы, логи) — 403 из браузера.
- Права: 644 файлы, 755 директории. Веб-сервер не owner системных файлов.
- Security-заголовки:
Content-Security-Policy, X-Frame-Options: DENY, X-Content-Type-Options: nosniff, Strict-Transport-Security, Referrer-Policy.
- Контроль целостности файлов — ежедневная проверка через агент.
- Бэкапы: ежедневные, изолированное хранение, проверка восстановимости.
-
b_event_log — хранение от 90 дней, регулярный просмотр.
- PHP 8.1+,
display_errors = Off, опасные функции отключены.
- Мониторинг uptime + алерты при изменении файлов в
/upload/.
- Reverse proxy или CDN с DDoS-защитой для высоконагруженных проектов.
Оценка уязвимостей проводится в соответствии с методологией OWASP Top 10 – Web Application Security Risks (см. Wikipedia). Комплексная безопасность сайта на Битрикс — это не разовая акция, а непрерывный процесс. Закажите полный аудит безопасности сайта сегодня, чтобы завтра не тратить бюджет на экстренное восстановление. Получите консультацию — мы ответим на любые вопросы.