Открыть сервис

Руткит

Руткит (от англ. rootkit, root — «корень», kit — «набор») — это набор программных средств (вредоносное ПО), предназначенный для скрытого внедрения в систему и маскировки присутствия злоумышленника или другого вредоносного кода. Основная функция руткита — обеспечение привилегированного доступа к операционной системе (обычно уровня администратора или ядра) и сокрытие собственных файлов, процессов, сетевых соединений и записей в реестре от стандартных средств мониторинга, антивирусов и пользователя.

История

Термин «руткит» возник в среде Unix-систем в начале 1990-х годов. Первоначально так назывались наборы утилит, которые заменяли стандартные системные команды (например, ps, ls, netstat, who) на модифицированные версии, не показывающие процессы и файлы злоумышленника. Эти ранние руткиты не скрывали своё присутствие на уровне ядра, а лишь маскировали активность на уровне пользовательских приложений.

С развитием операционных систем и средств защиты эволюционировали и руткиты. В середине 2000-х годов появились руткиты, работающие на уровне ядра (kernel-mode rootkits), которые внедрялись непосредственно в ядро ОС, перехватывая системные вызовы. Примером массового использования руткита стал скандал с защитой от копирования на компакт-дисках Sony BMG (2005 год), когда руткит XCP устанавливался на компьютеры пользователей без их ведома, скрывая свои файлы и создавая уязвимости для других вредоносных программ.

В 2010-х годах руткиты стали ещё более сложными, научившись внедряться в загрузчик (bootkits) и прошивки устройств (firmware rootkits), что позволяло им переживать переустановку операционной системы.

Классификация

Руткиты классифицируются по уровню внедрения в систему и по способу маскировки.

По уровню внедрения

  1. Пользовательские руткиты (user-mode rootkits). Работают на уровне приложений. Заменяют или перехватывают системные библиотеки (например, DLL в Windows) или утилиты командной строки. Наиболее просты в реализации, но и наиболее заметны для современных антивирусов.
  2. Руткиты уровня ядра (kernel-mode rootkits). Внедряются в ядро операционной системы, перехватывая системные вызовы (syscalls) или изменяя структуры данных ядра. Обладают максимальными привилегиями и могут скрывать практически любые объекты системы. Обнаружение таких руткитов требует специальных методов, например, сравнения списков процессов на уровне ядра и на уровне пользователя.
  3. Загрузочные руткиты (bootkits). Заражают главную загрузочную запись (MBR) или таблицу разделов GUID (GPT), а также загрузчик операционной системы (например, bootmgr в Windows). Загружаются до запуска ОС, что позволяет им обходить многие средства защиты и переживать переустановку системы.
  4. Руткиты прошивки (firmware rootkits). Внедряются в прошивку аппаратных компонентов: BIOS, UEFI, контроллеры жёстких дисков, сетевые карты, видеокарты. Наиболее сложны в создании и обнаружении, так как работают на уровне, недоступном для операционной системы. Примером является руткит LoJax, заражавший UEFI.

По способу маскировки

  1. Руткиты, заменяющие системные файлы. Классический подход, при котором легитимные системные утилиты заменяются на их вредоносные копии.
  2. Руткиты, перехватывающие системные вызовы. Используют технику «перехвата» (hooking) для изменения потока выполнения системных функций.
  3. Руткиты, модифицирующие структуры данных ядра. Изменяют внутренние таблицы ядра (например, таблицу дескрипторов объектов) для сокрытия своих объектов.
  4. Руткиты, использующие виртуализацию (Virtual Machine-Based Rootkits, VMBRs). Самый продвинутый тип, который создаёт гипервизор и запускает операционную систему в виртуальной машине. Гипервизор контролирует все ресурсы ОС, оставаясь незаметным для неё. Пример — руткит SubVirt, разработанный исследователями.

Устройство и принцип работы

Основной принцип работы руткита заключается в нарушении доверия между компонентами операционной системы. ОС доверяет ядру, а ядро — драйверам и системным вызовам. Руткит внедряется в эту цепочку доверия и изменяет данные, возвращаемые системой.

Например, когда пользователь открывает диспетчер задач, система запрашивает у ядра список процессов. Ядро, в свою очередь, перебирает структуры данных, описывающие процессы. Если руткит уровня ядра внедрён, он перехватывает этот запрос и удаляет из списка свои процессы. В результате пользователь не видит вредоносную программу в диспетчере задач, хотя она работает.

Для заражения руткиты используют различные векторы:

  • Уязвимости в операционной системе или драйверах.
  • Социальная инженерия (пользователь сам запускает вредоносный файл).
  • Внедрение через другое вредоносное ПО (трояны, черви).
  • Физический доступ к устройству.

Применение

Руткиты используются в различных целях, как злонамеренных, так и (в редких случаях) легитимных.

Злонамеренное применение

  • Скрытие вредоносной активности. Руткиты являются компонентом многих сложных вредоносных программ (банковских троянов, программ-шпионов, бэкдоров), позволяя им оставаться незамеченными как можно дольше.
  • Кража данных. Руткиты могут перехватывать нажатия клавиш (кейлоггеры), снимки экрана, сетевой трафик, пароли и криптовалютные кошельки.
  • Создание ботнетов. Заражённые компьютеры могут быть объединены в сеть (ботнет) для проведения DDoS-атак, рассылки спама или майнинга криптовалют.
  • Шпионаж и кибервойна. Государственные хакерские группы (например, APT-группировки) активно используют руткиты для долгосрочного скрытого присутствия в системах критической инфраструктуры, правительственных сетях и оборонных предприятиях.

Легитимное применение

  • Защита от копирования (DRM). Некоторые производители ПО (как в случае с Sony BMG) использовали руткиты для защиты от нелегального копирования, что вызвало широкую критику и юридические последствия.
  • Системы безопасности. Некоторые антивирусы и программы для родительского контроля могут использовать технологии, схожие с руткитами, для мониторинга системы на низком уровне.
  • Судебная экспертиза. Правоохранительные органы могут использовать руткиты для скрытого сбора доказательств на компьютере подозреваемого.

Обнаружение и защита

Обнаружение руткитов — сложная задача, так как они активно противодействуют попыткам их найти. Традиционные антивирусы, работающие на уровне пользователя, часто неэффективны против руткитов уровня ядра или прошивки.

Методы обнаружения

  1. Поведенческий анализ. Антивирусные программы отслеживают подозрительное поведение: попытки скрыть процессы, изменение системных файлов, внедрение в ядро.
  2. Сравнение уровней (Cross-View Detection). Сравнивается список объектов (файлов, процессов, ключей реестра), полученный на высоком уровне (через API) и на низком уровне (через прямое чтение структур ядра). Расхождение указывает на наличие руткита.
  3. Сканирование на наличие перехватов (Hook Detection). Проверка целостности системных таблиц (например, SSDT — System Service Descriptor Table) и кода ядра на предмет несанкционированных изменений.
  4. Загрузка с доверенного носителя. Загрузка компьютера с Live CD или USB, содержащего чистую ОС и антивирус, позволяет обойти руткит, работающий на заражённом жёстком диске.
  5. Анализ дампа памяти. Специалисты по кибербезопасности анализируют дамп оперативной памяти заражённой системы на предмет аномалий.

Меры защиты

  • Регулярное обновление операционной системы и программного обеспечения.
  • Использование современных антивирусных решений с функциями защиты от руткитов (Rootkit Scanner).
  • Включение Secure Boot (Безопасная загрузка) в UEFI для защиты от буткитов.
  • Ограничение прав пользователей (не работа с правами администратора без необходимости).
  • Осторожность при загрузке и запуске файлов из ненадёжных источников.
  • Использование многофакторной аутентификации.

Известные примеры

  • Sony BMG XCP (2005). Руткит, устанавливавшийся вместе с аудиодисками для защиты от копирования. Вызвал массовый скандал из-за нарушения приватности и создания уязвимостей.
  • Stuxnet (2010). Сложный компьютерный червь, атаковавший иранские центрифуги по обогащению урана. Использовал руткиты для скрытия своего присутствия и саботажа промышленного оборудования.
  • TDSS (TDL-4, Alureon). Один из самых известных руткитов уровня ядра для Windows, создавший мощный ботнет. Отличался высокой устойчивостью к удалению.
  • LoJax (2018). Первый известный руткит, заражающий UEFI. Использовался группировкой Sednit (APT28) для атак на правительственные и военные организации в Европе.

Критика и этические аспекты

Использование руткитов в легитимных целях (например, в DRM) вызывает серьёзную критику со стороны сообщества специалистов по информационной безопасности. Установка любого ПО, скрывающего своё присутствие и манипулирующего работой системы без ведома пользователя, нарушает принцип прозрачности и может быть расценена как нарушение законодательства о защите персональных данных и компьютерной безопасности. В России подобные действия могут быть квалифицированы по ст. 272 УК РФ («Неправомерный доступ к компьютерной информации»).

Источники

  • Хониг, Э. (2013). Rootkits: Subverting the Windows Kernel. Addison-Wesley Professional.
  • Блау, М. (2005). «Sony BMG под огнём критики за использование руткита». PC World.
  • Лаборатория Касперского. (2018). «LoJax: первый UEFI-руткит, используемый в реальных атаках».
  • Microsoft. (2020). Защита от руткитов. Документация по безопасности Windows.
  • Национальный институт стандартов и технологий (NIST). (2014). Guide to Rootkit Detection and Removal.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →