- Регистрация
- 29.05.26
- Сообщения
- 268
- Реакции
- 108
Исследователи из Sysdig связали вторую атаку на тот же сервер Langflow с Для просмотра ссылки Войди
Тот же оператор был замечен в развертывании ENCFORGE , нового скомпилированного Go-вируса-вымогателя, предназначенного для шифрования весов моделей, векторных индексов, обучающих наборов данных и других файлов инфраструктуры ИИ в файловой системе хоста.
Точка входа не изменилась. Для просмотра ссылки Войди
Как сообщалось ранее в этом месяце изданием The Hacker News, в предыдущей операции использовался одноразовый код на Python и MySQL. AES_ENCRYPT()Функция для шифрования и уничтожения данных в Nacos (сервере конфигурации Alibaba) и производственных базах данных.
Новая Для просмотра ссылки Войди
Полезная нагрузка ENCFORGE
Исследователи извлекли исполняемый файл с командно-контрольного сервера злоумышленника, где он был скрыт под другим именем. /.lockd; прямой запрос к /lockdВозвращает ошибку 404, а точка в начале файла не позволяет просмотреть его содержимое в обычном режиме каталога. Файл представляет собой статический ELF-файл Go 1.22.12, упакованный с помощью UPX 5.20.
На момент анализа Sysdig платформы анализа угроз не выявили никаких обнаружений ни в упакованном, ни в неупакованном хеше. Внутреннее название проекта: encfile; в тексте ошибки исполняемого файла содержится ссылка на сопутствующий инструмент генерации ключей под названием keyforgeОбе строки сохраняются при перекомпиляции одного и того же кода и служат стабильными якорями для обнаружения.
В список расширений по умолчанию входят контрольные точки PyTorch и TensorFlow, Hugging Face SafeTensors, формат обмена данными ONNX, GGUF (текущий стандарт для локально развернутых LLM) и его предшественник GGML, векторные индексы FAISS, обучающие наборы данных Parquet и Arrow, массивы NumPy и записи TensorFlow.
Ан --includeЭтот флаг позволяет оператору добавлять дополнительные шаблоны файлов; во встроенной справке в качестве примеров приводятся адаптеры тонкой настройки LoRA и устаревшие веса GGML. Полный список насчитывает около 180 расширений. Эти примеры напрямую указывают на среды ИИ; у универсального хранилища файлов вряд ли были бы основания указывать адаптеры LoRA или устаревшие веса GGML. Исследователи рассматривают этот выбор как преднамеренное целенаправленное воздействие, а не как случайное покрытие.
ENCFORGE использует AES-256-CTR для файловых данных, при этом симметричный ключ для каждого запуска заключен в встроенный открытый ключ RSA-2048, скомпилированный в эту сборку. Вместо шифрования целых файлов, он шифрует выбранные регионы, используя ту же оптимизацию скорости, что и LockBit и блокировщики типа BlackCat.
Каждый обработанный файл переименовывается. .lockedРасширение. Этот исполняемый файл завершает процессы, удерживающие файлы открытыми, перед шифрованием, обрабатывает перезапуски без повторного шифрования завершенных файлов, оставляет записки с требованием выкупа. README, HOW_TO_DECRYPT, и README_DECRYPTи удаляется после запуска.
Восстановленный бинарный файл ENCFORGE не обладает возможностью эксфильтрации данных. Он не содержит сетевого кода, клиента облачного хранилища или механизма подготовки, и исследователи не обнаружили никаких признаков эксфильтрации данных, сайта утечки или платежного портала Tor во время наблюдаемой сессии. Его единственным рычагом воздействия являются зашифрованные данные.
В записках с требованием выкупа содержится следующая формулировка: e78393397@proton.meТот же адрес Proton Mail, который использовался в предыдущей кампании. Sysdig описывает это как наиболее надежную связь между двумя операциями.
Исследователи обнародовали информацию об одном зафиксированном сеансе, не назвали организацию и не предоставили данных о количестве жертв или доказательств еще одной операции ENCFORGE.
От Langflow к хосту
После подтверждения выполнения кода JADEPUFFER проверил контейнер на наличие учетных данных и обнаружил сокет Docker по адресу /var/run/docker.sockПервая попытка перенести ENCFORGE с сервера управления и контроля GCP провалилась. Вместо того чтобы остановиться, система адаптировалась.
За пять минут и 24 секунды оператор создал и отредактировал шесть скриптов на Python через тот же канал Langflow RCE, пока не получил рабочий путь к хосту. Первый скрипт создавался построчно, оставляя каждый отдельный запрос неактивным для проверки на основе сигнатур.
Начиная со второго варианта, оператор кодировал каждый полный скрипт в base64 и декодировал его внутри exec()вызов, избегая поиска команд на уровне оболочки, таких как base64 -dВ финальной версии использовался API Docker для запуска привилегированного контейнера с пространством имен PID хоста и смонтированной корневой файловой системой, определения местоположения целевого процесса и копирования ENCFORGE. /proc/<pid>/rootзатем запустил его на хосте через nsenter.
На всех этапах создания контейнеры были сформированы с использованием следующих параметров: Privileged: true, PidMode: host, NetworkMode: hostи корневая файловая система, смонтированная в режиме чтения и записи. Это корневой каталог хоста.
Перед запуском в реальных условиях оператор запустил --try-runпросканировать файловую систему, затем --lockдля выполнения прохода шифрования в реальном времени. Финальный скрипт проверял состояние процесса, считывал журнал блокировок и подсчитывал файлы, заканчивающиеся на .locked.
Исследователи не опубликовали полученные данные; представленные доказательства подтверждают факт попытки шифрования в реальном времени, а не количество успешно зашифрованных файлов моделей или наборов данных.
Компания Sysdig провела оценку --task-id gcp_h1пометить как доказательство того, что оператор отслеживал этот хост как цель GCP в рамках более широкой кампании; в ходе предыдущего запуска в сессии использовался идентификатор задачи. gcp_testВ отчете не сообщалось о дополнительных жертвах или местах дислокации войск.
Исследователи задокументировали предыдущую кампанию JADEPUFFER, в ходе которой удалось исправить неудачную попытку входа в Nacos за 31 секунду. Та же закономерность наблюдалась и здесь, при решении более сложной задачи: оператор создал точку выхода на хост через открытый сокет Docker, когда его предпочтительный маршрут доставки был заблокирован.
Внесите изменения в Langflow, а затем защитите модели.
По оценкам исследователей, восстановление производственной модели ИИ после ее шифрования может стоить от 75 000 до 500 000 долларов за модель, включая облачные вычисления на графических процессорах и инженерное время.
В производственных средах часто запускается несколько специализированных вариантов на общем хранилище, поэтому один запуск ENCFORGE может зашифровать несколько вариантов, хранящихся в одной и той же доступной файловой системе. Если обучающие данные находятся на одном хосте, организации необходимо восстановить их, прежде чем можно будет начать переобучение.
Двоичный SHA-256: упакованный 8cb0c223b018cecef1d990ec81c67b826eb3c30d54f06193cf69969e9a8baea2; распакованный ea7822eac6cecef7746c606b862b4d3034856caf754c4cf69533662637905328.
В своем полном отчете компания Sysdig опубликовала адреса источника и управления, отпечаток встроенного ключа RSA-2048, а также правило YARA.
- Обновите Langflow до версии 1.9.1 или до текущей поддерживаемой версии. Версия 1.3.0 закрыта. Для просмотра ссылки Войди
или ЗарегистрируйсяЭто был вектор проникновения в систему для этой кампании, но с тех пор CISA добавила еще две уязвимости Langflow в свой каталог KEV: Для просмотра ссылки Войдиили Зарегистрируйся, уязвимость RCE, не требующая аутентификации, исправлена в версии 1.9.0, добавлена в KEV 25 марта 2026 г.; и Для просмотра ссылки Войдиили ЗарегистрируйсяИсправлена ошибка обхода межпользовательской авторизации в версии 1.9.1, добавлена 7 июля 2026 года. - Производите ротацию ключей поставщика ИИ, учетных данных облака, секретов базы данных и любых других токенов, доступных процессу Langflow. Установка патча не аннулирует учетные данные, уже полученные через уязвимый экземпляр.
- Удалять /var/run/docker.sockиз любого контейнера, которому это не требуется. Там, где доступ к сокетам неизбежен, ограничьте его использование узко настроенным прокси-сервером; стандартное развертывание Langflow, как правило, не требует создания контейнеров, и неограниченный доступ к сокетам Docker следует рассматривать как ошибку конфигурации.
- Предупреждение о процессах приложений, вызывающих API создания контейнеров Docker, и о контейнерах, запущенных с помощью Privileged: true или PidMode: hostмонтирование корневых каталогов хоста и nsenterВыполнение изнутри контейнера.
- Храните веса модели, векторные индексы и обучающие наборы данных в автономных или неизменяемых снимках. Отслеживайте эти каталоги на предмет массового сброса. .lockedсоздание файла.
Издание Hacker News обратилось в группу по исследованию угроз компании Sysdig за дополнительной информацией о масштабах кампании по атаке на флот и степени уверенности в её авторстве; к моменту публикации компания Sysdig ответа не получила.
Теперь артефакты модели находятся на том же уровне восстановления, что и исходный код и производственные базы данных. Организация, которая может пересобрать приложение, но не может восстановить его веса, индексы или состояние обучения, не имеет простого пути к восстановлению.
Для просмотра ссылки Войди