Руткиты
Руткит — это тип вредоносного программного обеспечения, обеспечивающий скрытое и привилегированное присутствие в компьютерной системе. Основная задача руткита — маскировать своё существование и действия других вредоносных программ (например, кейлоггеров, бэкдоров) от средств обнаружения операционной системы, антивирусного программного обеспечения и пользователя. Термин происходит от английского «root» (в контексте UNIX-систем — учётная запись суперпользователя) и «kit» (набор инструментов), что указывает на изначальную цель: получение прав root и скрытие следов взлома.
История
Концепция руткитов возникла в среде UNIX-систем в начале 1990-х годов. Первые известные руткиты были наборами утилит, заменявших стандартные системные команды (например, ps, ls, netstat, who) на модифицированные версии. Эти версии скрывали определённые процессы, файлы и сетевые соединения, связанные с действиями злоумышленника.
В 1996 году был опубликован первый руткит для Linux, который стал широко известен в сообществе. С развитием Windows-систем руткиты адаптировались к этой платформе. В 2005 году руткит от компании Sony BMG (XCP — Extended Copy Protection) вызвал широкий общественный резонанс. Он устанавливался на аудиодиски для защиты от копирования, но при этом скрывал свои файлы и процессы, что делало его классическим руткитом. Этот инцидент привлёк внимание к проблеме руткитов на уровне массового пользователя.
В 2010-х годах руткиты стали более сложными, перейдя на уровень ядра операционной системы и загрузчика. Появились руткиты для прошивок (firmware rootkits), которые заражали BIOS/UEFI, видеокарты или жёсткие диски, что делало их обнаружение и удаление чрезвычайно сложным.
Классификация
Руткиты классифицируются по уровню, на котором они внедряются в систему, и по способу маскировки.
По уровню внедрения
- Руткиты уровня пользователя (user-mode rootkits): Работают на уровне приложений, перехватывая системные вызовы или подменяя библиотеки (DLL, shared objects). Они относительно просты в реализации, но легче обнаруживаются антивирусными средствами.
- Руткиты уровня ядра (kernel-mode rootkits): Внедряются непосредственно в ядро операционной системы. Они имеют максимальные привилегии и могут перехватывать любые системные вызовы, скрывая процессы, файлы, драйверы и сетевые соединения. Обнаружение таких руткитов требует специальных методов, например, загрузки с чистого носителя.
- Руткиты загрузчика (bootkit): Заражают главную загрузочную запись (MBR) или загрузчик ОС (например, Windows Boot Manager). Они запускаются до загрузки ядра, что позволяет им перехватывать управление на самом раннем этапе. Примеры: TDL-4, Rovnix.
- Руткиты прошивки (firmware rootkits): Внедряются в прошивку устройств — BIOS, UEFI, RAID-контроллеров, сетевых карт или жёстких дисков. Они сохраняются даже после переустановки операционной системы или замены жёсткого диска. Примеры: LoJax (заражал UEFI), Vault 7 (по данным утечек ЦРУ).
По способу маскировки
- Руткиты подмены (replacement rootkits): Заменяют системные файлы (например, исполняемые файлы или библиотеки) на вредоносные версии.
- Руткиты перехвата (hook-based rootkits): Модифицируют таблицы системных вызовов (SSDT, IDT) или точки входа в функции, чтобы перехватывать запросы и возвращать искажённые данные.
- Руткиты прямого доступа (DKOM — Direct Kernel Object Manipulation): Изменяют структуры данных ядра напрямую, например, удаляя процесс из списка активных процессов. Это позволяет скрывать процессы без перехвата вызовов.
Устройство и принцип работы
Основной принцип работы руткита — нарушение цепочки доверия в операционной системе. Обычно ОС доверяет собственным функциям и данным. Руткит изменяет эти функции или данные так, чтобы они возвращали ложную информацию.
Этапы заражения
- Проникновение: Руткит попадает в систему через уязвимости, фишинговые письма, заражённые носители или как часть другого вредоносного ПО.
- Повышение привилегий: Руткит получает максимальные права (root или SYSTEM) через эксплуатацию уязвимости или использование учётной записи администратора.
- Внедрение: Руткит внедряется в выбранный уровень системы (пользовательский, ядро, загрузчик).
- Маскировка: После внедрения руткит начинает скрывать свои файлы, процессы, ключи реестра и сетевые соединения. Он также может скрывать другие вредоносные программы, которые он загрузил.
- Поддержание присутствия: Руткит обеспечивает своё сохранение после перезагрузки (например, через автозагрузку, заражение MBR или прошивки).
Механизмы маскировки
- Скрытие процессов: Процесс руткита удаляется из списка активных процессов, который видит диспетчер задач.
- Скрытие файлов: Файлы руткита не отображаются в проводнике или при использовании команды
dir. - Скрытие ключей реестра: Записи в реестре, связанные с руткитом, не видны стандартным редактором реестра.
- Скрытие сетевых соединений: Соединения, установленные руткитом, не отображаются в утилитах
netstatилиTCPView. - Скрытие драйверов: Драйвер руткита не отображается в списке загруженных драйверов.
Применение
Руткиты используются в различных целях, как злонамеренных, так и легитимных.
Злонамеренное применение
- Скрытие вредоносной активности: Руткиты являются основным инструментом для скрытия других вредоносных программ, таких как бэкдоры, кейлоггеры, майнеры криптовалют и программы-шпионы.
- Кража данных: Руткиты могут перехватывать ввод с клавиатуры, пароли, файлы и сетевой трафик, оставаясь незамеченными.
- Создание ботнетов: Заражённые руткитами компьютеры могут быть объединены в ботнет для проведения DDoS-атак, рассылки спама или других целей.
- Шпионаж: Спецслужбы и киберпреступные группы используют руткиты для долгосрочного скрытого наблюдения за целями. Примеры: Stuxnet (содержал компоненты руткита), Flame.
- Цифровое управление правами (DRM): Как в случае с Sony BMG, руткиты могут использоваться для защиты авторских прав, хотя это вызывает серьёзные этические и юридические проблемы.
Легитимное применение
- Защита от несанкционированного доступа: Некоторые антивирусные программы и системы защиты от копирования используют руткит-подобные технологии для защиты своих собственных файлов от удаления или модификации.
- Форензика и расследования: Специалисты по компьютерной криминалистике могут использовать руткиты для скрытого сбора данных с компьютера подозреваемого.
- Системы управления конечными точками (EDR): Некоторые решения для корпоративной безопасности используют руткит-подобные методы для мониторинга системы на низком уровне.
Обнаружение и удаление
Обнаружение руткитов — сложная задача, требующая специальных методов.
Методы обнаружения
- Сигнатурный анализ: Поиск известных сигнатур руткитов в файлах, процессах и реестре. Эффективен только против известных образцов.
- Поведенческий анализ: Мониторинг аномального поведения системы, например, попыток скрыть процессы или изменить системные вызовы.
- Сравнение на уровне ядра: Сравнение данных, полученных от ядра (например, списка процессов), с данными, полученными на более низком уровне (например, через прямое чтение памяти). Расхождение указывает на наличие руткита.
- Загрузка с чистого носителя: Загрузка системы с заведомо чистого LiveCD или USB-накопителя позволяет обойти руткит, работающий в заражённой ОС, и провести сканирование диска.
- Анализ прошивки: Специализированные утилиты для проверки целостности BIOS/UEFI и других прошивок.
Удаление
Удаление руткитов часто затруднено. Надёжный метод — полная переустановка операционной системы с форматированием диска. В случае руткитов прошивки может потребоваться перепрошивка BIOS/UEFI или замена аппаратного обеспечения. Специализированные антивирусные утилиты (например, Kaspersky TDSSKiller, GMER, Malwarebytes Anti-Rootkit) могут удалять некоторые типы руткитов, но не гарантируют 100% успеха.
Интересные факты
- Первый известный руткит для Windows, NTRootkit, был создан в 1999 году.
- Руткит TDL-4 (также известный как TDSS) был одним из самых сложных и распространённых, заражая MBR и используя шифрование для своего кода.
- В 2017 году компания Kaspersky Lab обнаружила руткит LoJax, который заражал UEFI материнских плат, что делало его практически неуязвимым для традиционных методов удаления.
- Руткиты часто используются в целях государственного кибершпионажа. Например, группировка Equation Group (связываемая с АНБ США) использовала руткиты для прошивки жёстких дисков.
Критика и этические аспекты
Использование руткит-технологий в легитимных целях (например, DRM) вызывает критику, так как они нарушают контроль пользователя над его собственной системой и могут быть использованы злоумышленниками. Инцидент с Sony BMG привёл к судебным искам и законодательным изменениям в ряде стран. В России распространение и использование руткитов для несанкционированного доступа к компьютерной информации преследуется по закону (ст. 272 УК РФ «Неправомерный доступ к компьютерной информации»).
Источники
- Хоглунд, Г., Батлер, Дж. «Руткиты: внедрение в ядро Windows» (Rootkits: Subverting the Windows Kernel).
- Блау, М. «Руткиты: что это такое и как с ними бороться» (Rootkits: What They Are and How to Deal With Them).
- Материалы конференций по компьютерной безопасности (Black Hat, DEF CON).
- Документация антивирусных компаний (Kaspersky Lab, Symantec, McAfee).
- Статья «Rootkit» в англоязычной Википедии.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →