Поддельное обновление пришло с сервера вендора. OPSSHIELD раскрыла взлом канала обновлений cPGuard

Поддельное обновление пришло с сервера вендора. OPSSHIELD раскрыла взлом канала обновлений cPGuard

Обновление cPGuard пришло с серверов вендора и оказалось чужим. 2 ноября поддельный патч установился на клиентских серверах и запустился с правами root. Компания OPSSHIELD, которая выпускает cPGuard, признала взлом канала обновлений. Временное окно она назвала сама: с 02:08 до 03:20 UTC.

Описание

При этом путь в инфраструктуру начался с формы регистрации. Атакующий завел учетную запись клиента под вымышленным именем и заказал бесплатную пробную версию cPGuard. Поставил ее на свой сервер и посмотрел, как агент общается с системой лицензий. По данным OPSSHIELD, той же учетной записью он вошел в биллинговый портал, добрался до сервера биллинга и лицензий и получил возможность выполнять там команды. Точный запрос, который открыл доступ, в логах не сохранился. Поэтому разработчик сейчас разбирает код портала и проверяет сторонние компоненты построчно.

Дальше события пошли плотно. Вендор восстановил их по минутам:

  • 1 ноября, 15:38 - атакующий начинает перебирать страницы биллингового портала.
  • 1 ноября, 16:34 - регистрирует учетную запись под вымышленным именем и заказывает пробную версию cPGuard.
  • 1 ноября, 21:17 - ставит пробную версию на свой сервер, чтобы изучить обмен с системой лицензий.
  • 2 ноября, 02:04 - выкладывает поддельное обновление на склад вендора с украденным ключом доступа.
  • 2 ноября, 02:08 - агенты начинают устанавливать его на клиентских серверах.
  • 2 ноября, 02:13 - копирует три облачных сервера компании.

Правда, без сопротивления не обошлось: агент дважды заметил атакующего и дважды его заблокировал. Блокировки не удержались. Теперь вендор чинит их работу на фаерволе nftables.

После этого поддельное обновление отработало на машинах клиентов. Это короткий скрипт, а не долгоживущий бэкдор. Собрал он файлы с паролями и ключами и отправил их на сервер атакующего. В наборе - хеши локальных паролей, приватные SSH-ключи, пароль базы данных и история команд root. На небольшом числе серверов к этому добавились ключи облачного хранилища. Запуск с правами root значит простое: атакующий теперь знает все, до чего root дотягивался на машине.

В результате пострадали не только внутренние системы вендора. По подсчетам компании, поддельное обновление выполнилось примерно на 2 950 клиентских серверах. Еще около 7 900 учетных записей биллингового портала утекли: имя, компания, почтовый адрес, email и хеш пароля. Пароли лежали в виде bcrypt-хешей, то есть необратимых отпечатков, а не открытым текстом. Сменить их все равно просят. Владельцам серверов вендор предлагает исходить из худшего: если cPGuard был онлайн в том окне, пароли root, ключи и доступы к базе считаются известными.

Поэтому компания закрыла то, что могла закрыть. Украденный ключ обновлений она отозвала. Заодно перевыпускают все лицензионные ключи cPGuard, чтобы копии у атакующего перестали работать. Вышла чистая версия 5.88.26: она убирает скрытую root-оболочку и файлы рядом с ней. Следующее обновление снимает задание в планировщике. Все сессии в биллинговом портале разработчик оборвал, ключи API биллинга и реселлеров заменил. Свои серверы пересобирает с чистых образов и включил полное журналирование запросов, чтобы повтор попал в логи целиком.

Кроме того, вендор оставил администраторам список дел примерно на час на сервер. Обновиться и проверить, что скрытая оболочка и задание в планировщике исчезли. Сменить пароль root и пароли локальных пользователей. Выпустить новые SSH-ключи и вычистить старые из authorized_keys. Дальше - пароль MySQL, все токены из истории команд и ключи облачного хранилища. Серверы, до которых ходили с зараженной машины по SSH-ключам, считаются засвеченными, пока ключи не заменены. Если вендор предупредил вас отдельно, что атакующий заходил на сервер руками, машину нужно пересобрать из копии до 1 ноября.

Итог простой. Кто держит ключ подписи обновлений, тот решает, что установится на клиентских серверах. Вендор обещает бесплатно провести администраторов по шагам. Начинать все равно с ключей и паролей.

Индикаторы компрометации

Комментарии: 0