С 14 по 26 октября 2026 года неизвестные использовали учётные данные аккаунта Qubole в AWS, чтобы принимать IAM-роли в средах клиентов. Такие роли организации создавали сами - для интеграции с платформой Qubole. Получив доступ, злоумышленники читали данные из S3 и искали секреты в чужих облачных средах.
Описание
Схема опирается на External ID - дополнительное условие доверия, которое платформа передаёт при принятии роли. По данным Wiz, в этой интеграции он секретом не является: значение пишется в журнал CloudTrail открытым текстом и часто хранится в инфраструктурном коде. Запросы на принятие роли шли через VPN-сервис Mullvad и сервер OVH.
Первая активность началась 14 октября, большую часть периода запросы шли с сервера OVH. Перебор ролей злоумышленники вели с отдельного адреса Mullvad, то есть подбирали доступные роли целенаправленно, а не перехватывали единичную сессию. Работа шла от имени двух разных пользователей: один из них встречается и в легитимном трафике платформы, что усложняет отделение атаки от обычной работы по одному имени в журнале.
Сессии назывались с префиксом quiam-, среди них встречалось имя, прямо указывающее на перечисление ролей. Внутри чужих сред активность двигалась от инвентаризации ресурсов к поиску учётных данных. Найденные ключи проверяли через TruffleHog - инструмент поиска секретов в коде и конфигурациях: для AWS вызывали проверку личности вызывающего, для Entra ID входили от имени service principal, для Okta запрашивали OAuth-токены.
Данные выкачивали из S3. Сначала перечисляли бакеты и объекты, затем скачивали найденное. В части случаев за одну сессию забирали целые бакеты, не выбирая конкретные файлы заранее, - признак того, что цель состояла в объёме, а не в конкретных документах.
Отдельная находка - загрузочный Linux-образ, размещённый на том же сервере OVH. После старта он отсчитывает 90 минут, собирает сведения о системе и отправляет их на сервер, а затем ждёт команд по сети. По истечении таймера машина жёстко перезагружается, и следы образа стираются. Фактическое применение этого образа исследователи не подтвердили.
Период наблюдения ограничен двумя неделями октября. Сколько организаций затронуто и какой объём данных ушёл, не сообщается. Не установлено и то, как именно получены учётные данные аккаунта Qubole - это ключевая неизвестная во всей цепочке.
В большинстве наблюдавшихся сред запросы злоумышленника были единственным обращением к интеграционной роли за октябрь. Сами trust policy при этом оставались на месте, поэтому запросы успешно проходили. Роли также давали доступ к конфигурации Lambda, параметрам SSM и секретам Secrets Manager, чего хватало для дальнейшего сбора данных.
Для защиты нужно проверить CloudTrail с 1 октября и искать AssumeRole от аккаунта 805246085872 с адресов, не принадлежащих AWS. Роли, которые больше не используются, стоит удалить или убрать из их trust policy, а для оставшихся ограничить доверенный principal и добавить условия по SourceIp или SourceVpc. Также нужно включить S3 data events: управляющие события показывают принятие роли и список бакетов, но не чтение объектов. Проверку стоит проводить во всех аккаунтах, где есть интеграционные роли, и сверять активность с указанными индикаторами.