Удалить вредоносный плагин здесь недостаточно: оставшаяся копия просто собирает заражение заново. Компания 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 злоумышленники регулярно используют уязвимые плагины, темы, слабые пароли и атаки на цепочку поставок. В сентябре отдельная уязвимость показала, как открытая администратором ссылка может закончиться установкой темы и выполнением кода.
При очистке Sucuri советует сначала остановить исполнение вредоносного кода, затем удалить копии из базы, общей памяти, cron-задач и триггеров БД и лишь после этого чистить файлы. После восстановления нужно повторно просканировать сайт, закрыть исходную точку входа и сменить учётные данные. Возврат любого компонента означает, что один из механизмов закрепления сохранился.
