`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Rootkit – болезнь и лекарство

0 
 

Хотя современные злоумышленники все чаще прибегают к помощи скриптовых языков и простейших приемов социальной инженерии, настоящие хакеры нередко изобретают и действительно изощренные способы проникновения в наши компьютеры. Соответственно, сисадмины и специалисты по безопасности должны уделять их «творчеству» самое пристальное внимание…

Rootkit – болезнь и лекарство
Первое издание, специально посвященное теме rootkit-угроз, увидит свет 22 июля текущего года

Возможно, многие пользователи и даже технические специалисты еще не слышали о rootkit-угрозах, поэтому для начала давайте разберемся с самим термином «rootkit». Происходит он из мира Unix и имеет к хакингу самое непосредственное отношение. Дело в том, что некогда взломщики Unix-подобных операционных систем действовали следующим образом: получив права суперпользователя (root), чтобы скрыть следы своего пребывания от подлинного администратора и оставить для себя «потайной ход» (backdoor), они применяли «троянизированный» набор (kit) привычных инструментальных средств, таких как login, ps, ls, netstat, passwd и пр. Это и есть rootkit в понимании Unix. Сегодня, однако, данным термином принято описывать любой исполняемый код, посредством которого вредоносные программы (вирусы, шпионы и др.) пытаются скрыть свое присутствие от системных утилит и специализированных защитных средств. Как нередко бывает, идеи, перенесенные с Unix на Windows, не только прекрасно приживаются на новой платформе, но и получают дополнительный толчок к развитию. Поэтому в последнее время о rootkit-угрозах все чаще говорят в связи именно с Windows.

Теория

В настоящее время rootkit-программы классифицируют по двум основным признакам: времени существования и режиму функционирования. Так, к примеру, их подразделяют на перманентные (persistent) и временные (memory-based). Первые – наиболее распространенные – активируются при каждой загрузке компьютера или регистрации пользователя. Для этого они хранят свой код в реестре либо структурах файловой системы и применяют какой-либо способ автоматического исполнения. Вторые встречаются гораздо реже – они не сохраняют свой код и ликвидируются после перезагрузки ОС.

В зависимости от режима функционирования rootkit-программы делят на пользовательские (user-mode rootkits, UMR) и ядерные (kernel-mode rootkits, KMR). Первыми UMR для среды Windows были такие же «троянцы», как и в классическом Unix rootkit: netstat, finger, find, dir. Не так давно появились UMR, скрывающие свое присутствие посредством перехвата и модификации ряда системных функций ОС, обеспечивающих работу с файловой системой. Благодаря этому они могут предоставлять недостоверную информацию любым программам, потенциально способным выявить их присутствие. К примеру, такие UMR подменяют вызовы FindFirstFileExW/FindNextFileW, которые применяются для просмотра каталогов большинством прикладных программ, и даже антивирусными сканерами. Таким образом действует rootkit Vanquish, умеющий скрывать файлы, каталоги, процессы, записи реестра, системные сервисы.

Наибольшую же опасность представляют KMR, поскольку они перехватывают и модифицируют системные функции ядра ОС, скажем, низкоуровневую подпрограмму ввода/вывода ZwQuery, на которую так или иначе опираются практически все программы, работающие с файлами. Аналогично можно контролировать списки процессов и записи реестра, однако это требует от взломщика серьезных знаний и высокой программистской квалификации, так как для модификации кода ядра необходимо использовать драйверы устройств и системные сервисы Windows.

На данный момент самым известным KMR последней волны считается Hacker Defender (hxdef). Он позволяет скрывать файлы, процессы, системные сервисы, драйверы устройств, записи реестра, открытые порты, жульничать со свободным дисковым пространством. Hacker Defender устанавливает «потайные ходы», скрытно регистрируется как системный сервис и внедряет свой драйвер. Кроме того, он полиморфен, для шифрования его исполняемых файлов обычно используется довольно изощренное приложение Morphine.

И практика

С простейшими rootkit-программами, которые не пытаются скрываться, проблем, в общем, нет – с ними легко справляются обычные антивирусы, их можно «вычислить», просмотрев список процессов на инфицированной системе, проследив за исходящими связями, проверив недавно установленные программы.

Если же rootkit подменяет системные вызовы и код ядра, ситуация существенно усложняется. Одним из методов обнаружения таких программ вручную является следующий: необходимо загрузить подозрительную систему в Safe Mode и постараться найти все данные, которые до того были скрыты. Однако он не только трудоемок, но и не всегда приемлем, если речь идет, скажем, о действующем сервере. Другой способ состоит в исследовании жестких дисков подозрительной машины в гарантированно «чистом» компьютере. Как вариант можно с помощью WinDiff сравнить результаты выполнения команд

dir /s /b /ah

и

dir /s /b /a-h

полученные первый раз на подозреваемой системе и второй – после перезагрузки с компакт-диска.

Однако есть и специализированные инструменты для борьбы с rootkit-угрозами. Мы рассмотрим три таких продукта: коммерческий UnHackMe компании Greatis Software стоимостью $19,95, бесплатный RootkitRevealer от SysInternals и существующий пока только на бумаге Strider GhostBuster от самой Microsoft.

По сути, принцип работы всех трех программ одинаков и основан на простом наблюдении: чтобы быть перманентным, rootkit должен храниться на диске, а чтобы скрывать свое присутствие – лгать программам, исполняющимся в инфицированной им среде. Как мы говорили выше, чаще всего для этого используется модификация некоторых функций API, обеспечивающих доступ к файловой системе и скрывающих действительное состояние накопителя. Соответственно, достаточно сравнить результаты сканирования на самом высоком уровне (API) и на как можно более низком (необработанное содержимое тома, «улей» реестра на диске, непосредственный перебор списка активных процессов и других структур данных ядра).

Rootkit – болезнь и лекарство
RootkitRevealer обнаружил присутствие Hacker Defender – выявлены скрытые файлы и ключи реестра

Таким образом, все три программы успешно обнаруживают большинство перманентных rootkit-модулей, информация о которых опубликована на специализированном Web-сайте www.rootkit.com. Только UnHackMe умеет останавливать соответствующие процессы и выполнять полное удаление rootkit после перезагрузки системы. RootkitRevealer такой возможности не предоставляет, а лишь указывает пользователю на подозрительные симптомы – разбираться с ними придется самостоятельно. Однако отметим, что сам факт наличия скрытых файлов еще не свидетельствует о присутствии в системе маскирующего программного кода. Скажем, достаточно не закрыть Internet Explorer во время сканирования – и RootkitRevealer обязательно обратит ваше внимание на содержимое кэша браузера, хотя оно наверняка не представляет никакой опасности. Подобных примеров на самом деле можно привести довольно много, поэтому нужно усвоить, что к таким приемам нередко прибегают и вполне благонамеренные программы вроде «Антивируса Касперского». В первую очередь следует обращать внимание на файлы с длинными именами, состоящими из на первый взгляд случайных наборов букв и цифр. При каких-либо сомнениях рекомендуется срочно обновить антивирусное ПО и выполнить тщательную проверку.

Разработчики Microsoft планируют представить свою программу в трех вариантах: WinPE GhostBuster, Inside-the-box GhostBuster и User-Mode GhostBuster – в настоящий момент нас интересуют именно предложенные концепции, которые могут быть реализованы и в стороннем ПО. Так, если первый из них должен функционировать фактически аналогично UnHackMe и RootkitRevealer, то второй будет использовать более универсальный механизм: вначале вычисляются контрольные суммы всех файлов, сканируются все ключи реестра, связанные с автозагрузкой, результаты сохраняются на жестком диске; затем выполняется перезагрузка системы с компакт-диска с WinPE и все процедуры повторяются; на последнем этапе, как обычно, происходит сличение двух полученных наборов данных. В свою очередь User-Mode GhostBuster призван выявлять скрытые записи реестра и процессы путем сравнения результатов сканирования через Win32 API и прерывание INT 2E.

Заключение

Чтобы не оказаться обнаруженным подобными инструментами, rootkit должен либо узнавать их и не пытаться подставлять им фиктивную информацию, либо каким-то образом уметь корректировать результаты всех сканирований (что довольно сложно, а в некоторых случаях кажется и вовсе невероятным), либо внедряться не в ОС, а в BIOS или EEPROM-чип видеокарты (что также стоит рассматривать лишь как гипотетическую возможность), либо отказаться от каких-то своих принципиальных особенностей.

Тем не менее благополучно все выглядит лишь в теории. Увы, пока ни одно из доступных решений не может претендовать на звание панацеи. Ведь хакерская мысль также не стоит на месте, появляются все новые способы проникновения в системы и маскировки. Поэтому гарантированным способом обезвреживания подозрительной системы по-прежнему можно считать лишь старый добрый «format c:» и полную переустановку необходимого ПО с оригинальных носителей.

0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT