Шрифт:
Интервал:
Закладка:
Взломы операционной системы бывают разные. Самый простой вариант – какой-то подросток начитался литературы или нашел в Интернете программку-взламыватель, например sendmail, применил свои псевдознания к вашей системе, пошалил – удалил что-то с вашего компьютера или, наоборот, оставил послание – "ваш компьютер взломан супер-хакером Васей" и ушел, причем, зачастую, не уничтожив следы своего воздействия на компьютер. На такой простой случай вам рассчитывать не стоит. Как правило, серьезный взлом подготавливается долгое время, и о нем вы узнаете, например, от администратора какого-нибудь сервера на другом конце земного шара, да и то потому, что от вас на его сервер идет очень большой трафик или еще по каким-либо косвенным признакам. Такой взлом преследует чисто прагматические цели – воспользоваться вашей системой для дальнейшего взлома других компьютеров, устроить на вашем сервере хранилище файлов или что-нибудь в подобном роде. Причем взломщик после себя всегда оставляет на вашем компьютере набор специальных утилит, называемых rootkit.
Rootkit
Rootkit (набор инструментов администратора) – это набор утилит, которые взломщик устанавливает на взломанном компьютере после получения первоначального доступа. Rootkit обычно содержит сетевой sniffer (утилиту, способную получать и обрабатывать весь сетевой трафик вашей локальной сети, вне зависимости от того, какому компьютеру адресованы сетевые пакеты) для прослушивания сетевого трафика, программы для модификации log-файлов, позволяющие скрыть присутствие взломщика на вашем компьютере, и специально модифицированные системные утилиты, замещающие основные утилиты системы, например ps, netstat, ifconfig, killall, login.
Основное назначение rootkit – позволить взломщику возвращаться во взломанную систему и получать доступ к ней, не будучи при этом обнаруженным системным администратором. Обычно для этого используется модифицированная версия telnetd или sshd. Модифицированный сервис будет использовать сетевой порт, отличный то того, который этот демон по умолчанию прослушивает. Большинство версий rootkit снабжены модифицированными системными программами, которые замещают существующие во взломанной системе. Конкретный набор модифицируемых системных утилит весьма зависит от версии rootkit и нужд и квалификации взломщика, но, как правило, заменяются программы ps, w, who, netstat, Is, find, login и другие, которые могут быть использованы для контроля за работой взломанной системы.
Для усложнения обнаружения подмены системных утилит большинство rootkit, производя замену системных утилит на модифицированные версии, устанавливают точно такие же даты их создания и размеры файлов, поэтому простой список файлов с датой их создания и модификации и размером никакой пользы в обнаружении подмены системных утилит не принесет. Исходя из этого, пожалуй, лучший способ обнаружения подмены системных утилит – получить контрольную сумму файлов в системе и сохранить этот список в надежном месте – на другом компьютере или на компакт-диске.
В принципе, можно воспользоваться возможностями, предоставляемыми менеджером пакетов RPM – контрольной суммой пакета, рассчитанной по алгоритму MD5. При этом RPM использует контрольные суммы пакетов, хранящиеся в базе данных установленных RPM. Как легко заметить, данный способ не подходит для обнаружения опытных взломщиков. Причин к тому две.
• В вашей системе могут быть установлены программы не из RPM, а скомпилированные из исходных кодов – совершенно очевидно, что ваш менеджер пакетов абсолютно ничего не знает о программах, устанавливаемых без помощи RPM.
• База данных RPM находится на взломанном компьютере, и взломщику не составляет труда модифицировать ее нужным образом или вообще повредить ее.
Для решения этой проблемы обычно используются специализированные программные пакеты, например Tripwire или AIDE, о которых мы поговорим несколько позже.
Помимо вышеперечисленного, некоторые rootkit содержат сетевой анализатор пакетов и утилиты для записи нажатий клавиатурных кнопок, что позволяет взломщику с целью получения необходимой информации организовать сбор паролей и анализ сетевого трафика.
Наибольшую угрозу для безопасности вашей системы представляют rootkit, использующие загружаемые модули ядра (Loadable Kernel Module, LKM), что позволяет не подменять системные утилиты, а нарушать их правильное функционирование через ядро операционной системы.Обнаружение rootkit
Мы нарисовали достаточно мрачную картину – получается, что после взлома системы сделать для ее излечения ничего не возможно? К счастью, не все так плохо.
Сначала необходимо определить сам факт взлома системы. Возможным последствием взлома вашего компьютера и установки на нем rootkit может стать изменение в поведении системных утилит. Например, некоторые утилиты отказываются запускаться от имени пользователя, которому было разрешено пользоваться этими утилитами. Или ваша любимая утилита top стала выглядеть несколько иначе. Другие очень настораживающие признаки – изменение показателей сетевого трафика, а также резкое уменьшение свободного места на жестком диске.
Сканирование портов
После обнаружения взлома первое, что необходимо сделать после смены паролей – лишить взломщика возможности проникновения в систему через сетевые порты. Поскольку взломанный компьютер не вызывает доверия, просканировать сетевые порты необходимо с другого компьютера.
Проще всего просканировать порты с помощью программы nmap. Для этого достаточно выполнить следующую команду:
nmap -р 1-65535 192.168.0.1
Указываем диапазон сканируемых портов – от 1 до 65535, а также адрес сканируемого компьютера. После этого на консоль будет выдан список портов, протокол, используемый для каждого порта, и сервис, который использует этот порт. Обычно всякие «специальные» программы обращаются к портам выше 1023, причем зачастую это порты с номером выше десяти тысяч. Помимо nmap, можно воспользоваться программой lsof. Она позволяет получить список открытых на вашем компьютере сетевых портов. Для этого достаточно выполнить команду
lsof -i Использование RPM
Хотя чуть ранее мы утверждали, что использование RPM для обнаружения rootkit – дело бесперспективное, это не совсем так. RPM можно применить для быстрой проверки. Если он не найдет ничего подозрительного – воспользуемся другими средствами, если найдет и на том спасибо – будем знать, что у нас не так в системе.
RPM записывает и проверяет контрольную сумму всех файлов в пакете, включая те файлы, которые должны изменяться с течением времени. О проверке контрольных сумм пакетов RPM см. в гл. 8.
Сканер для rootkitПакет chkrootkit – набор утилит, используемых для выявления присутствия в системе уже известных rootkit. Chkrootkit удобен тем, что способен выявлять большое количество rootkit с помощью единственного приложения. Вдобавок к выявлению известных rootkit, он также включает несколько тестов, помогающих обнаружить новые rootkit.
Пакет chkrootkit состоит из следующих утилит:
• chkrootkit – используется для выявления сигнатур известных rootkit;
• ifpromisc – используется для обнаружения прослушивания сетевого трафика взломанным компьютером;
• chklastlog, chkwtmp, check_wtmpx – утилиты для проверки log-файлов;
• chkproc – предназначена для обнаружения «посторонних» загружаемых модулей ядра операционной системы.
Об особенностях применения chkrootkit можно узнать в документации, идущей в комплекте с пакетом.
После обнаружения
Что делать после обнаружения rootkit? Единственно верный способ избавиться от последствий взлома – заново полностью переустановить операционную систему и установить все обновления пакетов для вашего дистрибутива. Однако не всегда есть возможность проделать такие действия сразу – квартальный отчет, непрерывное производство, болезнь администратора – да мало ли что еще.
В дистрибутивах на основе RPM-пакетов вы можете определить поврежденные пакеты. После этого необходимо переустановить их, используя следующую команду:rpm -U –force rpm_package_name.rpm
После переустановки пакетов вы должны удалить файлы, установленные в вашу систему взломщиком. Данные, полученные chkrootkit, помогут вам определить местонахождение файлов.
После удаления всех обнаруженных «чужих» файлов запустите top и ps для выявления и уничтожения оставшихся нежелательных процессов. Помимо этого, необходимо проверить стартовые скрипты операционной системы и убедиться, что эти скрипты не используются никакими посторонними программами.
LIDS
LIDS (Linux Intrusion Detection/Defence System) – система обнаружения и защиты от вторжения. Представляет собой дополнение к ядру операционной системы Linux, добавляющее дополнительные возможности для увеличения безопасности операционной системы. LIDS позволяет запретить или ограничить доступ к файлам, памяти, устройствам, сетевым интерфейсам, запущенным приложениям и т. п. пользователю root, что дает возможность надежно оградить даже взломанную операционную систему от дальнейшего вмешательства.
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Microsoft Windows XP Professional. Опыт сдачи сертификационного экзамена 70-270 - Владислав Карпюк - Программное обеспечение
- Основы программирования в Linux - Нейл Мэтью - Программное обеспечение
- Windows Vista. Мультимедийный курс - Олег Мединов - Программное обеспечение