(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

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

Источник: itspecial

Одной из задач для специалиста по IT-безопасности является своевременный поиск и выявление троянских программ на компьютерах пользователей. В этой статье мы рассмотрим оригинальный способ выявления и удаления RING0 троянов без использования дорогостоящих программных комплексов и привлечения сторонних специалистов.

Теневая IT-коммерция

По данным экспертов, в 2006 году теневой доход, полученный в результате незаконной деятельности в сфере IT, превысил аналогичные показатели в сфере сбыта наркотиков. Основными подвигами этой отрасли является незаконная реклама в виде рассылки спама и атака определенных сетевых ресурсов. Поскольку для решения этих задач требуются большие вычислительные мощности, хакеры придумали, каким образом можно нелегально брать в аренду чужие компьютеры. Для этого создаются так называемые бот-сети (трудно представить, что всего 4-6 лет назад о них знали только избранные). Эта сеть состоит из серверов и клиентов (впрочем, и те и другие представляют собой пользовательские компьютеры, пораженные соответствующими зловредами).

Технологическая" цепочка

  1. Заказчик платит деньги за аренду сети под рассылку спама или атаки на сетевой ресурс;
  2. Хакер устанавливает на серверы задачу;
  3. Каждый клиент периодически соединяется с сервером, чтобы получить новую работу или обновления трояна.

Обзор

Чтобы эффективно бороться со зловредным программным обеспечением, нужно немного представлять основные принципы их работы.

Все зловреды делятся на две большие группы - это ring3 и ring0 трояны, в виде программы или драйвера соответственно.

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

В настоящее время мы являемся свидетелями постоянной борьбы между хакерами, открывающими дырки, и производителями ОС или анти-троянского ПО.

Сейчас существует огромное количество анти-троянов (как платных, так и бесплатных), но "воз и ныне там". Логично предположить, что рано или поздно должен был найтись достаточно универсальный и надежный способ, и такой способ нашелся!

Алгоритм действия

Попадая в систему, зловредный программный продукт прежде всего должен обеспечить свою загрузку при рестарте системы. Для этого он создает запись в специальном разделе реестра - [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services].

Каждая запись имеет следующий формат:

DisplayName
Экранное имя, отображаемое служебными приложениями на экране. Этот параметр необязателен. При его отсутствии именем считается имя подраздела.

ErrorControl
Определяет, каким образом реагировать на ошибки.

ImagePath
Путь к исполняемому файлу драйвера или службы.

Для драйверов не обязательно указывать значение этого параметра, но тогда файл драйвера должен находиться в каталоге \%SystemRoot%\System32\Drivers.

Start
Указывает, как нужно запускать драйвер.
Значение 2 - драйвер запускается автоматически на этапе загрузки системы.
Значение 3 - драйвер запускается по требованию.

Type
Определяет тип службы.
Значение 1 обозначает драйвер.

Разумеется, троян, так наследивший при установке, обязательно должен сокрыть факт своего присутствия, спрятав запись реестра и файл драйвера на диске. Для реализации этого он перехватывает функции ядра и при каждом вызове этих функций эмулирует отсутствие скрываемых объектов. В современном представлении трояна, технологии сокрытия имеют один из самых важных аспектов. Эти технологии носят название rootkit. Обнаружив действие руткита, можно со 100% гарантией говорить и о наличии в системе трояна. Стереотипом обнаружения руткитов в анти-троянском ПО является проверка целостности кода ядра системы и легальности стека вызовов функций. Мы же пойдем другим путем! Мы будем получать информацию раздела реестра описания драйверов с помощью операционной системы и с помощью утилит, которые не используют функции ОС для работы реестра, а потом будем сравнивать эту информацию. Если она различается - мы нашли руткит!

Практика

Как мы уже говорили, самое слабое место трояна - это загрузка. Троян обязан прописать себя в реестре в разделе драйверов, иначе он просто не загрузится при следующем старте системы. Именно здесь мы и будем его ловить, сравнивая два дампа реестра.

Первый дамп мы сделаем стандартными средствами ОС, а точнее, с помощью встроенного в Windows редактора реестра regedit.

Второй дамп мы сделаем утилитой, которая читает реестр непосредственно из файла, при этом не обращаясь к функциям ОС. Если какой-то драйвер скрывает свое присутствие, при сравнении вылезут расхождения, а каждое расхождение - это скрытый драйвер.

Технология состоит из следующих этапов:

1. С помощью встроенного в Windows редактора реестра regedit мы экспортируем раздел реестра [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services]

2. Копируем файл реестра (%windir%\system32\config\system). Поскольку все файлы реестра заблокированы и недоступны для каких бы то ни было действий, мы будем использовать утилиту RegCopy.exe, которая считывает файл реестра по кластерам, обращаясь к диску напрямую, минуя стандартные функции ОС.

3. С помощью утилиты RegView мы открываем этот файл и делаем еще один экспорт этой ветки реестра.

4. Сравниваем два файла. Поскольку сравнивать эти файлы вручную очень сложно, я написал утилиту для их сравнения - RegistryCompare.exe. Чтобы воспользоваться ей, дампы п1 и п3 нужно назвать orig.reg и raw.reg соответственно, и лежать они должны в папке с исполнимым файлом программы. Сравнивать эти файлы вручную крайне сложно, я написал утилиту для их сравнения - RegistryCompare.exe

Практиковаться мы будем на рутките Unreal.a (многие трояны используют его модификации для сокрытия в реестре и на диске).

Итак, запускаем руткит.

Далее копируем файл реестра, запустив RegCopy.exe. Теперь с помощью RegView делаем экспорт нужной ветки, нажав F2 и не забыв назвать файл именем raw.reg. Остается сделать то же самое с помощью regedit и запустить RegistryCompare.exe.

Поиск завершен

Вот так, произведя несколько несложных действий, мы можем свести на нет могучие усилия высококвалифицированных rootkit-developer'ов. Весьма вероятно, что со временем программисты могут многое придумать для обхода этого метода. Тем не менее, и наши ответные действия не ограничены представленным алгоритмом - например, пункты 2-4 можно выполнить на другой ОС (переставив HDD на другой ПК) или загрузиться с параллельно установленной ОС, а 1 пункт выполнить на системе с трояном. Проверяя реестр на другой ОС, нам теперь не надо копировать его с помощью специальных утилит, поскольку файл не заблокирован - т.е. 2 пункт выполняем вручную.

МНЕНИЕ РЕДАКЦИИ

Лозовский Александр, редактор рубрики "БЕЗОПАСНОСТЬ"

Читателю, знакомому с ситуацией на антивирусном рынке образца середины 90-х годов этот способ наверняка напомнит в чем-то аналогичную ситуацию с принципом работы антивирусного ревизора ADInf:

Так как стелс-вирусы перехватывают обращения к дисковой подсистеме компьютера и скрывают присутствие вируса, ADinf считывает информацию с диска, минуя операционную систему. Для чтения диска ADinf обращается непосредственно к соответствующей функции BIOS, записанной в ПЗУ компьютера. В этом случае вирус не может перехватить обращение к диску, и ADinf получает достоверную информацию.

Как видите, прошло уже более 10 лет, и зловредное программное обеспечение из неких активно скрывающихся и противодействующих обнаружению "произведений искусства", показывающих мастер-класс своего создателя, превратилось в мощное орудие для незаконного заработка денег, а принципы их поиска остались в чем-то похожими.

Мнение эксперта

Deeoni$, программист в сфере IT-безопасности

На данный момент нет средств, дающих 100% гарантию от проникновения руткитов в систему. Метод, описанный в данной статье, конечно, позволяет обнаружить большинство модулей, загружаемых в ядро ОС, но, прибегнув к небольшой хитрости, загрузка драйвера уже не будет прописана в ключе HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services. Например, можно прописать программу-загрузчик драйвера в ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, которой будет создавать нужный ключ для подгрузки драйвера, загружать его, а потом сразу же удалять этот ключ. Драйвер в свою очередь уже будет скрывать параметр в ключе Run. Есть еще более радикальный метод - зашифровать файлы реестра и расшифровывать их только при обращении к ним "доверенных" приложений. Данный трюк исключает возможность доступа к реестру из другой ОС.

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

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции ERwin »
Обсудить материал в конференции Symantec »
Написать редактору 
 Рекомендовать » Дата публикации: 09.04.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
erwin Data Modeler Navigator Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
Symantec Endpoint Encryption, License, 1-24 Devices
Symantec Endpoint Protection Small Business Edition, Initial Hybrid Subscription License with Support, 1-24 Devices 1 YR
erwin Data Modeler Standard Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
erwin Data Modeler Workgroup Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
CASE-технологии
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Новые материалы
Вопросы и ответы по MS SQL Server
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Слот Биг Бэнг (6)
Большой взрыв как правящая теория сотворения мира. Теперь вы можете поиграть слот Big Bang в...
 
Отличается ли ДрифтКазино от беттинга? (57)
Друзья, давно заметил, что на Дрифте уже несколько месяцев во всю рекламируется и предлагается...
 
Подскажите лучшее онлайн казино (8)
Вот нашёл интересную игровую площадку, и это онлайн казино Вавада. Может кто что подсказать по...
 
Помощь по MS Access (345)
Доброе время суток. Случайно оказался на этом сайте, искал статьи по OLAP. Вижу, что...
 
Рабочее зеркало БК Мостбет - как найти? (3)
Узнайте обо всех особенностях по поиску рабочего зеркала БК Мостбет из нашей статьи...
 
 
 



    
rambler's top100 Rambler's Top100