Удаление вредоносного плагина больше не решает проблему. Оставшиеся копии собирают заражение заново. Компания Sucuri разобрала бэкдор SC, который закрепляется в WordPress сразу в нескольких слоях и возвращается через секунды после обычной очистки.
SC использует минимум восемь компонентов для сохранения себя на сервере. Среди них конфигурация .user.ini, два загрузчика в wp-content, файлы db.php и advanced-cache.php, блок кода в functions.php активной темы и две идентичные копии поддельного плагина Hyper Engine Kit. Если один компонент исчезает, другие проверяют его наличие и восстанавливают.
Основная опасность скрывается за пределами обычных файлов. Полная копия вредоноса лежит в таблице options базы WordPress в сжатом виде. На серверах с System V он может дополнительно храниться в сегменте общей памяти. Удаление всех подозрительных PHP-файлов не гарантирует избавление от проблемы: следующий запрос к сайту восстановит всю цепочку.
Бэкдор маскируется от администратора. SC скрывает себя из списка плагинов и проверок обновлений, создаёт скрытую учётную запись с полными правами и подделывает для неё cookie авторизации. Похожий скрытый доступ уже встречался в других атаках на WordPress, но SC добавляет к нему отдельный механизм самовосстановления.
Для команд управления вредонос использует публичные Ethereum RPC-шлюзы. В образце Sucuri насчитала около двадцати таких точек доступа, через которые код читает инструкции из смарт-контракта. Один заблокированный адрес не прерывает связь, поскольку бэкдор переключается на другие легитимные шлюзы и продолжает получать команды.
После запуска SC собирает адрес сайта, версии WordPress и плагинов, активные темы и токены администраторских сессий. Управляющая инфраструктура отправляет в ответ JavaScript для внедрения в страницы, новый PHP-код и список защитных плагинов для отключения. На интернет-магазинах внедрённый JavaScript способен перехватывать платёжные данные.
Sucuri не установила первоначальный способ проникновения в разобранном случае. В WordPress злоумышленники регулярно используют уязвимые плагины и темы, слабые пароли и цепочку поставок. В сентябре выявилась уязвимость, при которой открытая администратором ссылка приводит к установке темы и выполнению кода.
При очистке нужно сначала остановить исполнение вредоносного кода, затем удалить копии из базы, общей памяти, cron-задач и триггеров БД и только после этого чистить файлы. После восстановления требуется повторно просканировать сайт, закрыть исходную точку входа и сменить учётные данные. Если хотя бы один компонент вернулся, значит, один из механизмов закрепления всё ещё активен.
