Что такое руткит и буткит: виды, как работают, обнаружение
Проверено экспертной редакцией SecRadar · по первоисточникам ФСТЭК / ФСБ / Банка России
Руткит (rootkit) — вредоносное ПО или набор инструментов, которые получают привилегированный доступ к системе и скрывают своё присутствие, а часто и присутствие других угроз, от пользователя и от средств защиты. Руткиты делят по уровню, на котором они закрепляются: пользовательский (user-mode), уровень ядра ОС (kernel-mode) и уровень загрузки — буткит (bootkit), который заражает загрузчик, MBR или UEFI и запускается ещё до старта операционной системы и антивируса.
Материал разбирает виды, принцип работы и то, какими средствами такую скрытую угрозу вообще можно обнаружить.
Кратко
- Что это
- Руткит — вредоносная программа, которая получает высокие привилегии в системе и прячет себя и другое вредоносное ПО от пользователя, антивируса и штатного мониторинга.
- Буткит
- Буткит (bootkit) — руткит уровня загрузки: заражает MBR, загрузчик или прошивку UEFI и стартует раньше операционной системы и любого защитного ПО.
- Уровни
- User-mode (уровень приложений) → kernel-mode (уровень ядра ОС) → bootkit (уровень загрузки) — каждый следующий уровень глубже и труднее для обнаружения обычными средствами.
- Принцип работы
- Перехватывает системные вызовы и подменяет данные, которые ОС отдаёт остальной системе, — так руткит скрывает процессы, файлы, ключи реестра и сетевые соединения.
- Обнаружение
- Обычный антивирус часто не видит руткит уровня ядра и буткит — нужны поведенческий анализ (EDR), проверка целостности, сканирование с чистого загрузочного носителя.
- Защита от буткитов
- Средства доверенной загрузки (СДЗ) проверяют целостность загрузчика и ОС ещё до старта — это прямое противодействие именно буткитам.
Что такое руткит
Руткит (rootkit) — вредоносная программа или набор инструментов, которые получают привилегированный доступ к операционной системе и скрывают своё присутствие, а часто и присутствие другого вредоносного ПО, от пользователя, от антивируса и от штатных средств мониторинга, обеспечивая атакующему скрытный долговременный контроль над заражённым устройством. Название происходит от «root» (административные права в Unix-подобных системах) и «kit» (набор инструментов).
Ключевое отличие руткита от большинства других типов вредоносного ПО — не то, что он делает, а то, что он скрывает. Сам по себе руткит редко ворует данные или шифрует файлы напрямую; чаще его задача — замаскировать другую вредоносную программу (бэкдор, шпионское ПО, клиент ботнета), которую вместе с ним установил троян или иной вектор заражения.
Именно поэтому руткит в общей классификации вредоносного ПО стоит особняком — это категория по способу сокрытия, а не по цели атаки.
Виды руткитов: user-mode, kernel-mode и буткит
Руткиты различаются по уровню, на котором они закрепляются в системе, — от пространства обычных приложений до кода, который запускается ещё до операционной системы, — и чем глубже уровень, тем труднее руткит обнаружить и тем выше привилегии он получает.
↔ таблицу можно прокрутить вбок
| Уровень | Где закрепляется | Сложность обнаружения |
|---|---|---|
| User-mode пользовательский | В пространстве обычных приложений: подменяет системные библиотеки (DLL) или перехватывает вызовы API | Средняя — виден поведенческому анализу и части антивирусов |
| Kernel-mode уровень ядра | Встраивается в ядро ОС как драйвер, подменяет данные, которые ядро отдаёт остальной системе | Высокая — нужны специализированные инструменты или EDR |
| Bootkit буткит, уровень загрузки | Заражает MBR, загрузчик ОС или прошивку UEFI, стартует до ОС и до антивируса | Очень высокая — требует проверки целостности до старта ОС (доверенная загрузка) |
User-mode руткит пользовательский
Работает в тех же привилегиях, что и обычные приложения, но подменяет системные библиотеки или перехватывает вызовы API, чтобы фильтровать то, что видят программы уровнем выше — например, скрывать собственный процесс из списка задач диспетчера.
Технически самый простой для реализации и потому самый распространённый вариант; поведенческий анализ и часть современных антивирусов способны его заметить по аномальным перехватам вызовов.
Kernel-mode руткит уровень ядра
Встраивается непосредственно в ядро операционной системы — обычно под видом драйвера — и получает те же привилегии, что и сама ОС. Это позволяет ему подменять данные не для одной программы, а для системы в целом: список процессов, файлов, сетевых соединений будет «лгать» одинаково всем, кто его спрашивает, включая штатный антивирус.
Обнаружение требует инструментов, которые не полагаются на API самой заражённой ОС, — специализированных сканеров целостности или поведенческого анализа на уровне EDR.
Буткит bootkit
Заражает код, который выполняется раньше операционной системы: загрузочную запись диска (MBR), сам загрузчик или прошивку UEFI. Получает контроль над машиной до того, как стартует ОС и любое защитное ПО — а значит, теоретически может вмешаться в их запуск ещё до появления шанса себя проверить.
Поскольку буткит живёт вне обычного системного раздела, простое переустановление ОС его не всегда удаляет. Основной способ противодействия — средства доверенной загрузки (СДЗ), которые проверяют целостность загрузчика и ключевых компонентов ещё до передачи управления ОС.
Как работает руткит и чем он опасен
Руткит скрывает вредоносную активность, перехватывая системные вызовы и подменяя данные, которые операционная система выдаёт другим программам, — так он заставляет систему «лгать» самой себе о том, что в ней на самом деле происходит.
- Перехват системных вызовов (API/syscall hooking). Руткит встраивается между приложением и ОС (или между ОС и ядром) и фильтрует ответы: например, из списка процессов вычёркивает строку с собственным именем, прежде чем список вообще дойдёт до диспетчера задач.
- Сокрытие объектов. Тем же способом маскируются файлы, ключи реестра, сетевые соединения и записи в журналах — руткиты уровня ядра способны делать это настолько глубоко, что заражённая система показывает заведомо ложную картину собственного состояния любому инструменту, который спрашивает её саму.
- Закрепление (persistence). Руткит нацелен на то, чтобы пережить перезагрузку и оставаться активным как можно дольше без обнаружения — для буткита это буквально означает переживать даже переустановку операционной системы, если заражена загрузочная область или прошивка, а не системный раздел.
- Доставка другой нагрузки. Руткит редко приходит один — чаще он устанавливается вместе с бэкдором, шпионским ПО или клиентом ботнета и служит именно их «щитом» от обнаружения, а не самостоятельной угрозой кражи данных.
Главная опасность руткита — не в том, что он делает, а в том, сколько времени у атакующего есть на то, чтобы это делать незаметно. Заражение может оставаться необнаруженным месяцами, потому что штатные средства мониторинга буквально не видят того, что руткит решил скрыть; это же затрудняет и расследование инцидента — индикаторы компрометации, которые ищет команда реагирования, сама заражённая система может подделывать.
Как обнаружить и удалить руткит
Штатным средствам заражённой системы в этом вопросе доверять нельзя — руткит способен подделать именно тот вывод, который они показывают, поэтому обнаружение требует инструментов и методов, которые не полагаются на саму потенциально заражённую ОС.
Антивирус / EPP
Эффективен против известных руткитов пользовательского уровня по сигнатуре и эвристике, но руткит уровня ядра и буткит запускаются на более привилегированном уровне или раньше самого антивируса и способны скрыться от его проверки.
EDR / XDR
Поведенческий и ретроспективный анализ вместо сигнатур — ищет не «известный вредонос», а аномалию в поведении процессов и вызовов, поэтому остаётся основным способом найти то, что руткит специально спроектирован скрывать от привычных проверок.
Доверенная загрузка (СДЗ)
Проверяет целостность загрузчика и ключевых компонентов ОС до того, как им передаётся управление, и блокирует старт при обнаружении изменений — прямое противодействие именно тому раннему этапу, который атакует буткит.
Дополнительные методы, которые применяют вместе с перечисленными классами СЗИ:
- Проверка целостности файлов и памяти против заведомо чистого эталона — способ заметить расхождение, даже если сама заражённая система «утверждает», что всё в порядке.
- Сканирование с чистого загрузочного носителя. Заражённая ОС не запускается вовсе, поэтому не может скрыть ни один объект от внешнего сканера — надёжный, хотя и не самый быстрый способ проверки.
- Специализированные антируткит-утилиты, которые сравнивают то, что видит система «изнутри», с тем, что видно «снаружи» — на уровне диска или памяти напрямую.
Частые вопросы
Что такое руткит простыми словами?
Что такое буткит и чем он отличается от руткита?
Как обнаружить руткит на компьютере?
Может ли антивирус удалить руткит?
Как средства доверенной загрузки (СДЗ) защищают от буткитов?
Какие есть известные примеры руткитов и буткитов?
Хаб «Словарь» на SecRadar
Виды вредоносного ПО, индикаторы компрометации, MITRE ATT&CK — независимый разбор терминов и концептов ИБ без привязки к вендору.