Скрытая угроза безопасности - руткиты

Представьте себе ситуацию: ваш антивирус информирует о том, что нашёл подозрительный файл. Вы открываете папку, в которой он расположен, и пытаетесь его найти для каких-нибудь своих целей (например, для анализа на VirusTotal.com), но почему-то безуспешно, поскольку такого файла там нет. Тогда вы предпринимаете попытку найти его с помощью стандартного поиска в надежде на то, что просто не видите его из-за кучи каких-то файлов, но результат опять нулевой, хотя антивирус по-прежнему утверждает о существовании вируса. "Может, мой антивирус глючный, надо бы другой установить!" - подумаете вы и сильно ошибётесь. Да, спорить не буду, антивирусы тоже ошибаются, но в данном случае ваш страж пытался проинформировать о существовании в системе вредоносной программы, которая носит гордое название "руткит". Давайте попробуем разобраться подробнее, что же это такое.


Немного истории

Rootkit - программа или набор программ для скрытия следов присутствия злоумышленника или вредоносной программы в системе. Первоначально данный термин пришёл к нам из мира UNIX систем, где так называлась группа утилит, принадлежащих самой операционной системе и которые изменялись хакером для того, чтобы получить неограниченный доступ к компьютеру, причём так, чтобы не быть замеченным системным администратором. Сегодня наиболее распространены операционные системы MS Windows, но понятие остаётся прежним. Руткит Windows - это программа (драйвер/служба/динамическая библиотека), скрывающая некоторые элементы (файлы, процессы, записи в реестре, адреса ячеек памяти, сетевые подключения и др.) от других программ или операционной системы. Первые наиболее полноценные rootkit для Windows появились где-то в 1999-2000 гг. Основоположником этого направления считается Грег Хогланд (Greg Hoglund), автор NT Rootkit. Однако широкое распространение данный вид вредоносных программ получил гораздо позже, примерно в 2005 году. В основном, они шли вместе с разнообразными троянами в виде драйверов или библиотек и использовались для скрытия и защиты зловреда. Самое интересное заключается в том, что большинство антивирусных вендеров только в 2005-2006 году начали добавлять в свои продукты алгоритмы обнаружения и противодействия руткитам, но даже на сегодняшний день многие из них до сих пор так и не написали нормального анти-руткит движка.


Принцип работы

Что касается принципа работы руткитов, то он построен, в основном, на перехвате системных функций и их модификации. В основном, это низкоуровневые API функции. Например, для перехвата интернет-трафика очень часто перехватывают функции HttpOpenRequestA и HttpSendRequestA из библиотеки wininet.dll. Технологию реализации руткитов можно поделить на несколько разновидностей:

  1. Работающие в режиме пользователя (UserMode). Данный тип руткитов основан на перехвате функций библиотек пользовательского режима. Пользовательский режим - наименее привилегированный режим, поддерживаемый линейкой NT; он не имеет прямого доступа к оборудованию и у него ограниченный доступ к памяти.
  2. Работающие в режиме ядра (KernelMode). Этот тип основан на драйвере Kernel Mode, который осуществляет перехват функций ядра. Режим ядра - привилегированный режим. Те части NT, которые исполняются в режиме ядра, имеют прямой доступ ко всей аппаратуре и памяти.
  3. Работающие в режиме ядра и в UserMode. Данный тип включает оба вида перехвата, рассмотренных выше.

Наиболее распространёнными являются rootkit уровня пользователя. Типичным примером может послужить известный руткит Hacker Defender, который, в основном, работает именно в этом режиме. По принципу действия руткиты классифицируют следующим образом:

  1. Изменяющие алгоритмы выполнения системных функций. Проще говоря, при вызове функции происходит прерывание, которому в качестве параметра передаётся индекс необходимой функции. Далее по данному индексу находится адрес соответствующего вызова API уровня ядра. Он хранится в структуре System Services Dispatch Table (SSDT). Эта таблица загружается в память операционной системы при старте микроядра ntoskrnl.exe. Так вот, некоторые rootkit модифицируют адрес, содержащийся в SSDT, таким образом, чтобы он указывал на адрес обработчика, созданного им.
  2. Изменяющие системные структуры данных (Direct Kernel Object Manipulation - DKOM). Данный способ просто модифицирует вызванную функцию.

Любой руткит может быть использован как в положительных, так и в отрицательных целях: защита интеллектуальных данных, защита программ от вирусов, защита системных файлов от ошибочного удаления и внедрение backdoor-программ, шпионского ПО, вирусов или троянов, соответственно. Так, например, компания Sony использовала руткит для защиты некоторых файлов на своих CD-дисках.


Технологии борьбы

Борьба с руткитами - дело непростое, где в качестве оружия используются разнообразные технологии обнаружения, такие, как:

  1. Поиск перехватов путём сравнения адреса функции с диапазоном адресов, занимаемых в памяти ntoskrnl.exe, ftdisk.sys, disk.sys, ntfs.sys и других. Данный алгоритм применяется, в частности, в утилите Rootkit Hook Analyzer, созданной специально для борьбы с руткитами.
  2. Сигнатурный поиск. Данный тип поиска применяется ещё со времён первых антивирусов и представляет собой поиск цепочки байт в проверяемом файле, присущих вредоносной программе.
  3. Эвристический или поведенческий анализатор. Эта технология основывается на поиске отклонений в настройках системы, реестре Windows, подозрительном поведении процессов и модулей и т.п.
  4. Контроль целостности. Этот тип поиска основан на сравнении контрольной суммы (MD5 или что-либо другое) или цифровой подписи разнообразных системных файлов с базой, содержащей контрольную сумму оригинальных файлов. В случае несовпадения программа делает вывод, что файл был модифицирован или вовсе заменён.

По отдельности эти технологии не дадут полной гарантии обнаружения угрозы, поэтому лучше всего использовать всё сразу. Но и это не даст 100% детектирования руткитов, поскольку каждый день придумывают всё новые и новые способы обмана антивирусного ПО и операционной системы. А для борьбы с уже известными видами данного "вируса" можно использовать специализированные программы и комплексные антивирусные пакеты.


Профилактика и лечение руткитов

В заключение статьи хотелось бы рассказать о существующих на сегодняшний день программах, предназначенных для нейтрализации руткитов. Их, конечно же, больше, чем здесь указано, но рассмотреть все в одной статье просто невозможно. Эти замечательные утилиты помогут избавить ПК от многих видов руткитов и будут полезны как простым пользователям, так и системным администраторам. Описания продуктов подготовлены разработчиками, поэтому я бы не хотел их изменять, но всё же буду добавлять свои комментарии.

Panda Anti-Rootkit

Утилита для поиска и удаления скрытых вредоносных модулей (руткитов). Программа сканирует запущенные процессы, загруженные драйверы, системные файлы, реестр, а также альтернативные потоки передачи данных файловой системы NTFS на наличие руткитов. Кроме обычного быстрого сканирования файлов, в утилите присутствует возможность проведения глубокой проверки системы на наличие руткитов, при которой происходит сканирование всех загружаемых компонентов операционной системы во время её запуска. Такой подход помогает выявить самые трудно определяемые руткиты. Panda Anti-Rootkit имеет красивый и простой интерфейс, благодаря чему им приятно и удобно пользоваться. Программа также может работать из командной строки.

Комментарий: замечательная утилита, хотя я и не очень люблю продукты компании Panda, но этот у них получился, вроде бы, неплохим.

RootkitRevealer

RootkitRevealer - утилита для локального обнаружения Rootkits в операционной системе Windows. Утилита RootkitRevealer проверяет содержимое диска посредством непосредственного доступа к структуре MFT (NTFS) и FAT (FAT16,32) и сравнивает их с результатами, полученными с помощью Windows API. Также утилита анализирует содержимое системного реестра на данных из файлов, содержащих реестр, и сравнивает их с информацией, полученной с помощью API.

Комментарий: программка известного, изначально независимого разработчика Марка Руссиновича. Довольно неплохо справляется со своей работой и выполняет все функции, заложенные разработчиком, добросовестно.

AVZ

Бесплатная, быстро работающая антивирусная утилита. Основное назначение - обнаружение и удаление SpyWare и AdWare модулей, а также Dialer (Trojan.Dialer), троянских программ, BackDoor модулей, сетевых и почтовых червей, TrojanSpy, TrojanDownloader, TrojanDropper, Rootkit. Поиск RootKit идёт без применения сигнатур на основании исследования базовых системных библиотек на предмет перехвата их функций. AVZ может не только обнаруживать RootKit, но и производить корректную блокировку работы UserMode RootKit для своего процесса и KernelMode RootKit на уровне системы. Противодействие RootKit распространяется на все сервисные функции AVZ, в результате сканер AVZ может обнаруживать маскируемые процессы, система поиска в реестре "видит" маскируемые ключи и т.п. Анти-руткит снабжён анализатором, который проводит обнаружение процессов и сервисов, маскируемых RootKit. Одной из главных, на мой взгляд, особенностей системы противодействия RootKit является её работоспособность в Win9X (распространённое мнение об отсутствии RootKit, работающих на платформе Win9X глубоко ошибочно - известны сотни троянских программ, перехватывающих API функции для маскировки своего присутствия, для искажения работы API функций или слежения за их использованием). Другой особенностью является универсальная система обнаружения и блокирования KernelMode RootKit, работоспособная под Windows NT, Windows 2000 pro/server, XP, XP SP1, XP SP2, Windows 2003 Server, Windows 2003 Server SP1.

Комментарий: программа из класса Must have. Очень информативный протокол, много полезных функций, отличный анти-руткит движок.

F-Secure BlackLight

F-Secure BlackLight - программа для обнаружения и безопасного удаления руткитов. Программа позволяет обнаруживать практически все виды вредоносных руткитов, при этом оставаясь удобной в использовании даже для неопытных пользователей. F-Secure BlackLight способна работать в фоновом режиме, обеспечивая максимальную защиту для компьютеров.

Комментарий: неплохая программа, иногда использую. Конечно, не сравнится с AVZ, но всё же она часто обновляется разработчиком, поэтому функционал растёт.

Разобравшись с тем, что же такое руткит, как он работает и как с ним бороться, я надеюсь, вы сможете обезопасить себя от подобных угроз.

Никита БУЛАЙ,
q@sa-sec.org,
SASecurity group

Версия для печатиВерсия для печати

Номер: 

49 за 2008 год

Рубрика: 

Защита информации
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Страницы

Аватар пользователя mike
>какой анттивирус лучше?...

Самый хороший антивирус -- это Линукс.

Аватар пользователя Al
Mike, вся РБ и ещё полмира знают, что у тебя для инета стоит убунта. Всё. Мы это уже знаем. Что постить это везде?
Аватар пользователя Логик
mike (old student) > Испугался? А я вот взял и запустил.

Либо смелый, либо ... авантюрист. имхо.

Страницы