46542 (Руткиты), страница 2

2016-07-31СтудИзба

Описание файла

Документ из архива "Руткиты", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "46542"

Текст 2 страницы из документа "46542"

Рис. 6 Метод сочетающий Перехват функций LoadLibrary и GetProcAddress и модификацию таблицы импорта

4.6 Модификация программного кода API функции.

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

Рис.7. Модификация программного кода API функции.

Чаще всего вмешательство в машинный код перехватываемых функций минимально. В начале функции размещается не более 2-3 машинных команд, передающих управление основной функции-перехватчику. Для выполнения вызова модифицированных функций RootKit должен сохранить исходный машинный код для каждой модифицированной им функции (естественно, сохраняется не весь машинный код функции, а измененные при перехвате байты). Именно такая методика перехвата реализована в широко известном HackerDefender и библиотеке AFX Rootkit (www.rootkit.com).

4.7. Модификация библиотек DLL на диске

Данная методика состоит в том, что системная библиотека модифицируется на диске. Методы модификации аналогичны описанным выше, только изменения производятся не в памяти, а на диске. Подобная методика не получила широкого распространения.

5 Перехват функций в режиме ядра (kernel mode)

Рис.8 Перехват функций в режиме ядра

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

Основное взаимодействие с ядром производится через ntdll.dll, большинство функций которой являются переходниками, обращающимся к ядру через прерывание INT 2Eh (следует заметить, что прикладной программе ничто не мешает напрямую вызывать INT 2Eh). Дальнейшее обращение к функциям ядра основана на структуре, именуемой KeServiceDescriptorTable (или сокращенно SDT), расположенной в ntoskrnl.exe. SDT – это таблица, содержащая адреса точек входа сервисов ядра NT. Описание функций и методик перехвата можно найти в книге Свена Шрайбера «Недокументированные возможности Windows 2000», там же приведена схема взаимодействия, послужившая прототипом для приведенной здесь схемы. Упрощенно можно сказать, что для перехвата функций необходимо написать драйвер, который произведет модификацию таблицы SDT. Перед модификацией драйверу необходимо сохранить адреса перехватываемых функций и записать в таблицу SDT адреса своих обработчиков. Данный метод чем-то напоминает перехват прерываний в MSDOS или описанную выше методику 2.

Этот метод часто называют перехватом Native API и естественно он работает только в NT (и соответственно W2K, XP, W2003). Следует отметить, что перехват Native API осуществляют не только руткиты – существует масса полезных программ, перехватывающих функции при помощи правки SDT – в качестве примера могут служить популярная утилита RegMon от SysInternals или программа Process Guard.

Следует отметить, что описанный метод является наиболее простым, но далеко не единственным. Существует еще ряд способов, в частности создание драйвера-фильтра. Драйвер-фильтр может применяться как для решения задач мониторинга (классический пример – утилита FileMon от SysInternals), так и для активного вмешательства в работу системы. В частности, драйвер-фильтр может применяться для маскировки файлов и папок на диске. Принцип работы такого драйвера основан на манипуляциях с пакетами запроса ввода-вывода (IRP).

6 Rootkit-технологии для UNIX

Ситуация в UNIX очень напоминает ситуацию в мире Windows. Атакующий устанавливает rootkit на компьютер после того, как был получен привилегированный доступ — root. Права root, необходимые для инсталляции подавляющего большинства rootkit, можно получить с помощью использования известных уязвимостей, если злоумышленник имеет доступ в систему с правами обычного пользователя. В этом случае он может использовать локальный эксплойт или утилиты для взлома базы с паролями. Если злоумышленник не имеет соответствующих прав, то для проникновения в систему он может использовать удаленный эксплойт или, например, сниффер для перехвата паролей. Подобный перехват паролей возможен для целого ряда служб (ftp, telnet и др.) по причине того, что они осуществляют передачу паролей по сети в открытом виде.

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

Также как и в Windows, в UNIX имеются и rootkit уровня приложений, и rootkit уровня ядра.

Рассмотрим уровень приложений. Как правило, подобные rootkit состоят из «троянизированных» версий обычных программ, скрывающих присутствие своих компонент в системе, и бэкдора, предоставляющего скрытый доступ в систему. Примерами rootkit уровня приложений являются lkr, trOn, ark и др.

Продемонстрируем работу rootkit уровня приложений на примере tr0n. Для сокрытия своего присутствия в системе данный rootkit выполняет целый ряд действий: в момент инсталляции он останавливает syslogd-демон, затем подменяет своими троянскими версиями следующие системные утилиты du, find, ifconfig, login, ls, netstat, ps, top, sz. Кроме того, в систему добавляется троянская версия sshd-демона. В завершение, в фоновом режиме запускается sniffer, в inetd.conf добавляется запуск telnetd-, rsh-, finger-демонов, перезапускается inetd и снова стартует syslogd.

Обычно tr0n располагается в /usr/src/.puta, но благодаря установленной ранее троянской версии утилиты ls, этот каталог невидим.

Перейдем к rootkit уровня ядра. Rootkit этого типа предоставляют все возможности предыдущего типа, но на более низком уровне — rootkit уровня приложений должны модифицировать отдельные бинарные файлы, rootkit уровня ядра должны изменить только ядро, что значительно увеличивает «качество» сокрытия информации.

Существует несколько способов внедрения rootkit в ядро системы UNIX:

Использование LKM. Ядро linux, как и ядра многих других ОС, способны загружать модули (или драйверы устройств) «на лету», что позволяет злоумышленнику изменить системные вызовы ядра и тем самым выдавать некорректную информацию (например, исправленный список файлов). Использование подобного приема можно предотвратить, если скомпилировать монолитное ядро без поддержки LKM, но такое решение имеет существенный недостаток — необходимость включения в ядро всех нужных драйверов.

Запись в /dev/kmem, который предоставляет доступ к занятой ядром области памяти. Запись в /dev/kmem переписывает ядро «на лету». Таким образом, для изменения ядра необходимо лишь найти нужное место в памяти, но это решаемая проблема. Существует исправление, запрещающее записывать в /dev/kmem напрямую. Также это можно сделать через mmap.

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

7 Методики обнаружения RootKit в системе

Рассмотрим базовые методики поиска RootKit:

Сравнение двух «снимков» системы (например, списка файлов на диске). Первый снимок делается на проверяемой системе, второй – после загрузки с CD или подключения исследуемого HDD к заведомо чистому компьютеру. Подобная методика гарантированно позволит обнаружить любой RootKit, который маскирует на диске свои файлы.

Сравнение данных, возвращаемых API функциями разного уровня и (или) получаемых низкоуровневыми методами (например, прямым чтением диска и анализом файлов реестра). Данная методика не требует перезагрузки исследуемого ПК и реализована в бесплатной утилите RootkitRevealer от SysInternals (http://www.sysinternals.com). Другим примером может случить утилита KLister (www.rootkit.com) для построения списка запущенных процессов, которая состоит из драйвера и консольной программы, использующей этот драйвер;

Анализ в памяти функций основных библиотек на предмет наличия изменений их машинного кода. Данный метод наиболее эффективен для борьбы с RootKit в пользовательском режиме. Подобная методика позволяет не только обнаружить перехват функций, но и восстановить нормальную работу поврежденных функций. Кроме того, сравнение «снимков» системы, полученных до и после восстановления функций API во многих случаях позволяет обнаружить маскирующиеся процессы, сервисы и драйверы. Данная методика не требует перезагрузки и один из вариантов реализован в моей утилите AVZ;

Анализ и восстановление ServiceDescriptorTable. Данная методика позволяет бороться с рядом перехватчиков, работающих в режиме ядра (собственно, с перехватчиками, основанными на правке SDT). Практическая реализация – утилита SDTRestore (http://www.security.org.sg/code/sdtrestore.html). Однако восстановление SDT окажет воздействие на работу всей системы и может привести к очень неприятным последствиям (в простейшем случае – полное зависание системы с выходом на BSoD, в худшем – непредсказуемое нарушение нормальной работы приложений, перехватывающих NativeAPI для реализации своих функций).

8 Заключение

Описанные выше базовые методики перехвата функций поясняют основные принципы работы RootKit. Однако следует помнить, что разработчики RootKit-технологий не стоят на месте, в результате постоянно появляются новые разработки, подходы и методы.

Практика показывает, что разработчики вредоносных программ (вирусов, троянских программ, шпионского ПО) все чаще начинают использовать RootKit-технологии, что существенно затрудняет обнаружение и удаление созданных ими вредоносных программ. Чаще всего применяются методики перехвата функций в режиме пользователя, но в последнее время появились весьма эффективные реализации с применением драйверов. В этом плане по моей статистике наиболее «знаменит» Backdoor.Win32.Haxdoor, который устанавливает в систему несколько драйверов, что позволяет ему достаточно эффективно маскироваться от обнаружения пользователем.

Список литературы

Возможности rootkit и борьба с ними http://www.cybersecurity.ru/manuals/crypto/law/5734.html

Windows под прицелом http://www.securitylab.ru/contest/212106.php

Невидимые LKM-атаки на Windows NT: поваренная книга руткитмейкера http://www.xakep.ru/post/40549/default.asp

Для подготовки данной работы были использованы материалы с сайта http://referat.ru/

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее