Атака на Microsoft 365 через сервис резервного копирования ConnectWise затронула как минимум 162 арендатора, которые отслеживает Huntress. Злоумышленники получили доступ не через фишинг и не через взлом пользовательских учётных записей, а через доверенные идентичности приложений с уже выданными правами. Для российских компаний и MSP, работающих с Microsoft 365, это неприятное напоминание: MFA не спасает, если ключи от облака уже лежат у интегратора.
ConnectWise отключила клиентам и партнёрам доступ к Cloud Backup — сервису, ранее известному как SkyKick Cloud Backup. Компания заявила, что обнаружила несанкционированный доступ к application identities в своей среде и начала расследование. По данным BleepingComputer, на момент публикации поставщик не видел признаков компрометации самих резервных копий: архивы должны остаться доступными после восстановления работы сервиса. Но доступ к приложениям в клиентских тенантах оказался отдельной и куда более срочной проблемой.
Вход без пароля и без второго фактора
Для резервного копирования Microsoft 365 ConnectWise использует разрешения в Microsoft Entra ID. В каждом тенанте приложение представлено service principal — технической идентичностью, которой администратор когда-то выдал набор прав. Если у атакующего есть секрет такого приложения, ему не нужно убеждать сотрудника ввести пароль на поддельной странице и не нужно обходить MFA: он аутентифицируется как приложение и получает ровно те полномочия, которые ему доверили.
По оценке исследователей Todyl, атакующие входили в Microsoft 365 напрямую от имени backup-приложения, используя его секрет. При широких разрешениях это потенциально открывает чтение и изменение почты с вложениями, файлов OneDrive и SharePoint, а также сообщений Teams. В девяти изученных Todyl тенантах специалисты обнаружили входы, но не нашли признаков создания новых аккаунтов, смены паролей, выдачи дополнительных разрешений или закрепления через приложение. Это не повод выдыхать: выборка мала, а другие наблюдатели зафиксировали более агрессивные действия.
Huntress сообщила, что почти в 50 контролируемых ею тенантах сервисные учётные записи приложений ConnectWise Cloud Management назначали себе роли каталога, чаще всего Exchange Administrator. В одном случае атака дошла до закрепления примерно за пять минут: приложение Cloud Management - MS Teams получило роль Global Administrator и добавило учётные данные в приложение инструмента управления MSP, а также в приложение Huntress. Microsoft видела похожую цепочку: успешная аутентификация service principal, дальнейшая разведка через Microsoft Graph API и попытки добавить дополнительные credentials.
Общий индикатор в этих эпизодах — IP-адрес 144.172.64[.]128. Microsoft зафиксировала подозрительные попытки аутентификации с него 15 октября; Huntress связывает с ним также автоматизированные запросы 13 и 14 октября. Среди замеченных user agent — curl/7.88.1, python-urllib/3.12, python-requests/2.31 и python-requests/2.34.2. Сам по себе Python-клиент не доказывает атаку, но в журнале входов сервисного приложения, которое обычно работает предсказуемо, такие следы заслуживают немедленной проверки.
Что проверять администраторам прямо сейчас
ConnectWise рекомендует изучить входы service principal в Entra, отфильтровав события по идентификатору ConnectWise Cloud Backup: 506e08f9-6e9a-4da4-942b-a099a03644ae. Huntress советует отключить скомпрометированные интеграции и проверить credentials всех приложений на добавленные после 13 октября секреты и сертификаты. В старых тенантах компоненты могут называться SkyKick Cloud Manager. В перечень требующих проверки входят ConnectWise Cloud Management и его компоненты для Exchange Online, Teams, Microsoft Graph, SharePoint Online и Partner Center.
Здесь есть ловушка, знакомая каждому, кто хоть раз расследовал инцидент с OAuth: отключение приложения останавливает выпуск новых токенов, но уже выданные токены живут до окончания своего срока. Отзыв пользовательских сессий тоже не прекращает доступ, полученный от имени приложения. Поэтому одной кнопки «Disable» недостаточно. Нужны проверка журналов входа, аудит изменений секретов и сертификатов, поиск новых OAuth-grant, анализ вызовов Graph API и удаление несанкционированных учётных данных. Если приложение успело получить Global Administrator, расследование следует вести как полноценную компрометацию тенанта, а не как сбой бэкап-поставщика.
Атака на Microsoft 365 в этом случае выглядит как supply-chain-инцидент в чистом виде: единый поставщик дал атакующему путь к множеству организаций, а масштаб определяется не числом украденных паролей, а количеством ранее выданных приложению разрешений. Microsoft оценивает происходящее именно как активную атаку на цепочку поставок и предполагает злоупотребление существующими правами, включая Directory.ReadWrite.All.
ConnectWise объявила о приостановке сервиса в 05:01 UTC 17 октября и пока не назвала срок его восстановления. Неясны и число пострадавших за пределами инфраструктуры Huntress, объём возможной утечки и способ получения секретов поставщика. Главный вывод для IT-директоров и команд безопасности уже понятен: инвентаризация service principal, минимальные права и регулярная ротация секретов перестали быть скучной задачей из чек-листа. Это один из немногих контрольных механизмов, который способен остановить следующую атаку на Microsoft 365 до того, как доверенное приложение станет пропуском во весь тенант.