Вирусы на «1С-Битрикс»: спасение сайта
Владельцы необновленных сайтов на «1С-Битрикс» с решениями (в основном — снятыми с продажи, устаревших версий и т. п.) от «Аспро» и некоторых других разработчиков подвергаются риску заражения. За счет эксплуатации древних уязвимостей, которые давно устранены вендором, злоумышленник в лучшем случае нарушает работу сайта, в худшем — крадет информацию, переадресует пользователей на сторонние веб-ресурсы и выполняет другие нежелательные действия.
Причем попытки владельца откатить версию с помощью бэкапов хостера не спасают. Мы опишем наш опыт решения проблемы и изложим варианты восстановления сайта на устаревшем ПО «1С-Битрикс» с готовым решением «Аспро» без активной поддержки.
Условия попадания в группу риска:
Ваш сайт создан на CMS «1С-Битрикс: Управление сайтом».
Ядро CMS и решения не обновлялись более 1,5 лет.
На сайте используется на решение от компании Аспро, Esolutions, Sotbit, Маяк и других. Проверьте тут, есть ли в списке ваше решение.
Как понять, что ваш сайт заражен:
Сайт долго открывается или открываются не запрашиваемые страницы.
При попытке перейти на внутренние страницы сайта вы видите ошибку «Доступ запрещен».
Ваш хостер прислал письмо об обнаружении аномальной активности исходящего трафика или почтовых рассылок с угрозой приостановить функцию отправки почты, либо сообщил об уязвимостях с примерами зараженных файлов.
В файловой структуре присутствует множество непонятных файлов и папок, не относящихся к структуре вашего сайта.
Невозможно войти в админ-панель сайта.
Наблюдаются прочие аномалии в работе сайта.
В любом из этих случаев важно как можно быстрее начать действовать. Если пройдет слишком много времени без активной реакции, ситуация может усугубиться — ведь обычно стандартный shared-хостинг хранит архивы только за последние 30 дней. В этот период восстановление сайта можно провести значительно быстрее и дешевле.
Процесс устранения уязвимостей, очистки сайта от вирусов и обновления до актуальной версии
Рассмотрим самый сложный пример из нашей практики. Вводные: Прошло более 30 дней с момента заражения. В админ-панель сайта не попасть, ни одна страница не открывается, да еще и пароль от админки никто не помнит. Единственная зацепка — доступ в панель управления хостингом.
Если вы помните пароль от админ-панели и заражение произошло не позднее 30 дней или у вас есть рабочий бэкап в «Списке резервных копий» (*ваш_домен*/bitrix/admin/dump_list.php), можно сразу восстановить сайт до последней рабочей версии до заражения. В таком случае пропустите пункты с 1-го по 4-й, описанные далее.
Когда пароля и бэкапов нет, делаем так:
1. Для начала переходим в панель управления хостера. Нам необходимо восстановить работу админ-панели сайта, чтобы страница *ваш_домен*/bitrix/admin/ открывала форму авторизации, а не выдавала ошибку. Для этого идем в файловый менеджер и удаляем из папок bitrix и bitrix/admin/ файлы .htaccess. Не переживайте, что удалите лишнее, потом мы заново разместим все, что необходимо.
* В одном из последних восстановленных нами проектов вирус разместил более 5000 файлов .htaccess. Не пытайтесь вычистить их все руками — есть специальный инструмент, но об этом позже.
2. Теперь, когда можем открыть страницу авторизации, если мы не помним пароль от админ-панели, нам необходимо произвести сброс пароля и восстановить его. Обычно почтовая подсистема сайта уже не работает и стандартным механизмом сбросить пароль не выйдет. Но все же стоит попытаться. Если результата нет, то ищем в интернете способы восстановления пароля от админки CMS. Писать тут рабочий способ специально не будем, ибо это может стать еще одной уязвимостью. Кто понимает, тот сделает.
3. После входа в админ-панель сайта вы, скорее всего, обнаружите, что многие разделы не открываются. Причина — всё те же файлы .htaccess. Пока нам необходимо только попасть на страницу системы обновлений (*ваш_домен*/bitrix/admin/update_system.php).
Здесь жмем «Проверить обновления» (п. 1). Если видим, что лицензия и ключ (п.2) показываются, но период получения обновлений окончился — значит, всё в порядке. Если же видим ошибку и вместо ключа — что-то иное, то, скорее всего, неверен адрес сервера для получения обновлений. Внесите изменения на странице настроек главного модуля (*ваш_домен*/bitrix/admin/settings.php), как показано на скриншоте.
После этого вернитесь на страницу системы обновлений и перейдите по ссылке «Проверить ключ» (п. 3). Вы попадете на сайт «1С-Битрикс», где сможете оплатить продление лицензионного ключа. Либо обратитесь к своему разработчику, если его контакты еще у вас есть, он поможет приобрести продление для вас.
4. Перейдите в раздел «Настройки — Инструменты — Резервное копирование — Список резервных копий» (*ваш_домен*/bitrix/admin/dump_list.php) и проверьте, нет ли там свежего по дате архива. Обычно добропорядочные разработчики перед тем, как вносить масштабные изменения на сайте, делают бэкап.
5. Если есть сохраненная резервная копия сайта — просто восстановите сайт до последней рабочей версии до заражения.
6. Независимо от того, удалось ли вам восстановиться с бэкапа или нет, следующим шагом будет обновление ядра и решений, имеющих доступ к обновлениям до последней версии, через штатную систему. Если видите ошибку с переходом на PHP 8, игнорируйте ее, сначала нужно устранить уязвимость. Поэтому установите обновления, которые вам доступны без перехода на PHP 8.
7. Далее необходимо осуществить патчинг уязвимостей решений из списка «1С-Битрикс». В нем напротив каждого решения есть рекомендации. Практически каждый разработчик сделал простой патч. Просто закиньте нужный файл в корень сайта и выполните инструкции.
8. Пункт необходимый, если вы не смогли восстановиться из безопасной версии и работаете с зараженным сайтом. После того, как вы пропатчите все решения, вы устраните уязвимости для нового заражения вирусами, но они могут оставаться на сайте. У многих хостеров, как правило, в панели управления предусмотрен инструмент для бесплатной проверки файлов сайта на вирусы. Ее результатом в рассматриваемом случае обычно становится длинный список зараженностей. Игнорируйте всё, что связанно с .htaccess, а остальное удалите вручную.
9. Если на вашем сайте есть кнопка «Сайт под защитой», то можно сразу перейти к пунктам устранения угрозы с помощью системы проактивной защиты «1С-Битрикс».
Если кнопки нет, сначала нужно сделать п. 10.
С проактивной защитой «1С-Битрикс» работаем следующим образом:
Тут есть отличная функция «Настройки — Проактивная защита — Поиск троянов — Проверка .htaccess» (*ваш_домен*/bitrix/admin/xscan_htaccess.php). После проверки вы можете удалить все пораженные файлы и установить минимальный набор. Это самый простой и быстрый способ избавиться от зараженных файлов, сколько бы их ни было, не прибегая к удалению вручную.
Пройдите в раздел «Поиск троянов — Сканирование файлов» (*ваш_домен*/bitrix/admin/xscan_worker.php) и проведите сканирование. То, что вызывает подозрение, проверьте отдельно, указав путь вручную. А также можно написать в поддержку «1С-Битрикс» с просьбой проверить подозрительные файлы.
Далее, активируйте все варианты защиты: проактивный фильтр, веб-антивирус. Очень неплохо будет если вы подключите также двухэтапную авторизацию.
10. Осуществите переход на PHP 8. Тут начинается самое интересное. Скорее всего, вы столкнетесь с тем, что ваш сайт работает на PHP 7-й версии, поэтому необходимо будет перейти на PHP 8. У нас есть подробная статья об этом.
Если кратко, мы действуем по следующему сценарию:
Накатываем обновления, которые нам дает поставить система сразу.
Идем к хостеру меняем версию PHP на минимум 8.2. После этого, как правило, сайт перестанет работать, но админка будет функционировать, что даст нам возможность установить все последние обновления. Устанавливаем.
Переходим к обновлению решений, обновляем все, что можно. Если вы хорошо понимаете, что за компоненты установлены и для чего они нужны и видите, что в списке есть решения с оконченным демонстрационным режимом или неактивной поддержкой, которые точно не нужны в работе, лучше их удалить. Делайте это только если точно знаете, что это за решение и как оно взаимодействует с вашим сайтом.
После вам необходимо руками исправить все возникающие ошибки в публичной части и админ-панели сайта. Как правило ошибки возникают с PHP-функциями, подключением устаревших скриптов и так далее. В помощь вот такие шпаргалки: официальная и от хороших людей.
11. Перейдите по возможности на MySQL 8. Это выходит за рамки данной инструкции, поэтому оставим в виде рекомендации. Пункт в контексте рассматриваемой темы необязательный.
12. Перейдите в «Настройки — Модули» (*ваш_домен*/bitrix/admin/module_admin.php). Удалите все неиспользуемые модули. Важно: если не знаете, что за модуль и как он влияет на ваш сайт — не трогайте.
13. Аналогично пункту 12 делаем и тут: «Настройки — Настройки продукта — Список мастеров» (*ваш_домен*/bitrix/admin/wizard_list.php). Удалите обязательно демо интернет-магазин, демо корпоративный сайт и так далее. Если вы используете решение «Аспро», не удаляйте мастер «Аспро».
14. После всех пунктов выше сделайте следующее: перейдите в папку /upload/tmp/ и удалите в ней всё. Затем выполните повторное сканирование на вирусы с помощью хостерных утилит. Его результатом должна стать отметка, что вирусов не обнаружено. Далее, если у вас стоят ограничения на исходящий трафик, почтовые подсистемы и прочее, отправьте запрос хостеру, чтобы сняли ограничения с указанием на то, что все проблемы устранены и вирусов теперь нет.
15. В финале важно убедиться, что сайт работает как нужно. Это делается за два шага:
Пройдите в раздел «Настройки — Инструменты — Проверка системы» (*ваш_домен*/bitrix/admin/site_checker.php). Если обнаружатся ошибки — устраните их.
После тут: «Настройки — Настройки продукта — Автокеширование» (*ваш_домен/bitrix/admin/cache.php*), на вкладке «Очистка файлов кеша», удалите все.
Затем перейдите на сайт, откройте консоль (клавишей F12) и походите по сайту. Важно пройти по всем страницам, проверить весь функционал, работу форм, фильтров, слайдеров, получение писем из форм, работу сторонних интеграций.
Если всё в порядке — значит, ваш сайт спасен, и, даже если на нем останется старая версия «Аспро», он не будет уязвим для известных вирусов.
В дальнейшем важно не забывать обслуживать сайт, так как вредоносное ПО постоянно развивается и не исключено появление новых способов заражения. Регулярно проверяйте и устанавливайте обновления, следите за безопасностью паролей и не игнорируйте сообщения хостера.


























