Программа-вымогатель атаковала Langflow, но не может получить выкуп
Источник: VentureBeat · Louis Columbus
Один и тот же злоумышленник дважды взломал один и тот же смотрящий в интернет сервер Langflow, но во второй раз принес с собой программу-вымогатель, созданную для уничтожения обученных моделей ИИ. Исследовательская группа по кибербезопасности Sysdig документировала первую кампанию 1 июля и вторую — 20 июля. Точка входа осталась прежней, но полезная нагрузка изменилась полностью.
Обе атаки были проведены через CVE-2025-3248 — уязвимость отсутствия аутентификации в конечной точке валидации кода Langflow, которая позволяет любому пользователю, имеющему доступ к серверу, выполнять на нем код на Python. В первой кампании агент импровизировал: он зашифровал 1 342 элемента конфигурации Alibaba Nacos с помощью собственной функции шифрования MySQL и удалил таблицы. Во второй кампании он задействовал ENCFORGE — скомпилированный бинарный файл на Go, сканирующий около 180 расширений файлов.
ENCFORGE была создана специально для ресурсов ИИ, а не адаптирована под них
О назначении программы красноречиво говорит список расширений. Специалисты Sysdig обнаружили контрольные точки PyTorch и TensorFlow, веса SafeTensors от Hugging Face, формат GGUF, лежащий в основе большинства локальных развертываний LLM, векторные индексы FAISS, а также обучающие данные в форматах Parquet и NumPy.
Обычные программы-вымогатели захватывают файлы моделей случайно, потому что шифруют все подряд. ENCFORGE ищет их целенаправленно.
В качестве примера форматов, к которым применяется добавление расширения, программа использует LoRA-адаптеры и устаревшие веса GGML — написавший это злоумышленник точно знает, чьи именно машины он атакует.
Майкл Кларк (Michael Clark), возглавляющий исследовательскую группу Sysdig по угрозам, охарактеризовал цель атаки как уничтожение «того единственного, что организация не может просто так взять и восстановить». ENCFORGE не содержит сетевого кода. Специалисты Sysdig не обнаружили в бинарном файле исходящих подключений, сайтов для публикации утечек или платежных порталов, а идентичный адрес Proton Mail в обеих записках с требованием выкупа связывает эти кампании с группировкой, которую они отслеживают под именем JADEPUFFER. Агент собирал учетные данные по пути внутрь, но программа-блокировщик не может ничего эксфильтровать, поэтому ее единственный инструмент давления — приведение файлов в негодное состояние. Она шифрует не весь файл целиком, а его фрагменты с использованием алгоритма AES-256-CTR и уникальным ключом для каждого запуска, завернутым во внедренный ключ RSA-2048. Это та же оптимизация скорости, которую используют устоявшиеся семейства шифровальщиков для быстрого уничтожения больших файлов.
Ваш план резервного копирования, вероятнее всего, не охватывает веса моделей
Восстановление базы данных из пятничного снимка стоит выходных, потраченных на транзакции. Восстановление дообученной (fine-tuned) модели стоит всего того, что было изучено с пятницы, причем ничто из этого не хранится в виде строк, которые можно перезапустить.
Повторное создание такой модели — это не просто процедура восстановления. По оценкам Sysdig, прямое восстановление готовой к производственному использованию дообученной модели обходится в сумму от 75 000 до 500 000 долларов. Эта цифра складывается из стоимости аренды облачных графических процессоров (GPU) на время прогона обучения, требуемого для получения полезного результата, плюс часов работы инженеров. И это стоимость одной модели, а команды хранят на общем хранилище сразу несколько вариантов. Если обучающие данные находятся на том же хосте, что и веса, восстановление блокируется до тех пор, пока набор данных не будет собран заново. Выплата выкупа тоже не выход. В первой кампании ключ шифрования генерировался случайным образом, один раз выводился в консоль и нигде не сохранялся, что превращало ту полезную нагрузку в вайпер (программу-уничтожитель), замаскированную под записку с требованием выкупа.
Такая оценка делает аргумент убедительным для руководства. Кэйн Макгладри (Kayne McGladrey), старший член IEEE, посвятивший свою карьеру безопасности идентификационных данных, рассказал VentureBeat, что команды безопасности проигрывают эти битвы, классифицируя риски не в тех категориях. Компании «должны сосредоточиться на бизнес-рисках, а не на каком-то, знаете ли, кибернетическом риске, потому что если это не влияет на бизнес — например, на убытки или финансовые потери, в данном случае преимущественно финансовые, — тогда никто не станет обращать на это внимание, не заложит под это соответствующий бюджет и адекватно не внедрит средства контроля для предотвращения», — отметил он. Уничтоженная модель имеет вполне конкретную стоимость замены, и именно с такой формулировкой проблемы финансовый директор (CFO) готов действовать.
Официальные рекомендации за этим не поспевают. В мае 2025 года Центр безопасности искусственного интеллекта АНБ (NSA Artificial Intelligence Security Center), CISA и ФБР опубликовали документ «Безопасность данных ИИ» (AI Data Security). Это самый авторитетный документ по данной теме, выпущенный совместно с Великобританией, Австралией и Новой Зеландией. В нем выделяются три риска: цепочка поставок данных, злонамеренно измененные данные и дрейф данных (data drift). Все три сводятся к вопросу о том, можно ли доверять данным. ENCFORGE ставит вопрос иначе: существуют ли они вообще.
Агент создал собственный путь для побега за пять минут
Именно сбой в доставке выдает истинный масштаб этой кампании.
Убедившись в успешном выполнении кода, агент просканировал хост в поисках облачных ключей, строк подключения и токенов API, применил их к внутренней базе данных и кэш-сервисам, а также обнаружил сокет Docker по адресу /var/run/docker.sock, что функционально равносильно правам корневого пользователя (root). Затем он попытался загрузить бинарный файл вымогателя со своего командного сервера, но скачивание не удалось.
Вместо того чтобы повторять попытку, агент изменил стратегию: используя канал Langflow, он написал шесть скриптов на Python и всего за 5 минут и 24 секунды подобрал рабочий способ побега из контейнера, причем каждый следующий скрипт исправлял ошибки предыдущего. Финальный скрипт находит идентификатор процесса хоста через API Docker, копирует бинарный файл за пределы пространства имен (namespace), запускает шифрование, а затем подсчитывает количество файлов, чтобы убедиться в успехе операции. В первой кампании точно такое же поведение проявлялось в виде неудачной попытки входа, которая была диагностирована и исправлена за 31 секунду.
Задача усложнялась, но метод работал безотказно. Сэм Эванс (Sam Evans), в то время директор по информационной безопасности (CISO) в Clearwater Analytics, описал это в терминах бюджета. «В сфере безопасности все упирается в время пребывания злоумышленника в системе (dwell time), — рассказал он в эксклюзивном интервью VentureBeat. — Если злоумышленник находится в вашей среде и сидит там какое-то время, время его пребывания увеличивается, а следовательно, растет и радиус поражения. Вероятность того, что это перерастет в серьезный инцидент, экспоненциально высока».
Майк Ример (Mike Riemer), старший вице-президент группы сетевой безопасности и полевой CISO компании Ivanti, наблюдал, как этот подход стал стандартом. Вендоры укрепили парадный вход, рассказал он VentureBeat, поэтому злоумышленники перестали в него стучаться. «Я не могу пройти через парадный вход, так давайте я раздобуду чей-нибудь ключ от дома и пройду через черный ход», — пояснил он. А за этим входом находится все то, что команды считают защищенным, поскольку «они не выставлены напрямую в интернет и находятся за защитным барьером — на самом деле нет».
Никто не утверждает, что машина действовала автономно. TechCrunch сообщал 6 июля, что для первой операции все равно требовался человек, который выбирал цель и развертывал инфраструктуру, а специалисты Sysdig не смогли отследить исходные учетные данные. Эту атаку кто-то направил, но все, что последовало за этим, происходило уже без участия человека за клавиатурой.
Хитр Ренфро (Heath Renfrow), соучредитель и CISO фирмы по ликвидации последствий взломов Fenix24, рассказал изданию Infosecurity Magazine, что когда агент сжимает часы работы оператора до считанных минут, «защитники теряют драгоценное время». Независимо от того, управлялась ли атака ИИ, реакция на нее остается прежней.
Дверь оставалась открытой в течение 14 месяцев
Уязвимость CVE-2025-3248 имеет оценку 9.8 по шкале CVSS. 5 мая 2025 года CISA добавила ее в <каталог известных эксплуатируемых уязвимостей (Known Exploited Vulnerabilities catalog) с федеральным дедлайном до 26 мая, а разработчики Langflow устранили ее в версии 1.3.0. Когда JADEPUFFER вернулась в июле 2026 года, с момента публикации прошло уже более четырнадцати месяцев, и сервер уже был публично задокументирован как жертва взлома.
Ример оцифровал то количество времени, которое остается у специалистов. «Если я выпускаю патч, а клиент не устанавливает его в течение 72 часов после релиза, он уязвим для эксплойта, потому что именно с такой скоростью они теперь могут действовать», — заявил он, добавив, что большинству клиентов требуется неделя только на то, чтобы установить патч вручную. Если сопоставить 72 часа с четырьмя месяцами, этот разрыв уже не выглядит как случайный оплош.
Ничего принципиально нового ни в одной из кампаний не было. В ходе первой атаки злоумышленники подделали административный токен Nacos с помощью ключа подписи по умолчанию, находящегося в открытом доступе с 2020 года, прошли через CVE-2021-29441 (обход аутентификации, исправленный Alibaba еще в 2021 году) и обнаружили хранилище MinIO с учетными данными minioadmin:minioadmin. Специалисты Sysdig насчитали более 600 полезных нагрузок — и каждая из них опиралась либо на известную неправильную конфигурацию, либо на оставленную незапатченной уязвимость. Во второй атаке к этому добавился незащищенный сокет Docker. Каждая брешь была банальной. Но объединить их на машинній скорости — нет.
Langflow привлекает такое внимание тем, что именно в нем хранится. В июне VentureBeat сообщал, что в открытом доступе находятся около 7 000 экземпляров (большинство в Северной Америке), на которых хранятся ключи API провайдеров, облачные учетные данные и живые подключения к векторным хранилищам, для шифрования которых и был создан ENCFORGE. Ример выражается предельно прямо. «Когда вы размещаете свою безопасность на периметре своей сети, вы приглашаете весь мир прямо на этот периметр», — сказал он.
CISA добавила в свой каталог известных эксплуатируемых уязвимостей уже пять брешей в Langflow, две из них — в текущем месяце. Теперь в каталоге KEV числится пять уязвимостей Langflow, две из которых были добавлены в этом месяце. 7 июля CISA внесла в список уязвимость CVE-2026-55255 — проблему межпользовательского обхода (cross-tenant bypass), позволяющую любому аутентифицированному пользователю на общем инстансе запускать пайплайны другого тенанта с его учетными данными. Рекомендация мейнтейнеров оценивает ее в 9.9 балла, исправление вышло в версии 1.9.1.
21 июля CISA добавила уязвимость CVE-2026-0770, и она выглядит еще хуже. Специалисты Trend Micro обнаружили неаутентифицированный путь к выполнению произвольного кода (RCE) через параметр exec_globals в той же самой конечной точке валидации, через которую проникал JADEPUFFER; уязвимость получила оценку 9.8. Ресурс KEVIntel зафиксировал случаи эксплуатации начиная с 27 июня: более 220 попыток с 64 адресов. По словам основателя проекта Райана Дьюхерста (в интервью BleepingComputer), полезные нагрузки выходили далеко за рамки простой разведки и были направлены на поиск учетных данных AWS и метаданных контейнеров. Федеральным ведомствам было предписано устранить ее до 24 июля.
Все это происходит в самых обычных ИТ-средах. Опрос 418 профессионалов, проведенный Cloud Security Alliance по заказу Token Security, показал, что 82% организаций обнаружили в своих средах ИИ-агентов, о существовании которых никто не знал, а 65% за последний год сталкивались с инцидентми, связанными с агентами.
Макгладри прослеживает историю управления правами доступа на четыре десятилетия назад. Компании всегда копировали профиль доступа одного сотрудника на нового работника, а теперь делают то же самое с агентами. ИИ-агент «делает все необходимое для выполнения своей задачи», пояснил он, и «использует гораздо больше разрешений, чем ему положено… чем стал бы использовать человек, в силу скорости масштабирования, а также своих намерений».
Что предпринять до того, как об этом спросит совет директоров
«Каждый раз, когда в новостях публикуется информация о новой атаке шифровальщика, мы получаем запросы от совета директоров: „Что мы с этим делаем?“ — говорит Эванс. — И если в этом замешан ИИ, их страх разгорается с новой силой».
Вот пять вещей, ответы на которые стоит подготовить на этой неделе. Ни одна из них не требует финансовых затрат.
-
Переведите каждый доступный из интернета экземпляр Langflow на актуальную поддерживаемую версию. Все, что работает на устаревших сборках, уязвимо как минимум к одной из пяти брешей из списка CISA, включая добавление от 21 июля. Затем изучите историю запросов к /api/v1/validate/code на предмет паттерна exec_globals.
-
Уберите сокет Docker из контейнеров приложений. У Langflow нет никаких причин взаимодействовать с ним напрямик. Если такое подключение необходимо, поставьте перед ним прокси-сокет, разрешающий только строго необходимые вызовы.
-
Включите пути к артефактам моделей в план резервного копирования. Создавайте неизменяемые снимки контрольных точек, векторных индексов и обучающих данных, проверяйте их на возможность восстановления и храните данные отдельно от хоста, на котором находятся сами веса.
-
Ротируйте все учетные данные, к которым мог получить доступ хост, а затем извлеките ключи провайдеров из его среды выполнения. Установка патча не отменяет того, что уже утекло. Первая кампания собрала учетные данные OpenAI, Anthropic и облачных сервисов за считанные секунды. Перенесите управление ими в специализированный менеджер секретов (secrets manager).
-
Настройте обнаружение массового создания файлов с расширением .locked в директориях, содержащих файлы .gguf, .safetensors, .ckpt или .faiss. Sysdig опубликовала правило YARA и оба хэша, причем на момент анализа антивирусные базы их еще не распознавали. Количество затронутых файлов опубликовано не было, поэтому задокументированный инцидент представляет собой активный проход шифрования, а не подсчитанный объем потерь.
Злоумышленник, проникающий через уязвимый фреймворк ИИ, теперь приходит с инструментами, созданными специально для тех систем, к которым он подключается, причем именно эти активы процедуры восстановления не способны воссоздать. Артефакты моделей должны занять свое место в плане восстановления рядом с базами данных. Между двумя отчетами Sysdig прошло менее трех недель — столько времени понадобилось этому злоумышленнику, чтобы перейти от импровизированных скриптов на Python к скомпилированному файлу-блокировщику.



