Злоумышленник использовал украденные ключи UpdraftCentral для внедрения бэкдоров на сайты WordPress после взлома TeamUpdraft

Злоумышленник воспользовался ключами, похищенными у компании TeamUpdraft — разработчика плагина для резервного копирования UpdraftPlus, — чтобы установить бэкдоры на сайты WordPress, подключенные к сервису удаленного управления UpdraftCentral.
Первыми подробный анализ этой кампании представили специалисты Nethemba в минувший понедельник — после того как злоумышленник загрузил неизвестные плагины на два сайта, принадлежащих самой Nethemba. Генеральный директор Павол Луптак сообщил, что атакующий подписывал команды с помощью действительных ключей, которые никогда не хранились на серверах фирмы.
«Тот, у кого есть эти ключи, может устанавливать и выполнять произвольный код на любом подключенном сайте, причем владельцы даже не узнают об этом», — отметил Луптак.
Позднее в тот же день компания TeamUpdraft подтвердила факт взлома в своем блоге. Руководитель по продукту Джо Уиттакер заявил, что в выходные 17–18 октября был зафиксирован несанкционированный доступ к ресурсу teamupdraft.com.
«Наша команда оперативно отреагировала на инцидент и всю ночь работала над его устранением: мы перекрыли путь доступа, принудительно завершили все сеансы пользователей, а также заменили ключи и учетные данные, которые могли быть скомпрометированы», — написал Уиттакер.
Однако ущерб, возможно, уже нанесен. По словам Уиттакера, в TeamUpdraft полагают, что злоумышленники получили доступ к базе данных клиентов. Как сообщается в публикации, в ней содержались имена, адреса электронной почты и платежные адреса, история заказов, хешированные пароли, настройки двухфакторной аутентификации, а также ключи подключения для сервисов UpdraftCentral, UpdraftVault и UpdraftClone.
В компании также отметили, что отключили все сайты, использующие UpdraftVault, и сменили все клиентские ключи для UpdraftClone. В связи с этим пользователям данных сервисов потребуется заново выполнить подключение или обновить свои ключи. Компания уже уведомила об инциденте Управление комиссара по информации (ICO) Великобритании.
Уиттакер не уточнил, каким образом злоумышленник проник в систему, сообщив лишь, что в TeamUpdraft «устранили уязвимость, которая позволила это сделать».
Компания Patchstack подтвердила выводы Nethemba: согласно телеметрическим данным, в период с 15:32 18 октября по 09:23 19 октября на множестве сайтов были установлены бэкдоры — всего было зафиксировано 99 различных наименований бэкдор-плагинов.
«Некоторые даже говорят, что по масштабам компрометации сайтов ситуация хуже, чем в случае с WP2Shell», — написал в понедельник в социальной сети X генеральный директор Оливер Силд, имея в виду уязвимость в ядре WordPress, из-за которой в июле потребовался экстренный выпуск обновления системы.
Содержание
- Как осуществлялась атака
- Ключи, о существовании которых никто не знал
- Первое исправление не сработало
- Что пока остается неизвестным
Как осуществлялась атака
Клиент UpdraftCentral входит в состав каждого экземпляра плагина UpdraftPlus, который насчитывает более 4 миллионов активных установок. По данным компании Patchstack, если на сайте имеется ключ доступа, система выполнит любую команду, подписанную приватным ключом панели управления (хранящимся в облачном сервисе TeamUpdraft). При этом проверка отдельных команд не предусмотрена.
Как отмечает Луптак, первыми плагинами, которые злоумышленник внедрил на сайты, были бэкдоры. Переход по специальной секретной ссылке приводил к созданию нового аккаунта и автоматическому входу злоумышленника в систему — в обход страницы авторизации и двухфакторной аутентификации. По словам Луптака, созданный аккаунт имела права редактора, поэтому он не отображался в списке администраторов, однако обладала расширенными полномочиями, позволяющими устанавливать плагины и изменять настройки сайта.
Луптак также выяснил, что ранние версии вредоносных плагинов содержали программную ошибку, из-за которой сайт «падал» практически при каждой загрузке страницы. Именно это позволило многим владельцам сайтов заподозрить неладное.
Тем не менее, злоумышленник не прекратил свои действия. Луптак сообщил, что в течение понедельника на все три сайта компании Nethemba поступали команды; в частности, на одном из ресурсов злоумышленник удалил неисправный бэкдор и уже через 2 секунды загрузил новый. По мнению эксперта, атакующий, вероятно, использовал список подключенных сайтов, доступ к которому есть только у системы UpdraftCentral.
«Атаки на наши сайты начались только после того, как разработчик подтвердил факт взлома и заблокировал доступ злоумышленнику: украденные ключи продолжают работать до тех пор, пока их не удалят на самом сайте», — пишет Луптак.
Позже другие администраторы обнаружили иные, работоспособные версии бэкдора. Луптак рассказал об одной из них: она позволяет злоумышленнику войти в систему под аккаунтом первого администратора сайта. В результате единственными следами взлома остаются файл плагина и соответствующая запись в логе доступа сервера.
Владельцы пострадавших сайтов обсуждают ситуацию на Reddit и форумах поддержки UpdraftPlus на сайте WordPress.org. Некоторые из них сообщают, что атаке подверглись сразу несколько их ресурсов, причем на каждом из них был установлен отдельный вредоносный плагин со случайным названием. В одной из тем на форуме владелец сайта написал, что никогда не создавал ключ UpdraftCentral и не имел аккаунта TeamUpdraft, однако обнаружил ключ, созданный месяцем ранее для одного из его пользователей WordPress.
Ключи, о существовании которых никто не знал
Пострадал далеко не каждый сайт, использующий UpdraftPlus. По данным Wordfence, сайты, у которых нет ключа UpdraftCentral, не будут принимать подобные команды. В TeamUpdraft заявляют, что пользователям бесплатной версии, у которых нет аккаунта на сайте teamupdraft.com, предпринимать ничего не нужно; также сообщается, что уязвимость не затронула selfhosted-установки UpdraftCentral и скачанные дистрибутивы плагина.
Однако владельцы сайтов могут оказаться уязвимыми, даже если они намеренно не использовали UpdraftCentral. Как отмечает Patchstack, на экране подключения аккаунта TeamUpdraft.com присутствует чекбокс, который по умолчанию установлен — он добавляет сайт в систему UpdraftCentral. Если оставить его включенным, то при входе в систему создается ключ, срок действия которого не ограничен.
«На мой взгляд, наличие этого флажка, который по умолчанию регистрирует вас в UpdraftCentral — даже если вы никогда не собирались пользоваться сервисом, — играет сейчас ключевую роль в сложившейся ситуации», — написал Силд в Slack-сообществе Post Status.
Основатель компании NerdPress Эндрю Уайлдер рассказал изданию The Repository, что на восьми сайтах его клиентов, а также в его собственном блоге, был обнаружен бэкдор. Во всех случаях угрозу удалось выявить и устранить до того, как злоумышленники успели воспользоваться доступом. В Slack-сообществе Post Status он пояснил, что его команда подключала сайты к TeamUpdraft исключительно для управления лицензиями, чтобы обеспечить получение обновлений.
По его словам, все скомпрометированные ключи были созданы в период с 2018 по 2021 год, при этом ни один из них не использовался по назначению. Среди сайтов клиентов NerdPress он обнаружил около 340 таких «бесхозных» ключей.
«Просто шокирует, что UpdraftPlus все эти годы сохраняла их активными… к тому же, система устроена так, что от участия нужно именно отказываться (opt-out)», — отметил Уайлдер.
Это уже второй случай за последние пять месяцев, когда канал UpdraftCentral используется для внедрения вредоносных плагинов на сайты WordPress. В июне уязвимость, позволяющая обойти аутентификацию, дала злоумышленникам возможность отправлять команды без использования ключей; этот инцидент стал отправной точкой для серии взломов, затронувших проекты компании Awesome Motive. Это также произошло спустя месяц после того, как сооснователь WordPress Мэтт Мулленвег призвал к проведению обязательных проверок безопасности для плагинов, получающих административный доступ к сайтам. В Slack-сообществе WordPress он предупредил: если этого не сделать, «мы, по сути, создаем ботнеты на базе дорогостоящих, хорошо подключенных к сети аккаунтов по всему интернету».
Первое исправление не сработало
В понедельник во второй половине дня (по UTC) команда TeamUpdraft выпустила версию UpdraftPlus 1.26.12 в репозитории WordPress.org. Согласно списку изменений, это обновление должно было аннулировать ключи UpdraftCentral Cloud, созданные до инцидента. Однако специалисты компании Nethemba проанализировали код и обнаружили ошибку: на самом деле ключи не удалялись вовсе. В тот же вечер команда TeamUpdraft выпустила исправление — версию 1.26.13, в описании которой указано: «ИСПРАВЛЕНО: корректное выполнение аннулирования, заявленного в версии 1.26.12».
По словам Луптака, даже эта версия не удаляет все ключи. В блоге TeamUpdraft утверждается, что обновление «автоматически разрывает все соединения UpdraftCentral, установленные до 22:00 по BST 18 октября». Тем не менее, Луптак отметил, что версия 1.26.13 не удаляет ключи, созданные 18 октября в период с 12:07 до 21:00 UTC, поэтому владельцам сайтов приходится удалять их вручную. Он также добавил, что на момент написания статьи сайты компании Nethemba, использующие премиум-версию плагина, еще не получили данное обновление.
Компании Patchstack и Wordfence начали блокировать команды UpdraftCentral для своих клиентов. При этом Wordfence сделала свое экстренное правило для файрвола доступным и для пользователей бесплатной версии — спустя всего несколько часов после того, как его получили платные клиенты.
Как минимум один хостинг-провайдер пошел еще дальше. В понедельник компания BigScoots приступила к «массовому удалению» плагина UpdraftPlus со всех клиентских сайтов, а позже обновила страницу статуса своих сервисов, заявив, что использование этого плагина на ее серверах больше не допускается.
Что пока остается неизвестным
В публикации в блоге TeamUpdraft говорится, что клиенты могут снова начать пользоваться плагином после его обновления, удаления старых ключей доступа и проверки своих сайтов; компания Nethemba также транслирует эту рекомендацию. В свою очередь, специалисты Patchstack советуют не возобновлять использование плагина, «пока разработчик не объяснит причину произошедшего».
Журнал The Repository обратился к команде TeamUpdraft с вопросами о том, как злоумышленники проникли в их системы, почему ключи UpdraftCentral не имеют срока действия и почему опция UpdraftCentral по умолчанию включена (отмечена галочкой). Представитель службы поддержки дал ссылку на публикацию в блоге компании, добавив: «Это всё, чем я могу поделиться на данный момент».
Силд, который написал в Slack-сообществе Post Status, что потратил 15 часов на расследование атаки и помощь владельцам пострадавших сайтов, а также хостинг-провайдерам, выразил сочувствие команде TeamUpdraft. «Честно говоря, даже не могу представить, что сейчас происходит внутри Updraft. Это, по сути, худший сценарий из возможных», — отметил он.
Уайлдер согласился с этим мнением: «Надеюсь, мы все проявим к ним понимание и снисходительность», — ответил он в той же ветке обсуждения.
Поскольку существует вероятность того, что злоумышленники получили доступ к данным клиентов, компания TeamUpdraft разослала пользователям электронные письма (копии которых появились на Reddit и в Slack-сообществе Post Status) с рекомендацией сменить пароль от аккаунта на teamupdraft.com, сбросить настройки двухфакторной аутентификации, а также «с осторожностью относиться к неожиданным письмам, якобы отправленным от имени компании».
Компания Nethemba рекомендует обновить UpdraftPlus до версии 1.26.13 или новее (для версии Premium — 2.26.13; версия 1.26.12 не подходит), а также в любом случае проверить наличие оставшихся ключей доступа. Владельцы сайтов могут проверить наличие ключа с помощью команды wp option get updraft_central_localkeys и удалить его командой wp option delete updraft_central_localkeys. Также это можно сделать через интерфейс плагина: Settings → UpdraftPlus Backups → Advanced Tools → UpdraftCentral. В материалах Nethemba представлен скрипт для проверки, а Patchstack приводит перечень всех выявленных на данный момент названий бэкдор-плагинов.
Источник: oddstyle.ru