Контакты
Подписка
МЕНЮ
Контакты
Подписка

Руткиты: поймай систему на лжи

Руткиты: поймай систему на лжи

В рубрику "Оборудование и технологии" | К списку рубрик  |  К списку авторов  |  К списку публикаций

Руткиты: поймай систему на лжи

Александр Кульков,
генеральный директор компании "ИнфоОборона"

В настоящее время организации периодически сталкиваются со злоумышленными действиями третьих лиц, в результате которых взламываются компьютеры сети. Но зачастую хакеры не ограничиваются одной атакой на компьютер — они могут установить постоянный контроль над его действиями, снять данные, хранящиеся в системе, или установить наблюдение за работой сети в целом. Для этого злоумышленники оставляют в системе так называемые лазейки (своего рода секретные пути для получения доступа), чтобы в любой момент времени иметь возможность для подключения к компьютеру-жертве. Чтобы лазейка не была обнаружена пользователем, хакер применяет специальную технологию для сокрытия работы вредоносного программного обеспечения или своего присутствия в системе — руткит (rootkit).

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

Виды руткитов

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

Хороший низкоуровневый руткит невозможно обнаружить средствами операционной системы, такими как "Диспетчер задач", утилита просмотра открытых соединений Netstat, утилита просмотра и редактирования ключей реестра regedit и т.п. Поэтому необходимо прибегать к специализированным программам, предназначенным для выявления аномальной активности в системе.

Технологии руткитов

Примером использования технологии руткитов может являться сокрытие работы определенного вредоносного процесса в системе от штатных программ, перечисленных выше, предназначенных для просмотра списка запущенных в данный момент времени приложений. Иными словами, пользователь даже не будет подозревать, что на его компьютере функционирует приложение, которое, например, незаметно копирует конфиденциальную информацию или отслеживает нажатые клавиши на клавиатуре с целью съема паролей к Интернет-кошелькам, почтовым ящикам, icq и прочим программам. Такой руткит может быть разработан как для режима пользователя, так и для режима ядра. Рассмотрим второй вариант.

Как правило, для сокрытия процесса используется модуль ядра (драйвер, представляющий собой руткит), который модифицирует ряд функций в ядре операционной системы, предназначенных для получения информации о запущенных в данный момент приложениях. В результате пользователь получает неверную информацию о протекающих процессах без указания вредоносного приложения.

Поймай систему на "лжи"

Для обнаружения такой аномальной активности в системе необходимо поймать саму систему на "лжи". Что это значит? Для начала нам необходимо получить список процессов различными документированными и недокументированными способами (вызовами различных функций операционной системы) и затем сравнить их между собой. К такой технологии прибегают многие специализированные программы. В случае если списки различаются, это означает, что некоторый процесс (или процессы) скрыто протекает в системе. Дело в том, что руткит не может контролировать абсолютно все способы получения перечня запущенных приложений в системе (хотя теоретически такое, конечно, возможно, но практически трудноосуществимо). Поэтому его обнаружение становится возможным описанным способом.

В связи с этим для снижения вероятности попадания вредоносного программного обеспечения в систему или компьютер пользователя можно посоветовать ряд действий:
  • регулярно устанавливать критически важные обновления для операционной системы;
  • иметь установленный антивирус, желательно с механизмом проактивной защиты, базы вирусов которого регулярно обновляются (не менее 1 раза в день);
  • иметь установленный и грамотно настроенный межсетевой экран;
  • иметь несколько специализированных утилит для поиска аномальной активности в системе (кейлоггеров, руткитов и т.п.) и регулярно проверять с помощью данных программ свой компьютер;
  • отключать неиспользуемые в системе сервисы.

Опубликовано: Журнал "Information Security/ Информационная безопасность" #5, 2008

Приобрести этот номер или подписаться

Статьи про теме