Исследовательская команда Intezer выявила ранее неизвестный вариант вредоносного ПО FireWood, демонстрирующий существенные изменения в архитектуре и конфигурации при сохранении низкого уровня детектирования. Модифицированный бэкдор сохраняет ключевую функциональность как инструмент скрытого удалённого доступа (RAT) к Linux-системам, но получил усовершенствованные механизмы маскировки.
Описание
FireWood, впервые задокументированный специалистами ESET, относится к многолетней линии "Project Wood", отслеживаемой с 2005 года. Он внедряет модули руткита на уровне ядра (например, usbdev.ko) и использует TEA-шифрование для сокрытия присутствия, поддержания персистентности и скрытной связи с серверами управления (C2). Вредонос распространяется преимущественно через веб-шеллы на скомпрометированных серверах, позволяя злоумышленникам выполнять произвольные команды, похищать системные данные и учётные данные, оставаясь незамеченным в ходе длительных операций. Аналитики отмечают низкую уверенность в связи FireWood с китайской группировкой Gelsemium - совпадения могут быть случайными или отражать общее использование инструментария разными акторами.
Технические усовершенствования нового варианта
Ключевое изменение касается логики запуска: в предыдущей версии выполнение прерывалось при неудачной проверке разрешений через CUser::IsSuc(). Теперь эта проверка полностью устранена, а верификация прав отложена до завершения демонизации и сохранения идентификатора процесса (PID). Код разделил функцию SavePidAndCheckKernel() на два этапа: первоначальное сохранение PID и последующую загрузку модуля через CModuleControl::AutoLoad() с проверкой через CheckLkmLoad(). Это оптимизирует последовательность инициации и усиливает скрытность.
При передаче идентификатора новая версия формирует расширенный буфер, содержащий имя процесса, порт в шестнадцатеричном формате, PID, фиксированное имя "kde-tra" и настраиваемый флаг (или строку "nothing"). Данные передаются через цепочку CHideProcess::NetLinkInit(), CHideProcess::SendProcessName() и CHideProcess::Destroy(), где сохранилась опечатка в имени метода ("Destroy" вместо "Destroy") - ошибка, присутствующая и в ранних сборках. Аналогично сохранена орфографическая ошибка в сообщении "Get Memory Faile".
Сетевое взаимодействие упрощено: вместо сложного алгоритма с рандомизированными интервалами между пакетами и днями ожидания, теперь используется лаконичный цикл while (true). После задержки запуска бэкдор непрерывно вызывает ConnectToSvr(), при неудаче делая короткие паузы, и завершает работу по истечении таймера. Это повышает надёжность соединения с C2 ценой снижения временной маскировки. Протокол связи и структура C2 остались без изменений, однако конфигурационные тайм-ауты более не применяются.
Эволюция функционала и следы внедрения
Добавлен резервный метод идентификации ОС: если файл /etc/issue недоступен, данные считываются из /etc/issue.net. Существенно изменились пути установки:
- Для root: /usr/lib/.kde-root/ с подкаталогами lib, data, kdeinit, pid и скрипт /etc/init.d/rc.local
- Для обычных пользователей: $HOME/.kde-root/ с аналогичной структурой и модификация .bashrc
Ранее использовались пути /etc/rc.d/rc.local, /etc/init.d/boot.local (root) и .bashrc (пользователи). Обновлена и панель команд: удалены устаревшие функции изменения интервалов (ID 0x111, 0x113, 0x114) и чтения файлов (0x201). Команда сокрытия процессов перемещена на ID 0x202 (было 0x112), а функция HideModule исключена. Добавлена новая опция SetAutoKillEl (ID 0x160) для активации "автоубийства" процессов.
Аналитики Intezer также подтвердили наличие трёх ранее недокументированных команд в обоих вариантах:
- ID 0x109: Изменение конфигурации соединения
- ID 0x192: Загрузка и исполнение файла через system() после приёма через CFileControl::FileUp
- ID 0x195: Экфильтрация файлов с расширениями .v2, .k2, .W2 и drive.C2
География распространения
Обнаружены образцы с территориальной привязкой: хэш 4c293309a7541edb89e3ec99c4074584328a21309e75a46d0ddb4373652ee0d6 загружен в VirusTotal из Ирана 5 февраля 2025 года, а идентичный анализируемому файл (d7be3494b3e1722eb28f317f3b85ee68bf7ea5508aa2d5782392619e078b78af) - с Филиппин 7 мая 2022 года.
Эксперты подчёркивают, что обновление FireWood отражает тренд на адаптацию legacy-угроз под современные системы защиты. Отсутствие образца модуля ядра не позволяет оценить его изменения, однако модификации пользовательской части повышают живучесть бэкдора в корпоративных средах. Организациям рекомендовано усилить мониторинг аномальной активности в указанных путях и нестандартных сетевых подключений на Linux-серверах.
Индикаторы компрометации
SHA256
- 4c293309a7541edb89e3ec99c4074584328a21309e75a46d0ddb4373652ee0d6
- 898a5bd86c5d99eb70088a90f1d8f90b03bd38c15a232200538d0601c888acb6
- cff20753e36a4c942dc4dab5a91fd621a42330e17a89185a5b7262280bcd9263
- d7be3494b3e1722eb28f317f3b85ee68bf7ea5508aa2d5782392619e078b78af