Цифровой элемент
10 минут на чтение
2046
Отправь статью на почту?

Атака на 1С-Битрикс, рекомендации по защите сайта

Подписаться

В мае 2023 года была проведена массовая атака веб-серверов национального сегмента РФ сети интернет.

В качестве цели атаки выступала «1С-Битрикс: Управление сайтом». В ходе расследование было установлено, что массовые взломы были проведены загодя, в начиная с 2022 года через известные уязвимости, включая CVE-2022-27228.

Злоумышленником был установлен бэкдор, позволяющий создавать произвольные файлы и вызывать команды ОС. 26 мая в районе 14:00 бэкдору была дана команда на замену главной страницы сайта. Техническое описание атаки было опубликовано по на форуме разработчиков.

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

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

Целью атакующих являются:

  • Все не обновлённые версии «1С-Битрикс: Управление сайтом» (Bitrix Site Manager). Следует обратить внимание, что после окончания срока действия лицензии, обновление ПО не выполняется.
  • Обновленные версии «1С-Битрикс: Управление сайтом» с незакрытыми уязвимостями.
  • Обновленные версии «1С-Битрикс: Управление сайтом» с установленным бэкдором.

Скорая помощь

Используемые уязвимости

Arbitrary Object Instantiation в модуле «Опросы, голосования»/«Vote»

Модуль «Опросы, голосования» («Vote») позволяет проводить опросы и голосования, которые помогают узнать мнение пользователей сайта.

Эксплуатация уязвимости позволяет удаленному злоумышленнику записать произвольные файлы в систему посредством отправки специально сформированных сетевых пакетов. Данная уязвимость присутствует в модуле «vote» CMS «1С-Битрикс: Управление сайтом» до версии 22.0.400 всех редакций, кроме «Старт».

Общее описание уязвимости представлено по следующим ссылкам:

17.03.2022 уязвимости был присвоен номер CVE-2022-27228.

23.05.2022 в публичном доступе появился документ «attacking_bitrix.pdf», где разбирались новые уязвимости в CMS «1С-Битрикс» и методы их эксплуатации, включая CVE-2022-27228. В этом документе описан способ эксплуатации уязвимости CVE-2022-27228, приводящий к выполнению произвольных команд неавторизованным пользователем.

Если на WEB-сервере включено логирование POST-запросов, то в результате успешной эксплуатации CVE-2022-27228, в лог файл запишется строка, содержащая успешный POST-запрос к файлу «/bitrix/tools/vote/uf.php»

Пример :

***POST
/bitrix/tools/vote/uf.php?attachId[ENTITY_TYPE]=CFileUploader&attachId[ENTITY_I D][events][onFileIsStarted][]=CAllAgent&attachId[ENTITY_ID][events][onFileIsStarte d][]=Update&attachId[MODULE_ID]=vote&action=vote HTTP/1.0" 200 ***

Arbitrary File Write в модуле «Визуальный редактор»

В основную кодовую базу «1С-Битрикс: Управление сайтом» входит служебный модуль «fileman», реализующий возможность визуального HTML-редактора. В составе этого модуля присутствует уязвимый скрипт «html_editor_action.php». Эксплуатация уязвимости этого файла аналогично CVE-2022-27228 позволяет неавторизованному Злоумышленнику удаленно выполнять произвольный код на целевой системе.

В результате успешной эксплуатации этой уязвимости, в лог файле появится строка, содержащая успешный POST-запрос к файлу «/bitrix/tools/html_editor_action.php» Пример:

***POST /bitrix/tools/html_editor_action.php HTTP/1.0" 200 ***

Описание действий постэксплуатации

Основные действия после эксплуатации:

  • заменяется index.php в корневой директории WEB-приложения;
  • встраивание вредоносного кода в PHP-скрипты модулей;
  • удаляется файл /bitrix/.settings.php;
  • создаются скрипты Агентов с вредоносным кодом или модифицируются существующие скрипты;
  • удаляют данные из таблиц базы данных b_iblock, b_iblock_element, b_iblock_element_property;
  • создание файлов .htaccess во всех каталогах WEB-приложения;
  • создание PHP-скриптов в директории /bitrix/admin/ с произвольными именами файлов;
  • и т. д.

Описание реагирования на успешную атаку

Идентификация

Проверка средствами «1С-Битрикс:Поиск троянов»

Необходимо установить из каталога готовых решений «1С-Битрикс:Поиск троянов» и запустить сканирование. Для этого необходимо открыть панель управления сайта и перейти на следующую вкладку:

Настройки → bitrix.xscan → Поиск и Поиск (бета).

Модуль отсканирует весь сайт и отобразит выявленные подозрительные файлы.

Проверка по журналам доступа к WEB-серверу

Проверить факт успешной эксплуатации CVE-2022-27228. Пример команды поиска:

grep -E 'POST /bitrix/tools/(html_editor_action.php)|(vote/uf.php)' /var/log/www.access.log* | grep ' 200 '

Аналогичным образом проверить запросы к файлам из Таблицы №2 с кодом ответа 200.

Аналогичным образом проверить POST-запросы с кодом ответа 200, содержащие строки:

Фрагмент строки

bitrixxx

BX_STAT

BX_TOKEN

==

Для ‘BX_STAT’ поиска лучше воспользоваться регулярным выражением: ‘BX_STAT[^E]’

Поиск новых вредоносных файлов

1. Проверить наличие нетипичных файлов. Были выявлены следующие индикаторы компрометации:

Индикаторы компрометации

Имя файла

Директория

Пример команды для поиска

xmlrpcs.php

Используются различные каталоги

find ./ -name xmlrpcs.php

inputs.php

Используются различные каталоги

find ./ -name inputs.php

рекомендуется исключить из поиска легитимный файл:

/bitrix/modules/sale/lib/delivery/inputs.php

l.php

/bitrix/src/app/

find ./ -name l.php

/bitrix/tools/spread.php

/bitrix/tools/

/bitrix/


access.php wp.php term.php locale.php themes.php network.php container.php

router.php wp-login.php

/bitrix/modules/iblock/lib/biz proctype/

любой из файлов в указанной директории

/bitrix/tools/send_trait_imap.p hp



/bitrix/tools/.cas.php

/bitrix/tools/.cas.tmp.php



2. Рекомендуется обратить внимание на все файлы с несловарным, случайно сгенерированным именем из набора символов [a-z, 0-9] в каталоге /bitrix/admin/ и в корневой директории сайта.

Были выявлены файлы вида:

  • /bitrix/admin/f408f2b7df70.php
  • /bitrix/admin/8f1c222aae51.php
  • /2469a41bac71.php
  • /98826/bfd99.php

Поиск модифицированных файлов

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

Фрагмент строки

str_rot13

md5($_COOKIE

bitrixxx

eval(base64_decode

BX_STAT

BX_TOKEN

parse_str(hex2bin

iasfgjlzcb

QlhfVE9LRU4=

gzinflate(base64_decode

C.A.S

urldecode(base64_decode(hex2bin

Из результатов поиска по «str_rot13» необходимо исключить следующие файлы:

  • /bitrix/modules/main/classes/general/vuln_scanner.php
  • /bitrix/modules/main/lib/search/content.php bitrix/modules/socialnetwork/lib/item/logindex.php

В этих файлах функция «str_rot13()» используется по умолчанию.

Для поиска файлов с ‘BX_STAT’ лучше воспользоваться регулярным выражением вида:

‘BX_STAT[^E]

т.к. аргумент ‘BX_STATE’ используется по умолчанию в легитимных файлах. Пример команды для поиска подозрительных файлов:

grep
'str_rot13|md5\(\$_COOKIE|bitrixxx|eval\(base64_decode|BX_STAT[^E]|BX_TOKEN|parse_str\(hex2bin|i asfgjlzcb|QlhfVE9LRU4=|gzinflate\(base64_decode|C\.A\.S|urldecode\(base64_decode\(hex2bin' /*

Известные файлы, в которые встраивается вредоносный код:

  • /bitrix/modules/main/include/prolog_after.php
  • /bitrix/admin/security_file_verifier.php
  • /bitrix/modules/main/bx_root.php

Следует обратить внимание, что искать стоит не только по файлам приложения (.php), так как злоумышленники в том числе используют технику с записью файла “.htaccess” для изменения конфигурации веб-сервера.

Поиск закрепления доступа

1. Проверить планировщик задач (cron) на наличие нелегитимных задач:

ls /etc/cron*

2. На странице со списком Агентов «1С-Битрикс» (/bitrix/admin/agent_list.php) проверить вызываемые функции на наличие вредоносного кода.

Для этого необходимо открыть панель управления сайта и перейти на следующую вкладку:

Настройки > Настройки продукта > Агенты

Название агента может быть любым, но, скорее всего, вредоносный Агент будет виден визуально. Также видно наличие функции eval(), которую агенты содержать не должны:

Наличие функции eval().jpg
Наличие функции eval()

3. Проверить иные способы закрепления доступа на узле.

Карта с описанием типовых способов закрепления в ОС Linux

Цикл статей, описывающих поиск техник закрепления, отраженных на карте

Сдерживание

В случае, если нет возможности обновить CMS до актуальной версии можно заблокировать POST-запросы к уязвимым файлам.

Модификация файлов WEB-приложения

Для каждого сайта необходимо модифицировать следующие файлы:

  • /bitrix/tools/upload.php
  • /bitrix/tools/mail_entry.php
  • /bitrix/modules/main/include/virtual_file_system.php
  • /bitrix/components/bitrix/sender.mail.editor/ajax.php
  • /bitrix/tools/vote/uf.php
  • /bitrix/tools/html_editor_action.php
  • /bitrix/admin/site_checker.php

Перед функцией «require_once» добавить следующий код:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
header("Status: 404 Not Found");
die(); 
}

Ограничение доступа к уязвимым файлам средствами WEB-сервера

Добавить в конфигурацию WEB-сервера запрещающие правила. Пример правил для NGINX:

location /bitrix/tools/vote/uf.php {
if ($request_method = POST ) { deny all;
}
}

location /bitrix/tools/html_editor_action.php { if ($request_method = POST ) {
deny all;
}
}

Ограничение доступа к уязвимым файлам средствами WAF/NGFW

Запретить прямые обращения POST-запросами к файлам:

  • /bitrix/tools/html_editor_action.php
  • /bitrix/tools/vote/uf.php

Очистка зараженного узла и восстановление приложение

  1. Остановить службу WEB-сервера.
  2. Проверить наличие иного работающего в памяти процесса, исполняющего PHP и остановить этот процесс. kill $(ps aux | grep 'php' | awk '{print $2}')
  3. Очистить cache WEB-приложения.
  4. Удалить выявленные ранее сторонние вредоносные файлы
  5. Проверить резервную копию сайта аналогично описанному выше. В случае обнаружения вредоносных объектов, удалить вредоносные объекты или имплементации вредоносного кода.
  6. Дополнительно рекомендуется использовать механизм контроля целостности файлов
  7. Восстановить сайт из резервной копии.
  8. Проверить работоспособность всех разделов сайта.
  9. Обновить «1С-Битрикс: Управление сайтом» и PHP до актуальных версий.

Рекомендации по защите WEB-приложения

  • Перевести сайт на актуальную версию PHP 8. Инструкция.
  • Обновлять «1С-Битрикс: Управление сайтом» до актуальных версий.
  • Установить, включить и настроить согласно рекомендациям модули:
    • «Проактивный фильтр (Web Application Firewall)»
    • «Контроль активности»
  • Выполнить проверку WEB-приложения средствами «Сканер безопасности»
  • Закрыть доступ к файлам на уровне сервера (например, в .htaccess):
    • /bitrix/tools/upload.php
    • /bitrix/tools/mail_entry.php
    • /bitrix/modules/main/include/virtual_file_system.php
    • /bitrix/components/bitrix/sender.mail.editor/ajax.php
    • /bitrix/tools/vote/uf.php
    • /bitrix/tools/html_editor_action.p
  • Проверить и включить логирование событий доступа к WEB-приложению (все типы access) и ошибок (error).

Восстановление работоспособности в случае блокировки

В некоторых случаях сайт может быть заблокирован НКЦКИ по причине его взлома с последующим размещением противоправного контента и использованием злоумышленниками для проведения компьютерных атак на критическую информационную инфраструктуру Российской Федерации в соответствии со статьей 5 Федерального закона № 187-ФЗ «О безопасности критической информационной инфраструктуры Российской Федерации», пунктом

5.1 Приказа ФСБ России от 24.07.2018 г. № 366 и пунктом 9 Правил централизованного управления сетью связи общего пользования, утвержденных постановлением Правительства Российской Федерации от 12 февраля 2020 года № 127.

Блокировка применяется до момента фиксации НКЦКИ факта удаления противоправного контента.

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

Источник: Рекомендации по применению компенсирующих мер и реагированию на атаки, связанные с CMS «1С-Битрикс: Управление сайтом» от компании «Сайбер ОК».

Мне не нравится
Россия, Челябинская область, Челябинск, ул. Энтузиастов, 2, оф. 200 Телефон: +7 (351) 220-45-35

Блог

TОП-40 плагинов Figma
TОП-40 плагинов Figma

Для создания дизайнов и прототипов большинство современных дизайнеров использует Figma. Его основное преимущество перед другими графическими прогр...

11.мар.2021
134711
Микроразметка schema.org
Микроразметка schema.org

Schema.org – микроразметка, позволяющая структурировать данные на сайте для поисковых систем. С ее помощью поисковые системы понимают, какие данные...

28.мая.2019
124121
Как попасть на Яндекс.Карты, Google.Карты, 2GIS
Как попасть на Яндекс.Карты, Google.Карты, 2GIS

Если ваша компания ведет бизнес офлайн, размещение на Яндекс.Картах и Google и 2GIS поможет рассказать об этом потенциальным клиентам. Присутствие...

17.июл.2019
104259
404 ошибка – страница не найдена
404 ошибка – страница не найдена

404 ошибка (страница не найдена) – это ответ сервера, который возникает, когда сервер не может отобразить запрашиваемую страницу по указанному адре...

13.авг.2019
47222
Семантика сайта
Семантика сайта

Семантическое ядро – это набор фраз, соответствующих поисковым запросам пользователей в поисковых системах, которые характеризуют определенную тема...

21.окт.2019
22741
Сброс кеша DNS в Google Chrome
Сброс кеша DNS в Google Chrome

Для сброса кеша DNS в Google Chrome: Введите в адресной строке браузера chrome://net-internals/#dns и нажмите кнопку Clear host cache; Зат...

31.янв.2020
17753
Как составить ТЗ на разработку сайта
Как составить ТЗ на разработку сайта

ТЗ (техническое задание) – очень полезный документ, в котором описаны все разделы сайта, все элементы страницы и функциональность всех модулей. Пол...

14.мая.2021
17618
Микроразметка Open Graph
Микроразметка Open Graph

Open Graph – стандарт микроразметки, который позволяет формировать превью сайта при публикации в социальных сетях. Стандарт Open Graph был р...

05.ноя.2019
16943
Как предоставить гостевой доступ к Яндекс Директ и Google Adwords
Как предоставить гостевой доступ к Яндекс Директ и Google Adwords

Контекстная реклама — один из самых простых и быстрых способов увеличения посещений веб-сайта. Особенностью этого инструмента является понятность р...

19.янв.2021
15733
Топ 10 лучших сервисов для онлайн-опросов
Топ 10 лучших сервисов для онлайн-опросов

Как провести онлайн-опрос аудитории легко и не затратить на составление анкет уйму времени? Ответ прост – используйте готовые формы, предлагаемые ...

28.июл.2022
14334