Видалення шкідливого коду із сайту 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Видалення шкідливого коду із сайту 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Видалення вредоносного коду з сайту 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 (нові обробники подій, що підключають зовнішній код).

Видалення та верифікація

Після складання повного списку заражених об'єктів:

  1. Файлі-бекдори — видаляйте повністю.
  2. Інджекції в легітимні файли — відновлюйте з чистого бекапу або дистрибутива. Не редагуйте вручну — легко залишити хвіст.
  3. Заражені записи в БД — очищуйте через SQL, попередньо зробивши дамп.
  4. Змінені .htaccess — заміняйте стандартними з дистрибутива Бітрікса.

Верифікація: після очистки повторіть повне сканування. Потім перевірте, що сайт корректно працює — агресивна очистка може задіти легітимний код.

Запобігання повторному заразженню

  • Оновіть ядро до останньої версії — більшість масових взломів еськплуатують відомі CVE, закриті в оновленнях
  • Закрийте виконання PHP у /upload/ на рівні веб-сервера
  • Налаштуйте open_basedir для обмеження області видимості PHP-процесу
  • Заборониєте функції exec, system, passthru, shell_exec, proc_open у php.ini через disable_functions
  • Включіть WAF модуля bitrix.security — він блокує типові паттерни атак на рівні HTTP-запиту

Повний цикл очистки середнього сайту займає 3-5 робочих днів. Крупні проекти з десятками модулів та гігабайтами контенту — до двох тижнів.