Угрозы eBPF: обнаружен новый руткит LinkPro, скрывающий бэкдоры через магические пакеты

information security

Технология eBPF (extended Berkeley Packet Filter), изначально созданная для расширенных возможностей наблюдения, безопасности и сетевого взаимодействия в Linux, всё чаще становится инструментом для создания скрытых бэкдоров. Недобросовестные акторы научились использовать её возможности выполнения кода в контексте ядра с оркестрацией из пользовательского пространства для обхода традиционных средств мониторинга. На смену таким известным образцам вредоносного программного обеспечения, как BPFDoor, Symbiote и J-magic, пришёл более сложный LinkPro, обнаруженный экспертами Synacktiv CSIRT в ходе расследования инцидента на инфраструктуре, размещённой в AWS.

Описание

Компрометация началась с уязвимого сервера Jenkins, который использовался как точка первоначального доступа. Через него злоумышленник получил возможность взаимодействовать с конвейером развёртывания в среде Amazon EKS. Был развёрнут специально созданный образ Docker с меткой kvlnt/vv, содержащий скрытую нагрузку. Образ включал в себя скрипт, запускающий SSH-сервис, программу vnt для организации VPN-доступа и загрузчик vGet, написанный на Rust. Именно vGet отвечал за получение из S3-бакета зашифрованной полезной нагрузки - бэкдора vShell 4.9.3, который выполнялся непосредственно в памяти, не оставляя следов на диске.

Особенностью атаки стала последующая установка на узлы Kubernetes и производственные серверы нового руткита LinkPro. Это вредоносное ПО, разработанное на Golang, использует eBPF для обеспечения скрытности и реализации пассивного режима работы. LinkPro функционирует в двух режимах: активном, когда он сам инициирует соединение с сервером управления, и пассивном, при котором активация канала управления происходит только после получения специального «магического пакета».

Для сокрытия своей активности LinkPro использует два eBPF-модуля. Модуль «Hide» внедряет программы типа Tracepoint и Kretprobe, которые перехватывают системные вызовы getdents и sys_bpf. Это позволяет скрывать файлы руткита в файловой системе и маскировать его eBPF-программы от инструментов вроде bpftool. Если загрузка модуля «Hide» невозможна, руткит применяет резервный метод, загружая вредоносную библиотеку libld.so через механизм /etc/ld.so.preload, которая аналогичным образом подменяет результаты работы функций libc.

Модуль «Knock» отвечает за пассивный режим работы. Он состоит из программ XDP и Traffic Control, которые отслеживают сетевой трафик. Программа xdp_ingress, работающая на входе, ожидает TCP-пакет с определённым размером окна, который служит «магическим пакетом». Обнаружив его, система активируется на час для IP-адреса отправителя. Все последующие пакеты с этого адреса перенаправляются на внутренний порт прослушивания LinkPro. Программа tc_egress, работающая на исходящем трафике, маскирует ответы, подменяя порт отправителя, что значительно затрудняет корреляцию событий в журналах сетевых экранов.

Для обеспечения устойчивости LinkPro маскируется под системный сервис systemd-resolved, копирует свой исполняемый файл в скрытую директорию и регистрирует соответствующую unit-службу. После установки руткит предоставляет оператору широкий набор команд, включая выполнение произвольных команд оболочки, управление файлами, организацию туннелей SOCKS5 и создание интерактивных терминалов.

Анализ LinkPro демонстрирует растущую изощрённость атак с применением eBPF. Руткит сочетает в себе несколько уровней скрытности, адаптивен к конфигурации системы и использует передовые техники для уклонения от обнаружения. Хотя формальная атрибуция атаки не установлена, её цели носят финансовый характер. Появление LinkPro служит серьёзным сигналом для специалистов по безопасности о необходимости усиления мониторинга не только пользовательского пространства, но и активности eBPF в ядре Linux.

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

IPv4

18.199.101.111

SHA256

0da5a7d302ca5bc15341f9350a130ce46e18b7f06ca0ecf4a1c37b4029667dbb

1368f3a8a8254feea14af7dc928af6847cab8fcceec4f21e0166843a75e81964

364c680f0cab651bb119aa1cd82fefda9384853b1e8f467bcad91c9bdef097d3

9fc55dd37ec38990bb27ea2bc18dff0bb2d16ad7aa562ab35a6b63453c397075

b11a1aa2809708101b0e2067bd40549fac4880522f7086eb15b71bfb322ff5e7

b8c8f9888a8764df73442ea78393fe12464e160d840c0e7e573f5d9ea226e164

caa4e64ff25466e482192d4b437bd397159e4c7e22990751d2a4fc18a6d95ee2

d5b2202b7308b25bda8e106552dafb8b6e739ca62287ee33ec77abe4016e698b

Yara

Комментарии: 0