Удаление вредоносного кода с сайта 1С-Битрикс
На сайте появились редиректы на чужие домены, антивирус хостинга заблокировал аккаунт, или Google Search Console прислал уведомление «Обнаружено вредоносное ПО». Удаление вредоносного кода — это не поиск и удаление одного файла. Современные атаки на Битрикс-сайты многослойные: основной бэкдор, несколько резервных точек входа, задания в cron и модифицированные записи в БД. Пропустите одно звено — через сутки всё вернётся.
Типы вредоносного кода в Битрикс
1. PHP-бэкдоры (web shell). Полноценный файловый менеджер и командная строка, доступные через HTTP. Обычно замаскированы под системные файлы: settings.php, cache.php, session_handler.php. Располагаются в директориях, куда администраторы редко заглядывают: /bitrix/tmp/, /upload/resize_cache/, /bitrix/backup/.
2. Инъекции в существующие файлы. Вредоносный код внедряется в начало или конец легитимных PHP-файлов. Излюбленные цели:
-
/bitrix/php_interface/init.php— выполняется при каждом хите -
/bitrix/templates/.default/header.phpиfooter.php -
.htaccess— добавлениеauto_prepend_fileилиphp_value -
index.phpв корне и в разделах
3. Вредоносный код в БД. JavaScript-инъекции в HTML-контенте инфоблоков, в свойствах типа «HTML/текст», в шаблонах рассылок (b_sender_mailing), в пользовательских полях. Такой код не обнаруживается сканированием файловой системы.
4. Обфусцированный код. Многослойное кодирование: eval(gzinflate(base64_decode(str_rot13(...)))). Цель — обойти антивирусы и grep-поиск. Могут использоваться неочевидные конструкции: переменные переменных ($$var), call_user_func(), динамические имена функций.
Методика полного сканирования
Этап 1. Автоматическое сканирование.
Начните со штатного сканера Битрикс: Настройки → Проактивная защита → Сканер безопасности. Он обнаруживает базовые паттерны и проверяет целостность ядра. Его недостаточно для полной очистки, но он даёт отправную точку.
Дополнительные инструменты:
- AI-Bolit (revisium.com) — специализированный сканер для CMS, знает паттерны, характерные для Битрикс
- ClamAV — общий антивирус, обнаруживает известные web shell
- YARA-правила — для продвинутого сканирования с кастомными сигнатурами
Этап 2. Ручной поиск по паттернам.
Автоматические сканеры пропускают хорошо обфусцированный код. Ищите вручную:
grep -rn "eval(" --include="*.php" /path/to/site/
grep -rn "base64_decode" --include="*.php" /path/to/site/
grep -rn "assert(" --include="*.php" /path/to/site/
grep -rn "system(" --include="*.php" /path/to/site/
grep -rn "passthru(" --include="*.php" /path/to/site/
grep -rn "shell_exec(" --include="*.php" /path/to/site/
grep -rn "preg_replace.*\/e" --include="*.php" /path/to/site/
Каждое совпадение проверяйте вручную — многие из этих функций используются легитимно в ядре Битрикс. Отличие вредоносного кода: он работает с данными из $_REQUEST, $_POST, $_GET, $_COOKIE, $_SERVER['HTTP_*'] напрямую, без санитизации.
Этап 3. Поиск аномалий по времени модификации.
find /path/to/site/bitrix/modules/ -name "*.php" -newer /path/to/site/bitrix/modules/main/classes/general/version.php
Файлы ядра, изменённые после последнего обновления — подозрительны. Сравнивайте их с чистым дистрибутивом через diff.
Этап 4. Проверка .htaccess.
Ищите все .htaccess рекурсивно. Битрикс создаёт их в определённых директориях — каждый файл в нестандартном месте подозрителен. Типичные вредоносные директивы:
-
RewriteRuleс редиректом на внешний домен по условию User-Agent (Googlebot перенаправляется, обычный пользователь — нет) -
auto_prepend_file/auto_append_file— подключение вредоносного скрипта ко всем PHP-файлам -
php_value error_log /dev/null— скрытие логирования
Этап 5. Проверка БД.
Ищите JavaScript-инъекции в контенте:
SELECT ID, NAME FROM b_iblock_element WHERE DETAIL_TEXT LIKE '%<script%' AND DETAIL_TEXT LIKE '%eval%';
SELECT ID, NAME FROM b_iblock_element WHERE PREVIEW_TEXT LIKE '%<iframe%src=%';
Проверяйте также: b_option (изменённые настройки модулей), b_agent (подозрительные агенты), b_event_handler (новые обработчики событий, подключающие внешний код).
Удаление и верификация
После составления полного списка заражённых объектов:
- Файлы-бэкдоры — удаляйте полностью.
- Инъекции в легитимные файлы — восстанавливайте из чистого бэкапа или дистрибутива. Не вырезайте вручную — легко оставить хвост.
- Заражённые записи в БД — очищайте через SQL, предварительно сделав дамп.
- Модифицированные .htaccess — заменяйте стандартными из дистрибутива Битрикс.
Верификация: после очистки повторите полное сканирование. Затем проверьте, что сайт корректно работает — агрессивная очистка может задеть легитимный код.
Предотвращение повторного заражения
- Обновите ядро до последней версии — большинство массовых взломов эксплуатируют известные CVE, закрытые в обновлениях
- Закройте исполнение PHP в
/upload/на уровне веб-сервера - Настройте
open_basedirдля ограничения области видимости PHP-процесса - Запретите функции
exec,system,passthru,shell_exec,proc_openвphp.iniчерезdisable_functions - Включите WAF модуля
bitrix.security— он блокирует типичные паттерны атак на уровне HTTP-запроса
Полный цикл очистки среднего сайта занимает 3-5 рабочих дней. Крупные проекты с десятками модулей и гигабайтами контента — до двух недель.







