Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Понятие Rootkit

div.main {margin-left: 20pt; margin-right: 20pt} Понятие Rootkit

Чего бояться администратору системы

[23.03.2002, Инга Захарова, arlantine@lnx.ru]

Перевод статьи Октея Элтанеджила (Oktay Altunergil) Understanding Rootkits

Rootkit – это набор утилит, которые взломщик устанавливает на компьютере-жертве после получения первоначального доступа. Rootkit обычно содержит сетевые sniffer'ы, скрипты для удаления логов и трояны, замещающие основные утилиты системы, такие как ps, netstat, ifconfig, и killall. Хотя взломщикам еще придется взломать компьютер-жертву, прежде чем установить собственные rootkit'ы, легкость использования и количество причиняемых разрушений делают rootkit'ы серьезной угрозой для системных администраторов.

Основное назначение rootkit'а – позволить взломщику возвращаться во взломанную систему и получать доступ к ней, не будучи при этом обнаруженным. Rootkit осуществляет это очень просто, устанавливая нелегальный демон удаленного доступа, такой, как модифицированная версия telnetd или sshd. Он будет использовать другой порт, отличный то того, который этот демон по умолчанию прослушивает. Большинство rootkit'ов снабжены модифицированными системными программами, которые замещают существующие в атакуемой системе. По меньшей мере заменяются основные программы, такие как ps, w, who, netstat, ls, find, и другие, которые могут быть использованы для контроля за работой сервера, таким образом, что взломщики и их деятельность не заметны для ничего не подозревающего системного администратора.

Так как большинство rootkit'ов, заменяя оригинальные бинарники системы инфицированными версиями, имитируют даты их создания и размеры файлов, и не достаточно просто иметь записи подобной файловой статистики. Таким образом, лучший способ проведения инвентаризации файловой системы, который может быть использован для выявления подозрительной деятельности на сервере, – подсчитать контрольную сумму таких файлов и хранить эту информацию в безопасном месте, например на CD.

Независимые утилиты, такие как Tripwire или AIDE упрощают этот трудоемкий процесс, автоматизируя подсчет подобных файловых сигнатур.

Вот краткое описание Tripwire, взятое с web-сайта организации:

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

Очевидно, что этот процесс должен быть повторен, если вы добавляете в вашу систему дополнительное программное обеспечение или файлы. Вы также можете использовать RPM сигнатуру в системах на основе RPM приложений, таких как Red Hat и SuSE, чтобы сравнить текущую MD5-сигнатуру ваших файлов с их сигнатурой в базе данных установки RPM-приложений. К сожалению, сами по себе RPM приложения и локальная база данных RPM не могут использоваться в качестве надежного источника информации, поскольку взломщики вполне могут инфицировать и их тоже.

Некоторые rootkit'ы также могут содержать сетевой анализатор пакетов или приложения для записи клавиатурных логов, которые используются для сбора паролей других систем и прослушивания трафика на предмет конфиденциальной информации. Для того чтобы сделать это, rootkit'ы устанавливают «неопределенный» (PROMISCIOUS) режим работы сетевой карты (NIC) на атакуемой системе.

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

На «non-promiscuous» сетевом адаптере пакеты, адресованные другим сетевым интерфейсам, без разговоров отбрасываются даже без просмотра их текущей даты. Однако при использовании машин с прямым подключением, или если в сети используются стандартные немаршрутизирующие HUB'ы, то ваша сетевая в действительности может прослушивать весь трафик, если она работает в режиме «PROMISCIOUS».

Если взломщик прослушивает такой трафик в достаточно большой сети, последствия могут быть катастрофическими. Чтобы защитить целую сеть тогда, когда хотя бы одна машина уже взломана, нужно отказаться от использования прямых кабельных соединений и стандартных HUB'ов. Маршрутизирующие HUBы и прочее продвинутое сетевое оборудование не вещает на все машины в сети, а посылает его только той машине, которая должна его получить, эффективно защищая остальные машины.

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

Защитить логи от покушений взломщиков – успешных или безуспешных – администраторы могут одним способом: разработав систему, которая будет выявлять системные аномалии и предупреждать системного администратора, отправляя ему почтовые сообщения с уведомлением и/или лог-файлы.

Предположительно, наибольшую угрозу для системной безопасности представляют rootkit'ы из числа тех, которые активируют LKM (Loadable Kernel Module) троянов. Модули ядра (Loadable Kernel Module) – механизм, позволяющий увеличивать функциональность ядра операционной системы в ходе работы, без необходимости перекомпилировать ядро. Преимущества использования LKM широко известны, однако механизмы загрузки модуля ядра также являются инструментом, применяемым взломщиками для своих злокозненных целей. Даже если вы произведете перезагрузку зараженной LKM трояном системы, LKM-процесс повторно загрузит LKM-троян как и любой другой модуль ядра. Модули ядра используются многими операционными системами, включая Linux, Solaris, и FreeBSD.

«Согласно заявлению SANS LKM-rootkit'ы не заменяют бинарники системы, а нарушают их работу через ядро. Например, ps может получить информацию о процессах из /proc (procfs). Ядерный rootkit может нарушить работу ядра, чтобы скрыть определенные процессы от procfs, таким образом ps или даже известная высококачественная копия «от производителя» будет сообщать неверную информацию.»

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

Knark, Adore и Rtkit – вот только несколько из множества LKM-rootkit'ов доступных сегодня.

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

Чтобы в дальнейшем избежать головной боли, всегда устанавливайте firewall на те ваши машины, которые доступны через какую-либо сеть, применяйте для вашего программного обеспечения все опубликованные патчи, и отключите все ненужные службы.

Объедините эти действия с использованием сильных паролей и безопасных протоколов, таких как SSL и SSh, и можете быть уверены, что ваша система никогда не будет взломана.

Ну, не совсем так… Даже если вы приложили все возможные усилия, чтобы обезопасить вашу систему, все еще существует достаточная вероятность, что кто-нибудь взломает вашу систему и установит один-два rootkit'а.

В моей следующей статье я расскажу о некоторых утилитах, которые есть в вашем распоряжении для обнаружения присутствия rootkit'ов в вашей системе. Также я расскажу, что вы можете сделать, чтобы уничтожить rootkit после того, как его обнаружили.

Октей Элтанеджил (Oktay Altunergil) все свое время работает как администратор систем Unix и программист PHP.




  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте