Рекомендации по применению компенсирующих мер и реагированию на атаки, связанные с CMS «1С-Битрикс: Управление сайтом»
Опубликовано Вячеслав Бобыкин on 16 June 2023 15:42
|
||||||||||||||||||||||||||||||||||||||||||||||
1 Общая информация26.05.2023 была проведена массовый дефейс веб-серверов национального сегмента РФ сети интернет. В качестве цели атаки выступала CMS Bitrix. В ходе расследование было установлено, что массовые взломы были проведены загодя, в начиная с 2022 года через известные уязвимости, включая CVE-2022-27228. Злоумышленником был установлен бэкдор, позволяющий создавать произвольные файлы и вызывать команды ОС. 26 мая в районе 14:00 бэкдору была дана команда на замену главной страницы сайта. Техническое описание атаки было опубликовано по на форуме разработчиков. Зачастую взломанные сайты восстанавливаются из резервной копии, но это не решает проблему, поскольку восстанавливается и бэкдор, что дает возможность злоумышленнику повторить атаку. Кроме того, если уязвимость не была устранена, злоумышленники могут снова взломать сервер и установить модификацию бэкдора, что наблюдается в настоящий момент. Целью атакующих являются:
2 Используемые уязвимости
2.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 ***
2.2 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 ***
3 Описание действий постэксплуатации
Основные действия после эксплуатации:
4 Описание реагирования на успешную атаку4.1 Идентификация4.1.1 Проверка средствами «1С-Битрикс:Поиск троянов»Необходимо установить из каталога готовых решений «1С-Битрикс:Поисктроянов» и запустить сканирование. Для этого необходимо открыть панель управления сайта и перейти на следующую вкладку: Настройки → bitrix.xscan → Поиск и Поиск (бета). Модуль отсканирует весь сайт и отобразит выявленные подозрительные файлы.
4.1.2 Проверка по журналам доступа к 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, содержащие строки:
Для ‘BX_STAT’ поиска лучше воспользоваться регулярным выражением: ‘BX_STAT[^E]’
4.1.3 Поиск новых вредоносных файлов
Таблица №2. Индикаторы компрометации
/bitrix/admin/f408f2b7df70.php /bitrix/admin/8f1c222aae51.php /2469a41bac71.php /98826/bfd99.php
4.1.4 Поиск модифицированных файлов
Кроме создания новых файлов, злоумышленники могут вносить изменения в существующие файлы с целью встраивания вредоносного кода. Для этого необходимо проверить наличие в исходном коде приложения фрагментов строк из Таблицы №3.
Таблица №3
Из результатов поиска по «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 -Er '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” для изменения конфигурации веб-сервера.
4.1.5 Поиск закрепления доступа
ls /etc/cron*
Для этого необходимо открыть панель управления сайта и перейти на следующую вкладку:
Настройки > Настройки продукта > Агенты
Название агента может быть любым, но, скорее всего, вредоносный Агент будет виден визуально. Также видно наличие функции eval(), которую агенты содержать не должны:
Карта с описанием типовых способов закрепления в ОС Linux: https://pberba.github.io/assets/posts/common/20220201-linux-persistence.pdf Цикл статей, описывающих поиск техник закрепления, отраженных на карте: https://pberba.github.io/security/
4.2 Сдерживание
В случае, если нет возможности обновить CMS до актуальной версии можно заблокировать POST-запросы к уязвимым файлам.
4.2.1 Модификация файлов 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(); }
4.2.2 Ограничение доступа к уязвимым файлам средствами 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; } }
4.2.3 Ограничение доступа к уязвимым файлам средствами WAF/NGFW
Запретить прямые обращения POST-запросами к файлам: /bitrix/tools/html_editor_action.php /bitrix/tools/vote/uf.php 5 Очистка зараженного узла и восстановление приложение
kill $(ps aux | grep 'php' | awk '{print $2}')
Дополнительно рекомендуется использовать механизм контроля целостности файлов (https://dev.1c-bitrix.ru/user_help/settings/security/security_file_verifier.php) 6. Восстановить сайт из резервной копии.
6 Рекомендации по защите WEB-приложения
7 Восстановление работоспособности в случае блокировки
По данным открытых источников в некоторых случаях сайт может быть заблокирован НКЦКИ по причине его взлома с последующим размещением противоправного контента и использованием злоумышленниками для проведения компьютерных атак на критическую информационную инфраструктуру Российской Федерации в соответствии со статьей 5 Федерального закона № 187-ФЗ «О безопасности критической информационной инфраструктуры Российской Федерации», пунктом 5.1 Приказа ФСБ России от 24.07.2018 г. № 366 и пунктом 9 Правил централизованного управления сетью связи общего пользования, утвержденных постановлением Правительства Российской Федерации от 12 февраля 2020 года № 127. Блокировка применяется до момента фиксации НКЦКИ факта удаления противоправного контента. В таком случае, после устранения дефейса, бэкдора и уязвимостей свяжитесь с командой Национального координационного центра по компьютерным инцидентам.
| ||||||||||||||||||||||||||||||||||||||||||||||
|