Незакрытый каталог файлов и сервер хранения с ошибками в настройках позволили восстановить полную картину деятельности злоумышленника под псевдонимом Azazel. Он работал как партнёр группировки Gentlemen, создающей программы-вымогатели, и одновременно вёл собственную площадку для публикации украденных данных. Общий объём его хранилищ превысил 29 терабайт. Внутри обнаружились каталоги более двух десятков пострадавших организаций и около 6 терабайт похищенной информации.
Описание
Среди жертв - компании из логистики, страхования, фармацевтики, разработки искусственного интеллекта и производства медицинских приборов. Отдельно упоминается инфраструктура, связанная с государственными структурами. География охватывает шесть стран. Масштаб указывает на выстроенный процесс с долгосрочным хранением добычи, а не на разовую вылазку.
Исследование CloudSEK показало, что доступ к каждой подтверждённой жертве появлялся через украденные секреты систем непрерывной сборки и развёртывания (CI/CD). Одна скомпрометированная платформа для совместной разработки кода дала вход сразу в две не связанные между собой организации. Из хранилищ переменных и истории репозиториев извлекались токены доступа, учётные данные баз данных, ключи программных интерфейсов и закрытые ключи для подключения к серверам.
Отдельного внимания заслуживает то, как Azazel распоряжался добычей. Данные он публиковал на собственной площадке LEAKNED. Выкуп тоже шёл мимо программы-вымогателя, чьими инструментами и переговорными каналами он пользовался. Пострадавшие об этом не знали и видели только одну площадку с угрозами. Оператор Gentlemen терял доход и не контролировал параллельный поток. Для модели аренды программ-вымогателей (Ransomware-as-a-Service, RaaS) такая схема - структурная проблема, а не редкое исключение.
Показателен и эпизод с одной высокотехнологичной компанией. Здесь речь не о быстром сборе учётных данных, а о многонедельном проникновении. Вход нашли через программный интерфейс медицинской визуализации. Он сам обращался к адресам, которые указывал пользователь, и не проверял их. Через эту уязвимость злоумышленник попал во внутреннюю сеть. Дальше он добрался до сервисов хранения, кэширования и мониторинга, уже не встречая проверки подлинности.
Пароли в конфигурации были зашифрованы. Azazel восстановил главный ключ и разом расшифровал все защищённые значения: пароли к базам данных, ключи интерфейсов, служебные токены. Отдельная находка - токен обхода аутентификации. Разработчики удалили его из рабочей версии кода, но оставили в истории изменений. Из неё злоумышленник его и достал. В результате он получил постоянный доступ к платформе, не имея действующих учётных данных.
Базы системы мониторинга лежали среди похищенных файлов. Специалист вытащил оттуда данные для входа администраторов и подбирал пароли офлайн, используя атаку полным перебором. Список кандидатов содержал учётные данные вычислительного кластера и, судя по всему, действующий секретный ключ облачного сервиса. Копирование данных продолжалось прямо во время расследования: за несколько часов каталог прибавил сотни гигабайт. Отдельный сценарий прочёсывал всю выгрузку в поисках ключей доступа к контейнерной среде и конфигураций с паролями. В руках атакующего оказалась полная схема инфраструктуры жертвы.
Отдельная линия - использование протокола MCP (Model Context Protocol), который применяют для подключения внешних инструментов к ИИ-ассистентам. В одного такого ассистента прописали собственный канал удалённого управления и запускали через него атаки. Это первый публично подтверждённый случай, когда MCP служит каналом управления в реальной криминальной кампании. Кроме того, злоумышленник построил сканирующую инфраструктуру для поиска открытых портов ИИ-ассистентов по всему интернету. ИИ-инструменты он применял и к собственному хозяйству: в конфигурации хранилища сохранились ответы ассистента на вопросы о резервном копировании и пропускной способности дисков.
Инфраструктура состояла из трёх узлов с разными задачами. Один принимал данные от жертв, второй служил площадкой для подготовки, третий хранил архив. Злоумышленник снимал выделенные физические машины, а не облачные ресурсы. Так дешевле в расчёте на терабайт, сложнее отследить владельца и меньше риска попасть в процедуры жалоб облачных провайдеров. Данные проходили три перегона, прежде чем оказаться в облачном хранилище. Изъятие любого отдельного узла не возвращает похищенное.
Практический вывод касается прежде всего секретов сборочных конвейеров. Их нужно ограничивать по правам, менять после любого подозрения и не оставлять в истории репозиториев. Внутренние сервисы не должны доверять адресам, которые подставляет пользователь. Конфигурации с паролями стоит шифровать так, чтобы один ключ не открывал всё сразу. ИИ-инструменты, подключённые к корпоративным системам, требуют отдельного надзора: лишние подключения и порты лучше закрывать. Схема, при которой партнёр программы-вымогателей ведёт собственный бизнес за спиной оператора, указывает на слабое место самой модели аренды. Контроль над доступом и выкупом распределён слишком свободно, и жертвы узнают о втором вымогателе последними.