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

Представьте себе ситуацию: ваш антивирус информирует о том, что нашёл подозрительный файл. Вы открываете папку, в которой он расположен, и пытаетесь его найти для каких-нибудь своих целей (например, для анализа на 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, давай без холивара. Я на винде много лет, и чувствую себя в полной безопасности.
Аватар пользователя Инкогнито
Помогите новичку определиться с выбором антивируса! И до Линукса может когда-нибудьочередб дойдет, но сейчасстоит на компе Виндовс ХР и на мой взгляд без антивируса никак не обойтись. Поделитесь опытом.
Аватар пользователя Эдуард
Я думаю, что или McAfee, или VBA
Аватар пользователя Al
Меня ни разу не подводил NOD32 4-я версия уже.
Аватар пользователя Инкогнито
А Аргументы за/против? А то вот меня никогда не подводил Касперский, а после "антивируса НОД" пришлось ереустанавливать систему!
Аватар пользователя Al
Вот и аргумент - ни разу не пропустил вирус и ни разу не переустанавливал свою систему из-за вируса. Или антивируса. Почему пришлось переустанавливать ось и почему ты считаешь, что это из-за антивируса. И какая ось, насколько она была оригинальной. Какая версия Нода, насколько лицензионный.
Аватар пользователя Al
А вот касперский, 6-й, вешал систему (процессор) по умолчанию на 100%.
Аватар пользователя Инкогнито
ХР - закончился ключ на Касперского и поставил НОД. через пару дней вирусами все кишело! после лечения CureIT система стала вести сея неадекватно. Снес и переставил. Сейчас почти год опять стоит КИС и никаких проблем с вирусами!

АI - понты "лицензия-нелицензия" тут не прокатывают! У вас если что - сразу виноват нелицензионный софт LOL!

Аватар пользователя Логик
>а какой антивирус на ваш взгляд самый оптимальный?

Любой из списка вашего. Можно начать с первого, например. - До тех пор, пока новый вирус не поразит ваш комп. - Далее выбираем следующий из списка вашего... и так по кругу.

Алгоритм прост.

А спасения, вообще, от вирусов нет. В реале.

Страницы