3 февраля 2025 года зафиксирована новая, уже третья по счету, масштабная волна взломов сайтов на популярной CMS 1С-Битрикс. Как и предыдущие волны в 2023 и 2024 годах, атака пришлась на начало года и нацелена на один из самых распространенных коммерческих шаблонов — АСПРО (Максимум, Лайтшоп, Next).
Основная причина — критические уязвимости в компонентах шаблона, позволяющие злоумышленникам выполнять произвольный код (RCE — Remote Code Execution). Если ваш сайт работает на устаревшей версии АСПРО и не получил важные обновления безопасности, он находится в зоне высокого риска.
Симптомы заражения: как распознать вирус на Битрикс
Заражение проявляется сразу несколькими тревожными признаками:
-
Блокировка доступа к админке: При попытке зайти в
/bitrix/или/bitrix/admin/сервер возвращает ошибку403 ForbiddenилиYou don't have permission to access /bitrix/ on this server. -
Отказ работы разделов сайта: Перестают открываться каталог, блог, новости или другие динамические разделы, часто с аналогичными ошибками доступа.
-
Появление легиона файлов: Вирус массово создает собственные файлы (часто с случайными именами) в различных папках проекта, включая
/bitrix/,/upload/и корневые директории. -
Подмена .htaccess: Ключевой метод блокировки — вирус подменяет или добавляет malicious-правила в файлы
.htaccess, что и приводит к ошибкам 403.
Экстренные меры: как восстановить доступ и очистить сайт
Если вы обнаружили симптомы, немедленно действуйте по этому плану.
Шаг 1: Восстановите доступ к админке
-
Через FTP или файловый менеджер хостинга найдите и удалите все файлы
.htaccessв папках/bitrix/и/bitrix/admin/. -
Основной файл
.htaccessв корне сайта пока не трогайте.
Шаг 2: Проведите сканирование в админке
-
После восстановления доступа зайдите в Панель управления Битрикс.
-
Перейдите в раздел: «Настройки» -> «Прокативная защита» -> «Поиск троянов и вирусов».
-
Запустите «Проверка .htaccess» и удалите все найденные подозрительные правила.
-
Запустите полное «Сканирование файлов». Внимательно изучите отчет и удалите все файлы, помеченные как опасные.
Шаг 3: Почистите index.php
-
Вирус часто добавляет вредоносный код в начало корневого
index.php. Откройте его в редакторе и удалите все подозрительные строки до тега<?php.
Шаг 4: Перезапустите сервер
-
Перезапустите веб-сервер (Apache/Nginx) и PHP-FPM через панель хостинга. Это уничтожит вредоносные процессы, которые могли остаться в памяти.
Как устранить уязвимости в шаблоне АСПРО
Основной причиной взломов являются устаревшие версии шаблона АСПРО. Наилучшее решение — установить официальное обновление. Если это невозможно, необходимо вручную исправить критические уязвимости в следующих файлах:
1. Компонент асинхронного каталога (главная страница)
Файлы для исправления:
-
/include/mainpage/comp_catalog_ajax.php -
/bitrix/wizards/aspro/max/site/public/ru/include/mainpage/comp_catalog_ajax.php
Исходный уязвимый код:
$arIncludeParams = ($bAjaxMode ? $_POST["AJAX_PARAMS"] : $arParamsTmp); $arGlobalFilter = ($bAjaxMode ? unserialize(urldecode($_POST["GLOBAL_FILTER"])) : ($_GET['GLOBAL_FILTER'] ? unserialize(urldecode($_GET['GLOBAL_FILTER'])) : array())); $arComponentParams = unserialize(urldecode($arIncludeParams));
Защищенный код:
if ($_POST["AJAX_PARAMS"] && !is_array(unserialize(urldecode($_POST["AJAX_PARAMS"]), ["allowed_classes" => false]))) {
header('HTTP/1.1 403 Forbidden');
$APPLICATION->SetTitle('Error 403: Forbidden');
echo 'Error 403: Forbidden_1';
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php');
die();
}
$arIncludeParams = ($bAjaxMode ? $_POST["AJAX_PARAMS"] : $arParamsTmp);
$arGlobalFilter = ($bAjaxMode ? unserialize(urldecode($_POST["GLOBAL_FILTER"]), ["allowed_classes" => false]) : ($_GET['GLOBAL_FILTER'] ? unserialize(urldecode($_GET['GLOBAL_FILTER']), ["allowed_classes" => false]) : array()));
$arComponentParams = unserialize(urldecode($arIncludeParams), ["allowed_classes" => false]);Примечание: Данное решение сохраняет корректную работу табов на главной странице.
2. AJAX-обработчики корзины
Файлы для исправления:
-
/ajax/show_basket_fly.php -
/ajax/show_basket_popup.php -
/ajax/reload_basket_fly.php -
/bitrix/wizards/aspro/max/site/public/ru/ajax/reload_basket_fly.php -
/bitrix/wizards/aspro/max/site/public/ru/ajax/show_basket_fly.php -
/bitrix/wizards/aspro/max/site/public/ru/ajax/show_basket_popup.php
Замена:
Исходный код:
$arParams = unserialize(urldecode($_REQUEST["PARAMS"]));
Заменить на:
if (!is_array(unserialize(urldecode($_REQUEST["PARAMS"]), ["allowed_classes" => false]))) {
header('HTTP/1.1 403 Forbidden');
$APPLICATION->SetTitle('Error 403: Forbidden');
echo 'Error 403: Forbidden';
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php');
die();
}
$arParams = unserialize(urldecode($_REQUEST["PARAMS"]), ["allowed_classes" => false]);3. Компонент покупки в один клик
Файлы для исправления:
-
/bitrix/components/aspro/oneclickbuy.max/script.php(для Аспро.Максимум) -
/bitrix/components/aspro/oneclickbuy.lite/script.php(для Аспро.Лайтшоп)
Замена:
Исходный код:
$res = CSaleOrderProps::GetList(array(), array('@CODE' => unserialize($_POST["PROPERTIES"]), 'PERSON_TYPE_ID' =>$personType));
Заменить на:
$res = CSaleOrderProps::GetList(array(), array('@CODE' => unserialize($_POST["PROPERTIES"], ['allowed_classes' => false]), 'PERSON_TYPE_ID' =>$personType));
4. Исправления для АСПРО NEXT
Для данной версии шаблона необходимо аналогичным образом добавить параметр ['allowed_classes' => false] во все вызовы unserialize() в следующих файлах:
-
/ajax/form.php -
/ajax/reload_basket_fly.php -
/ajax/show_basket_fly.php -
/ajax/show_basket_popup.php -
/include/mainpage/comp_catalog_ajax.php -
/bitrix/components/aspro/oneclickbuy.next/script.php
Скрипт для закрытия уязвимостей
Вы можете скачать скрипт, который автоматически закроет все уязвимости в вашем проекте: https://metatag.by/upload/aspro_fix.zip (обновлено 11.02.2025)
Этот инструмент выполняет пакетное исправление всех опасных файлов в проектах на базе АСПРО.
Важно: Скрипт выполняет исключительно превентивную функцию — он блокирует потенциальные точки входа для атак. Если ваш ресурс уже скомпрометирован, перед применением скрипт необходимо провести полную очистку от вредоносного кода.
Руководство по использованию скрипта
Требования к системе:
-
Интерпретатор PHP версии 7.4 и выше;
-
Активированные модули:
zip,session,file system; -
Права на запись в файловую систему сайта.
Пошаговая инструкция:
-
Загрузите и деархивируйте дистрибутив;
-
Разместите исполняемый файл
fixit.phpв корневом каталоге вашего проекта (на одном уровне сindex.php); -
Инициируйте выполнение скрипта через браузер:
https://ваш-домен/fixit.php; -
Настройте параметры выполнения в соответствии с вашими потребностями.
Доступные опции конфигурации:
-
Глубокий анализ с проверкой модулей сторонних разработчиков — полное сканирование всех компонентов системы;
-
Создание резервных копий модифицированных файлов (.back) — критически важная опция, рекомендуется обязательное включение;
-
Формирование zip-архива с исходными версиями файлов — создание бэкапа в директории
/upload/; -
Автоматическое удаление скрипта после завершения — функция самоуничтожения для повышения безопасности.
Меры предосторожности и устранение неполадок
Важные рекомендации:
-
Перед запуском создайте полную резервную копию сайта и базы данных;
-
Убедитесь в наличии достаточных прав доступа для файловых операций;
-
Используйте инструмент с осторожностью — некорректные настройки могут повлиять на работоспособность системы.
Решение возможных проблем:
В случае возникновения ошибок после выполнения скрипта:
-
Определите, какой файл вызывает проблему;
-
Найдите его резервную копию с расширением
.php.backв той же директории; -
Восстановите оригинальную версию файла из резервной копии.
Примечание: файлы, содержащие резервные копии, не представляют угрозы и могут быть безопасно восстановлены.
Стратегия долгосрочной защиты
После применения исправлений и обновления платформы Битрикс текущая угроза будет нейтрализована. Однако для обеспечения постоянной безопасности рекомендуется регулярное обновление и поддержание актуальной версии шаблона и ядра Битрикс;
Помните: профилактика уязвимостей всегда эффективнее и дешевле ликвидации последствий взлома. Регулярное обновление — единственная надежная стратегия защиты вашего сайта.
