Усунення вразливостей сайту 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С-Бітрікс

Усунення вразливостей — не разова задача. Це процес: знайти, класифікувати, виправити, перевірити регресію, закрити вектор повторної появи. Більшість інцидентів на Бітрікс-сайтах відбувається не через вразливості в ядрі, а через застарілі кастомні компоненти, неправильні права на файли та захардкоджені облікові дані.

Класифікація вразливостей у Бітрікс-проєктах

XSS (міжсайтовий скриптинг) — найпоширеніша. Джерело: виведення даних із $_GET/$_POST без екранування в кастомних компонентах і шаблонах. Перевірка:

// Вразливо:
echo $_GET['search'];

// Правильно:
echo htmlspecialchars($_GET['search'], ENT_QUOTES, 'UTF-8');
// Або через Бітрікс D7:
echo \Bitrix\Main\Text\HtmlFilter::encode($_GET['search']);

Рефлективний XSS в URL сторінки пошуку — типовий вектор. Перевіряйте всі параметри URL, які виводяться в шаблоні.

SQL-ін'єкції — застаріли при використанні D7 ORM, але живі в старих компонентах із $DB->Query():

// Вразливо:
$DB->Query("SELECT * FROM b_user WHERE LOGIN = '" . $_POST['login'] . "'");

// Правильно:
$DB->Query("SELECT * FROM b_user WHERE LOGIN = '" . $DB->ForSql($_POST['login']) . "'");

PHP-ін'єкції через завантаження файлів — відсутність перевірки розширень при завантаженні через кастомні форми. Файл shell.php.jpg може бути перейменований і виконаний.

IDOR (небезпечні прямі посилання на об'єкти) — запити виду /order/?ID=12345 без перевірки належності замовлення поточному користувачу. У стандартних компонентах Бітрікс це закрито, у кастомних — часто ні.

Усунення зараження

Якщо сайт вже заражений — послідовність дій:

  1. Ізоляція: перевести в режим обслуговування або закрити зовнішній доступ
  2. Пошук шкідливого коду:
find /var/www -name "*.php" -exec grep -l "base64_decode\|eval\|system\|exec" {} \;
  1. Аналіз дат зміни: файли, змінені після дати останнього деплою — підозрювані
  2. Порівняння з чистим дистрибутивом: завантажте чисту версію Бітрікс і порівняйте файли ядра через diff -r
  3. Зміна всіх облікових даних: паролі адміністраторів, ключі API, пароль БД, FTP-доступ
  4. Оновлення ядра та модулів до актуальних версій

Таблиця b_security_log — перевірте події до моменту зараження. Часто видно IP, з якого експлуатувалася вразливість.

Закриття векторів

Права на файли — після очищення:

find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
chmod 440 /var/www/html/bitrix/.settings.php
chmod 440 /var/www/html/bitrix/php_interface/dbconn.php

Блокування виконання PHP в upload/:

location ~* /upload/.*\.php$ {
    deny all;
    return 404;
}

Оновлення залежностей — якщо проєкт використовує Composer, перевірте composer audit на відомі CVE у залежностях.

Випадок із практики

Великий інтернет-магазин, редакція «Бізнес Плюс». Симптом: periodично з'являються редиректи на сторонні сайти, але лише для пошукових ботів (User-Agent). Сканер Бітрікс — чисто. Аналіз файлів за датою зміни виявив модифікований /bitrix/modules/main/include/prolog.php — до нього було інжектовано код із перевіркою User-Agent і редиректом. Додатково: backdoor у /bitrix/components/bitrix/main.include/component.php. Вектор входу — скомпрометований FTP-пароль хостингу (пароль з 2019 року, що витік через інший сервіс).

Виправлення: відновлення файлів ядра з еталонного дистрибутива, зміна всіх паролів, увімкнення двофакторної автентифікації для FTP і SSH, налаштування SFTP із ключовою автентифікацією замість паролів.

Превентивні заходи після усунення

  • Моніторинг цілісності файлів: налаштуйте inotifywait або використовуйте модуль «Контроль цілісності» в Бітрікс
  • WAF: увімкніть і налаштуйте проактивний фільтр в активний режим
  • Регулярні оновлення: підпишіться на розсилку security-оновлень Бітрікс
  • Обмеження доступу: FTP/SSH лише з конкретних IP, деплой через CI/CD без постійного FTP-доступу

Терміни виконання

Задача Термін
Усунення конкретної вразливості в коді 2–4 години
Очищення від зараження + аудит 1–2 робочих дні
Повний харденінг після інциденту 3–5 робочих днів

Терміни залежать від ступеня зараження, обсягу кастомного коду та наявності резервних копій до зараження.