Уязвимости Битрикс и Laravel — реальные кейсы и простые меры защиты
Безопасность в IT — как страховка. Пока ничего не происходит, кажется, что можно жить спокойно и не тратить время. Но как только случается атака, всё внимание переключается туда, и гайки начинают закручивать даже там, где это мешает бизнесу.
Нужно понимать: собрать систему без единой лазейки на 100% в реальном мире почти невозможно, особенно если она подключена к сети. Можно только снизить риск заражения. Если кто-то действительно захочет взломать — он найдёт способ: сотруднику пришлют «милого котика» в письме, домовую сеть взломают или найдут другой вектор. Большинство атак происходят автоматически — боты сканируют сайты, находят целевые CMS и пытаются эксплуатировать известные уязвимости. Если закрыть известные дыры и поддерживать гигиену системы — шансы спать спокойно вырастут.
Я знаю, о чём говорю: по диплому у меня «комплексная защита объектов информатизации», и за годы в веб-разработке мы видели всё — от ежедневных DDoS по 2 терабайта трафика до заражённых модулей и майнеров, внедрённых через пакеты.
Что реально ломают
Чаще всего достаётся CMS: в Битриксе это модули и готовые решения, которые не обновляются вовремя; в WordPress ситуация ещё хуже. Laravel-проекты тоже не застрахованы: последние пару лет участились случаи заражения через сторонние пакеты, особенно бесплатные.
Что работает против уязвимостей
- Регулярные обновления ядра и модулей, плюс актуальная версия PHP (сейчас минимум 8.2).\
- Использование штатных инструментов: проактивный фильтр, защита админки по IP, одноразовый вход, настройка безопасных паролей.
- Ограничение доступа к серверу: FTP, SSH, база — только по IP.
- Периодическое сканирование на уязвимости: встроенный модуль безопасности в Битрикс + AI-Bolit.
- Мониторинг серверов и кода: чем раньше обнаружен вирус, тем проще вычистить.
Бэкапы — наше всё
Они должны быть не просто «где-то там», а храниться на другом сервере или хотя бы в виде снапшотов от провайдера. Минимум месяц-два истории, обязательная проверка целостности и тестовые восстановления.
ТруСтори
К нам однажды вернулся клиент, с которым мы уже не работали год. Новый подрядчик не смог вычистить вирусы. Спас только бэкап: откатились на момент до атаки, обновили систему — и всё заработало. Если бы не копия, проект мог бы умереть.
Где перегибают
Иногда в погоне за безопасностью «закручивают гайки» так, что разработчики не могут работать, а бизнес теряет скорость. Баланс важен: защита должна быть системной, но не мешать развитию.
40 рекомендаций для условно безопасной веб-системы
-
Обновите ядро и все модули/пакеты до последних версий.
-
Используйте актуальную версию PHP (8.2+).
-
Удалите неиспользуемые модули и пакеты.
-
Проверяйте зависимости на уязвимости (composer audit, встроенные сканеры).
-
Включите WAF/проактивный фильтр.
-
Ограничьте доступ к админке и API по IP.
-
Включите двухфакторную авторизацию для админов.
-
Используйте только сложные пароли, настройте их регулярную смену.
-
Запретите доступ к FTP/SSH/БД извне, кроме доверенных IP.
-
Закройте публичный доступ к .env, конфигам, логам.
-
Отключите показ ошибок на продакшене.
-
Настройте права на файлы и каталоги (минимально необходимые).
-
Используйте HTTPS везде.
-
Настройте корректные заголовки безопасности (CSP, HSTS, X-Frame-Options).
-
Защитите формы CSRF-токенами.
-
Ограничьте CORS только доверенными доменами.
-
Сканируйте проект встроенными и внешними сканерами (AI-Bolit, OWASP ZAP).
-
Подключите мониторинг логов авторизаций, ошибок и изменений файлов.
-
Настройте уведомления о подозрительных активностях.
-
Проверяйте целостность файлов ядра/фреймворка.
-
Раз в полгода проводите внешний аудит безопасности.
-
Храните секреты и ключи только в переменных окружения, не в коде.
-
Проверьте APP_KEY (Laravel) или аналоги — он должен быть надёжным.
-
Используйте очереди/джобы для тяжёлых процессов.
-
Минимизируйте количество администраторов с полными правами.
-
Разграничьте права доступа для редакторов, маркетологов и разработчиков.
-
Отключите или ограничьте системные консольные команды на продакшене.
-
Настройте регулярные бэкапы БД и файлов.
-
Храните бэкапы на отдельном сервере/в облаке.
-
Проверяйте возможность восстановления из бэкапов.
-
Храните несколько версий бэкапов за последние 1–2 месяца.
-
Используйте Fail2Ban или аналог для защиты от брутфорса.
-
Настройте Firewall (сетевой и на уровне веб-сервера).
-
Ограничьте доступ к /storage, /bootstrap, /bitrix/admin и другим критичным директориям.
-
Удалите или закройте от доступа тестовые и dev-сервера.
-
Включите автоматическое обновление ОС и критичных пакетов.
-
Используйте CDN/DDoS-защиту (Cloudflare, DDoS-Guard).
-
Подключите систему централизованного логирования (ELK, Sentry, Zabbix).
-
Регулярно проверяйте базу CVE на уязвимости используемых решений.
-
Делайте пентест/нагрузочное тестирование хотя бы раз в год.
Вывод
Безопасность — это не свод костылей после атаки, а элементарная гигиена: обновления, мониторинг, доступы и бэкапы. Работает не трогай — худший совет, потому что атаки происходят именно тогда, когда всем кажется, что всё спокойно.
Поэтому если у вас до сих пор живёт старый «БУС», проекты на ранних версиях Laravel или давно не обновлявшийся Битрикс24 — сейчас тот самый момент, когда стоит обновить. Если вы ждали сигнала, то вот он.