Бразильский исследователь информационной безопасности Матеус Алвес опубликовал значительное обновление для своего проекта Singularity - открытого руткита для ядра Linux. Разрабатываемый под лицензией MIT, этот инструмент наглядно демонстрирует продвинутые техники, позволяющие злоумышленнику после получения root-доступа скрыть своё присутствие в системе и сохранить возможность для скрытного выполнения привилегированных операций. По замыслу автора, Singularity должен стать полезным ресурсом для специалистов по защите, которые занимаются тестированием и разработкой средств обнаружения и противодействия подобным угрозам.
Проект оформлен в виде загружаемого модуля ядра, совместимого с современными версиями Linux 6.x. Его ключевая особенность - использование встроенного механизма трассировки ftrace для незаметного перехвата системных вызовов. Этот подход позволяет избежать модификации таблицы системных вызовов или самих функций ядра, что традиционно используется многими руткитами и легко детектируется. Функциональность инструмента модульна и включает в себя комплекс возможностей по сокрытию: руткит может маскировать свои процессы, связанные с ними файлы, сетевые соединения и собственную активность в системе.
Особый интерес для экспертов представляют реализованные в Singularity методы противодействия специализированным сканерам и системам мониторинга. Руткит способен скрывать свою активность от инструментов, использующих расширенную систему фильтрации пакетов eBPF, включая популярные Falco и Tracee. Кроме того, он может снимать блокировки eBPF, препятствовать загрузке других модулей ядра и обходить проверки целостности, выполняемые модулем LKRG (Linux Kernel Runtime Guard). Также заявлена способность противостоять анализу через подсистему асинхронного ввода-вывода io_uring.
Для обеспечения обратной связи с атакующим в руткит встроен обратный командный интерпретатор (reverse shell), использующий для скрытной передачи данных ICMP-пакеты. Этот канал связи маскируется от сетевых анализаторов и может обходить политики принудительного контроля доступа SELinux. Дополнительные триггеры позволяют управлять поведением руткита. Например, отправка специального сигнала скрывает процесс из дерева каталогов /proc и вывод утилит вроде ps, а установка определённой переменной окружения приводит к повышению привилегий.
Система сокрытия распространяется и на сетевой уровень. Singularity может маскировать заданные соединения не только в стандартных таблицах, но и в более глубоких структурах ядра, таких как /proc/net/nf_conntrack, что делает их невидимыми для утилит netstat, ss и даже для сниферов вроде tcpdump. Для удаления следов компрометации реализованы обработчики, очищающие логи аудита, сообщения ядра и системного журнала. Кроме того, проект включает фильтры, затрудняющие анализ памяти с помощью таких инструментов, как Volatility, и препятствующие прямому чтению данных с блочных устройств.
По словам автора, Singularity фокусируется на современных ядрах версии 6.x и делает ставку на максимальную скрытность. В актуальной сборке собраны техники, которые обычно приходится искать по отдельным концептуальным доказательствам. Отдельно отмечаются функции, повышающие операционную стойкость руткита в реальных условиях: фильтрация сообщений аудита, сокрытие следов в специальных файловых системах ядра и обход принудительного режима SELinux.
Активность в репозитории проекта указывает на его непрерывное развитие. Так, в январе 2026 года были внесены правки в модуль обхода LKRG и обновлена документация по поддерживаемым версиям ядра. При этом официальных релизов на GitHub не публикуется, все изменения сразу попадают в основную ветку разработки.
Важно подчеркнуть, что подобные открытые проекты служат ценным инструментом для защитников лишь тогда, когда используются в контролируемых лабораторных условиях. Их цель - моделирование сложных угроз, проверка эффективности телеметрии и совершенствование систем обнаружения. Публикация и развитие таких инструментов, как Singularity, в очередной раз демонстрируют, что традиционный мониторинг на уровне пользовательского пространства и стандартные правила корреляции событий могут оказаться бесполезными, если злоумышленник уже получил привилегированный доступ к ядру операционной системы.