Обнаружили уязвимости и предотвратили кибератаку. Вот как проверить свой ресурс.

В ходе проведения работ по оценке эффективности защищенности объектов информационной инфраструктуры национального сегмента сети Интернет центр кибербезопасности (SOC) hoster.by совместно с Национальным центром кибербезопасности Республики Беларусь выявил критические уязвимости ряда веб-ресурсов и предотвратил кибератаку, которая могла затронуть по меньшей мере десятки сайтов, в том числе интернет-магазинов.
Злоумышленники пытались воспользоваться уязвимостью в программных продуктах «Аспро» для интернет-ресурсов на CMS 1С-Битрикс. Точкой входа является уязвимость в ряде скриптов, последовательная эксплуатация которых приводит к успешному добавлению вредоносных файлов. После этого открывается возможность просматривать существующие файлы и создавать новые. А также получать полный доступ к ресурсу, добавив веб-шелл для удаленного управления веб-сервером или установив обратное соединение.
На практике это значит несанкционированный доступ к закрытой информации, в том числе персональным данным сотрудников и клиентов. А также потенциальную возможность установки вредоносных программ — например, для скрытого майнинга.
Как обнаружить и решить проблему
Лучший способ закрыть уязвимость — воспользоваться патчером безопасности, который оперативно выпустила компания-разработчик. Вспомогательный PHP-скрипт от “Аспро” для работы с файлами модулей обнаружит и обработает данную уязвимость, а также исправит небезопасные реализации unserialize. Однако в случае использования патчера безопасности вам необходимо воспользоваться рекомендациями от разработчика и с осторожностью использовать скрипт, так как внесенные изменения могут повлиять на работу вашей системы.
Второй способ решить проблему — сделать это вручную. Проверьте, есть ли по следующему пути /корневая директория сайта/ajax/ файлы error_log_logic.php или js_error.txt. Если хотя бы один из них есть, то скорее всего в отношении вашего ресурса уже были попытки эксплуатации уязвимости.
- Удалите файл error_log_logic.php, при наличии удалите js_error.txt, js_error.php.
- Исправьте следующий код в файлах ./form/index.php и /ajax/form.php:
В файлах /form/index.php и /ajax/form.php:
Замените строку
elseif($form_id == 'TABLES_SIZE'):
на
elseif($form_id == 'TABLES_SIZE' && false):
В таком случае полностью устраняется вероятность чтения файлов через form/index.php или /ajax/form.php и создание файла js_error.txt через error_log_logic.php.
Однако ручной способ исправления не включает в себя устранение еще одной существующей уязвимости, связанной с небезопасной реализацией unserialize о которой мы писали ранее. Поэтому рекомендуем использовать вспомогательный скрипт от «Аспро».
Также необходимо проверить ресурс на наличие вредоносных процессов и, при их наличии, остановить их. После этого обязательно смените пароли всех используемых учетных записей 1C-Битрикс. А затем проверьте, есть ли в административной части сайта нелегитимные пользователи, и удалите их.
Краткое техническое описание уязвимости
Уязвимые файлы используют небезопасные функции, например, include или AddMessage2Log. Значения в них поступают из пользовательского ввода и практически никак дополнительно не верифицируются. Вследствие чего, у злоумышленника появляется возможность внедрять вредоносный код.
Мы не публикуем подробную информацию об уязвимости, чтобы снизить риск её массового использования злоумышленниками.
Пример эксплуатации уязвимости
Первым делом злоумышленник отправляет специально сформированный запрос к скрипту error_log_logic.php:

В данном запросе указан закодированный в base64 вредоносный php код. Также можно увидеть функцию file_put_contents, которая и будет создавать файл по указанному в теле функции пути.
После отправки этого запроса будет создан файл /ajax/js_error.txt, который будет содержать все данные из параметра data. Однако в нашем случае злоумышленники чаще всего добавляли функцию unlink, которая используется для удаления файлов из файловой системы, таким образом скрывая свою деятельность.
Далее может быть использован один из двух уязвимых скриптов на выбор /ajax/form.php или /form/index.php, которые позволяют прочитать любой неисполняемый файл на ресурсе (txt,csv,html,css,md,xml,json), а в случае наличия в таких файлах кода (php,js,py) — выполнить данный код.
Возможность чтения любых неисполняемых файлов:

В результате выполнения запроса к /ajax/form.php или /form/index.php будет создан файл, название которого было указано в самом первом запросе к error_log_logic.php. В данном случае имя файла cfdb9856f2ce.php:

Выявленные индикаторы компрометации
В ходе расследования мы обнаружили, что большинство вредоносных файлов повторяют друг друга и меняется только название. Основное их назначение — загрузка других вредоносных файлов:
sha256 hash:
bf8db0c994b0b6c0a760d348a4d273ed552910174c9d03b4be1900a11e724558
sha256 hash: 5dd77e8d7d97b876026800b045c80e448fdef19f5549068b65dd4e2178d52a65
sha256 hash: 60b8683d1dcc42453887526c6373bc71039aa8196723662a1374f091bf0f33b5
Кроме того, в ходе расследования были выявлены все IPv4-адреса злоумышленников:
77.239.125.157
85.192.30.191
45.142.122.46
89.208.105.220
109.237.99.63
Также помните, что в случае вопросов вы всегда можете обратиться в наш центр кибербезопасности в любое время суток:
+375 17 239-57-17
security@hoster.by