eBPF-вредоносы в 2025 году: эволюция скрытых угроз для Linux

information security

Технология eBPF (Extended Berkeley Packet Filter), представленная в 2015 году как развитие классического BPF 1992 года, продолжает оставаться мощным инструментом как для системных администраторов, так и для злоумышленников. Изначально созданная для безопасного выполнения небольших программ внутри ядра Linux с целью анализа сетевого трафика и системных вызовов, она привлекла внимание авторов сложного вредоносного ПО. Хотя количество таких угроз невелико из-за высокой сложности разработки, их опасность и скрытность делают их серьезной проблемой, особенно в контексте целевых атак, предположительно поддерживаемых государствами.

Описание

По данным FortiGuard Labs, в 2025 году ситуация с eBPF-вредоносами не стала достоянием прошлого. Было обнаружено 151 новый образец семейства BPFDoor и три варианта Symbiote. Эти угрозы не носят массовый характер, но представляют особый класс из-за сложности обнаружения, эффективности и мощности. Они часто выбираются для целенаправленных атак, где важна скрытность и устойчивость.

Одной из ключевых сложностей при анализе таких угроз является обратная разработка байт-кода eBPF. Этот язык использует собственный минималистичный набор инструкций с фиксированной 64-битной длиной, что отличается от переменной длины команд в архитектурах x86 или ARM. Для анализа исследователи применяют специализированные инструменты, такие как bpftool, процессор eBPF для IDA Pro, движок Capstone или Radare2, который поддерживает байт-код BPF нативно. Например, анализ свежего образца Symbiote от 30 июля 2025 года показал, что вредоносная программа прикрепляет BPF-фильтр к сокету, причем в новой версии логика фильтрации изменилась.

Используя Radare2, эксперты локализовали объект байт-кода eBPF размером 352 байта внутри бинарного файла. После переключения архитектуры дизассемблера на BPF удалось увидеть типичные инструкции, такие как ldh (загрузка полуслова) и jeq (условный переход). Анализ показал, что новый вариант Symbiote принимает IPv4 или IPv6 пакеты протоколов TCP, UDP и SCTP, но только через специфичные нестандартные порты: 54778, 58870, 59666, 54879, 57987, 64322, 45677 и 63227.

Использование нестандартных высоких портов для связи с командным центром (C2) - распространенная тактика ботнетов. Многие системы безопасности, такие как базовые межсетевые экраны или механизмы обнаружения IDS/IPS (системы обнаружения и предотвращения вторжений), часто фокусируются на проверке известных портов, игнорируя неизвестные высокие. В результате трафик Symbiote может остаться незамеченным или быть помеченным как легитимная активность на нестандартном порту. По сравнению с оригинальной версией, новый вариант расширил список портов и добавил поддержку UDP. Более длинный список обычно означает использование техники перескока портов: если один порт блокируется, вредоносная программа переключается на другой. Это затрудняет создание эффективных правил блокировки без риска ложных срабатываний. Поддержка UDP также является умным ходом, поскольку этот протокол не требует установления соединения, что упрощает перескок, а классические IDS часто хуже справляются с анализом UDP-сессий по сравнению с TCP.

Для ускорения анализа байт-кода исследователи все чаще прибегают к помощи искусственного интеллекта. Например, предоставление байт-кода модели Claude Sonnet 4.5 позволило быстро получить объяснение каждой инструкции и общее описание логики фильтра. Однако важно сохранять критический взгляд на выводы ИИ, поскольку модели могут допускать ошибки. В одном случае модель неверно интерпретировала байт-код как отбрасывающий пакеты, а не принимающий их. В другом - ошибочно указала на фильтрацию порта 2048, тогда как шестнадцатеричное значение 0x0800 на самом деле является идентификатором EtherType для IPv4.

Помимо Symbiote, другим значимым семейством, злоупотребляющим BPF, является Linux/BPFDoor. Оно появилось в 2021 году, но в 2025 было обнаружено рекордное количество новых вариантов - 150 образцов. Для сравнения старого и нового образцов исследователи также использовали ИИ, настроив MCP-сервер для Radare2, что позволило языковой модели напрямую работать с дизассемблером. Анализ образца от 19 июня 2025 года показал как изменения, так и упрощения. Например, функция apply_bpf_filter настраивает фильтр на сыром сокете. Ключевым улучшением стала поддержка IPv6 в дополнение к IPv4. Теперь фильтр пропускает только UDP-трафик на порт 53 (DNS) как для IPv4, так и для IPv6. Это тонкий способ скрыть присутствие, поскольку DNS-трафик является частым и редко вызывает подозрения.

Сравнительный анализ, частично автоматизированный ИИ, выявил и другие изменения в BPFDoor. Механизм идентификации пакетов полностью изменился, вместо магических значений теперь используется символ 'X' и разделитель-двоеточие. При этом некоторые функции, такие как маскировка под легитимные процессы, ссылки на файлы в /dev/shm, манипуляции с временными метками, самоудаление бинарного файла и очистка переменных окружения, в новом образце не обнаружены. Код обратной оболочки остался, но, возможно, упростился до одного варианта. Важно отметить, что вывод ИИ требует проверки: например, утверждение о наличии шифрования RC4 в новом образце оказалось галлюцинацией модели.

Таким образом, в 2025 году разработчики угроз на основе eBPF продолжают совершенствовать свои методы для уклонения от обнаружения. Семейство Symbiote развивает тактики сокрытия трафика через перескок портов и использование UDP, а BPFDoor добавляет поддержку IPv6, маскируясь под обычный DNS-трафик. Эти тенденции подчеркивают необходимость для специалистов по безопасности углублять знания о внутренней работе ядра Linux и методах анализа низкоуровневого кода, а также критически оценивать вспомогательные инструменты, включая искусственный интеллект. Борьба с этими сложными и целенаправленными угрозами требует постоянной бдительности и адаптации защитных механизмов.

Индикаторы компрометации

SHA256

  • 82ed617816453eba2d755642e3efebfcbd19705ac626f6bc8ed238f4fc111bb0
  • dcfbd5054bb6ea61b8f5a352a482e0cf7e8c5545bd88915d3e67f7ba01c2b3d4
Комментарии: 0