Разработка
SAGIROV.com

Как остановить слив 5 млн/мес или безопасность сайта для крупного застройщика

Рассказываем о том, как нам удалось прекратить потери рекламного бюджета более чем 5 000 000 руб/мес из за вируса на сайте застройщика.

О клиенте

Наш клиент – один из крупнейших застройщиков многоквартирных домов на юге России. Реализуют квартиры премиум, субпремиум и стандарт класса.

Задача

Клиент обратился с проблемой, что сайт заражен вирусами и почти 90% мобильного трафика сливается на другие сайты из за вируса. Звучало это примерно так: "Хьюстон у нас проблемы! Сможете быстро с этим что-то сделать?".

Иными словами, нужно было быстро очистить сайт и восстановить его минимальную работоспособность, чтобы не терять трафик и клиентов.

Текущая компания, назовем ее «компания Х», разводила руками, ссылаясь на то, что ядро сайта старое, обновить его нельзя, и единственный выход – это тушить пожары по факту. Однако, горело это все ежедневно и практически без перерыва.

Окей, тогда план действий такой: отключаем все, что может быть потенциально опасным, затем подключаем по одному и наблюдаем.

Шаг 1. Собираем входные данные

Сделали резервную копию, развернули ее на локальном сервере. Если уж что-то и ломать, то чтобы это было не критично.

Параллельно, не теряя времени, запустили стандартные антивирусы на сервере, чтобы оценить масштаб проблем. Спойлер, их было столько, что сразу стало ясно – разработчики и техподдержка сегодня ночуют в офисе.

Далее мы провели аудит CMS. На выходе – ошибки ядра и, разумеется, базы данных. При этом: размер базы более 10Гб (что очень много для такого типа сайта), журналы безопасности не работают, но сервер постоянно регистрирует атаки типа XSS, SQL-инъекции и др. А ведь все это должно еще работать с десятком сервисов по аналитике, кол-трекингу, CRM и различными выгрузками 1С.

Шаг 2. Что делаем в первую очередь.

1. Мы очистили все вирусы после первоначального сканирования. Затем прошлись по сайту и базе еще несколькими антивирусными решениями, включая платные и бесплатные, нашли проблемы, почистили.

Разумеется, часть вирусов были распределены между файлами и, при удалении какой либо части вируса, они при запуске восстанавливали ее уже в другом месте. Мы провели несколько итераций, удалили и закомментировали большое количество кода, но проблема не уходила. Каждый раз, когда заходил новый клиент, его переадресовывало на рекламный сайт.

2. Развернули систему контроля версий, которая регистрировала все изменения внутри файлов. Это помогло нам сразу уничтожать копии вирусов.

Через достаточно продолжительно время и сканирования более чем 10 видами ПО, нашли вирусный редирект и смогли в тестовом режиме запустить сайт уже на основном домене.

Результат дал ручной поиск и бесплатный Dr. Web Cureit, что очень забавно, так как профессиональное ПО для поиска вирусов на сайтах дало очень поверхностные результаты.

Шаг 3. Восстанавливаем и обновляем ядро 1С-Битрикс вручную

После запуска сайта мы стали пристально наблюдать за сайтом. Через несколько дней ситуация повторилась, и стало окончательно понятно – нужно обновлять ядро сайта и ПО на сервере, чтобы закрыть все дыры в безопасности и спать спокойно.

1. Закрыли временно все формы обратной связи, т. к. часть спама сыпалась через них, и удалили неиспользуемые, оставшиеся от предыдущих версий сайта.

2. По серверу было решено переезжать на другой хостинг, требовался более безопасный. Выбор пал на REG.RU (это не реклама, а просто многолетний опыт работы с ним), сбои у них бывают, но насколько редко, что их можно взять за математическую погрешность.

3. Сделали защищённое соединение между 1С и сайтом (до этого все было открыто)

Ядро Битрикса нужно было восстанавливать все равно, и поэтому было принято решение делать это руками, а не автоматически, т.к. при каждом автоматическом обновлении сайт падал.

Стоит пояснить, что админка открывалась, но при проверке выдавалось множество ошибок, и автоматически они не устранялись

4. В базе были пустые строки, проблемы с идентификаторами и не хватало колонок. Хорошей помощью в анализе ошибок базы был отчет проверки базы данных в Битриксе.

Поэтому, для начала, мы вручную восстановили все таблицы в базе данных, заменив поврежденные данные стандартными. После нескольких итераций база данных прошла тестирование на целостность.

5. Далее мы восстановили работу почти всех основных служб сайта:

  • Главный модуль
  • Управление структурой сайта
  • Поиск
  • Информационные блоки
  • Веб-формы

Часть удалось восстановить автоматически, а часть пришлось делать вручную, восстанавливая удаленные куски кода из отдельно развернутой копии такой же версии Битрикса.

После этого сайт смог повысить уровень безопасности до необходимого минимума и часть атак начал отражать самостоятельно.

6. Потом мы провели полный аудит системы встроенным функционалом Битрикса и, потратив еще несколько дней, устранили все ошибки. Только после этого мы смогли полностью обновить ядро и запустить максимальный уровень защиты Битрикса:

  • проактивный фильтр
  • веб-антивирус
  • защита административного раздела
  • защита редиректов
  • защита фреймов

7. Установка капчи на форму аутентификации административной панели

8. Добавили двухфакторую аутентификацию в административную панель и защиту по IP

9. Разделили пользователей по группам с разными правами

10. Внедрили 3 антивируса и файрвола на сайт одновременно. Если один пропустит атаку, второй – наверняка нет. Вариантов было много, но по соотношению эффективности сканирования и стоимости нам понравились эти: SiteGuarding, Virusdie, Sucuri, xScan

Virusdie

Рекомендуем этот антивирус, хотя это решение мы частично реализовали на хостинге. Но подписка на него дает графический интерфейс, который показывает результаты проверок, атаки на сайт и ip-адреса (что скрыто в стандартной подписке REG.RU). Плюс этот антивирус знаком со структурой сайтов на Битрикс.

Sucuri

Также рекомендуем и этот антивирус, т.к. он реализует собственный firewall, который закрывает большинство уязвимостей. С его помощью мы закрыли уязвимости, из-за которых был доступ к административному пользователю 1С-Битрикс. У него гибкая настройка и собственный кэш файлов. Также он работает с бэкапами сайта (дополнительно $5 в месяц). Копии делаются ежедневно, еженедельно или раз в месяц. Любые изменения файлов хранятся в истории, есть опция автоматического восстановления. Также антивирус совместим с большинством платформ.

SiteGuarding

От этого файрвола впоследствии отказались, т.к. аналитической информации по сайту мало. Отчеты предоставляются по удаленным и добавленным файлам, т.е. тот функционал, который мы и так реализовали. Из плюсов, система контроля изменений файлов, которая помогала, когда мы мониторили сайт после очистки и обновлений, чтобы все было ок.

xScan

Дополнительно установили в сам Битрикс достаточно простой, но эффективный сканер xScan (к нашему удивлению он нашел то, что не нашли даже самые дорогие и продвинутые версии ПО).

11. Настрочили шаблоны email- и смс-оповещений об атаках на ответственных сотрудников

12. После всего этого провели тесты безопасности: Sqlmap, Skipfish, Dirbuster, Openvas, Nmap

Выводы

Из очевидного, чтобы не прийти к такому состоянию сайта нужно регулярно обновлять ядро Битрикс и настраивать хотя бы базовые системы безопасности ядра.

С точки зрения эффективности борьбы с вирусами на себя сайтах с неожиданной и положительной стороны показали себя такие не профильные инструменты как Dr. Web Cureit и самый простой xScan под Битрикс, которые нашли то, что не нашло профильное ПО.

Надеемся наш опыт был вам полезен. Если есть дополнительные вопросы мы с радостью ответим на них в комментариях.

0
Комментарии
Читать все 0 комментариев
null