Первым шагом, если Вы обнаружили, что машина взломана, является отсоединение
ее от сети и ее перезагрузка в однопользовательский режим. Однопользовательский
режим позволяет предотвратить изменение логов или данных пользователями,
злоумышленником или процессами злоумышленника, которые могли остаться после
взлома системы. Далее рекомендуется проделать следующее:
1. Резервное копирование поврежденной системы.
Перед тем как начинать анализ вторжения, хорошо создать резервную копию вашей
системы; для этого вам потребуется жесткий диск, размер которого больше или
такой же, как и размер диска на поврежденной системе; после установки на диск
файловой системы можно воспользоваться утилитой «dd». Например, на ОС Linux с
двумя SCSI дисками, следующая команда делает копию поврежденной системы
(/dev/sda) на диск сходного или большего размера (/dev/sdb).
# dd if=/dev/sda of=/dev/sdb
Для более полного ознакомления с командой dd следует прочесть man.
Так же существует еще множество способов для создания резервной копии вашей
системы.
2. Анализ вторжения.
2.1 Поиск изменений в программах и конфигурационных файлах.
Когда вы ищите изменения в программах или конфигурационных файлах, вам
следует помнить, что утилиты, которые вы используете тоже могут быть изменены. В
связи с этим, мы настоятельно рекомендуем загрузиться с «чистого» ядра и
воспользоваться «чистыми» системными утилитами. Так же советуем проверить все
системные файлы на предмет троянов, установленных злоумышленником. Некоторые
системные утилиты/демоны часто заражены троянами, такие как telnet, in.telnetd,
login, rlogin, su, ftp, ls, ps, netstat, ifconfig, find, du, df, sync, inetd,
sshd, и syslogd; так же следует проверить файлы /etc/inetd.conf и libc
библиотеку.
В связи с тем, что программы с внедренными в них троянами могут иметь сходный
размер с подлинными, мы рекомендуем использовать cmp для проверки на «вшивость»
простым сравнением. Альтернативой cmp может послужить md5, позволяющая проверить
целостность файла по контрольной сумме. Контрольные суммы можно сделать с
«чистой» системы для последующего сравнения, либо взять у разработчика ОС.
Так же следует проверить на наличие изменений файлы /etc/passwd и
/etc/inetd.conf. Если у вас открыты удаленные сервисы типа rlogin, rsh, rexec,
следует проверить /etc/hosts.equiv и $HOME/.rhosts файлы.
Проверьте ОС на наличие новых SUID и SGID файлов с помощью команды find и
md5:
# find / ( -perm -004000 -o -perm -002000 ) -type f -print
3. Поиск информации и программ, оставшихся после взлома.
Злоумышленники обычно устанавливают собственные программы для продолжения
мониторинга или возможности иметь доступ к взломанной системе.
Обычно после злоумышленника на диске могут остаться:
Сетевые снифферы
Сниффер — это утилита, которая позволяет мониторить и записывать весь сетевой
трафик в файл. Злоумышленники часто используют снифферы для добычи логинов и
паролей пользователей, которые в чистом виде передаются по сети.
Троянские кони
Троянский конь — это работающие стандартным образом программы, но с
добавленными злоумышленником функциями. Злоумышленник может использовать
троянского коня для сокрытия своей активности, добычи логинов и паролей
пользователей и создания бэкдоров для последующего доступа к взломанной
системе.
Эксплоиты (exploit)
Программное обеспечение может быть уязвимо к таким действиям, как
переполнение буферов, используемых для обмена информацией. Злоумышленник может
использовать специальные программы, использующие переполнение буферов для
получения прав суперпользователя root. Такие программы также часто остаются в
«спрятанных» каталогах.
Другие утилиты злоумышленника
Естественно, что это не все утилиты, которые может использовать
злоумышленник. Вполне возможно, что после него останутся и другие следы. Вот
некоторые из возможных:
- утилиты, позволяющие проверять системы на уязвимость
- программы для сканирования других хостов
- программы для запуска «DoS» (Denial of Service) атак (в том числе
распределенных)
- программы, использующие ресурсы вашего компьютера ( например, для «крэка»
паролей)
Вывод утилит злоумышленника
Возможно что в найденных вами лог-файлах, сгенерированные утилитами
злоумышленника, может содержаться информацию о других взломанных сайтах, дырах
на взломанных машине(ах) в вашей сети, дырах на других сайтах.
Мы советуем вам поискать такие утилиты и сопутствующие файлы. Будьте уверены
в том, что вы используете «чистую» копию утилиты для поиска файлов
злоумышленника.
В первую очередь следует обратить внимание на ASCII файлы в каталоге /dev.
Некоторые троянские программы хранят там свои конфигурационные файлы. Если
злоумышленник создал нового пользователя и домашний каталог, посмотрите в нем.
Так же следует поискать файлы или каталоги со странными названиями типа «…»
или «.. «, » » и т.п.
Просмотр лог-файлов
Просмотр лог-файлов может вам помочь понять, как был взломан ваш компьютер,
что случилось во время взлома и какие удаленные хосты имели доступ к
компьютеру.
Помните, что лог-файлы могут быть исправлены злоумышленником.
Возможно вам понадобится посмотреть в /etc/syslog.conf, чтобы понять, куда
syslogd пишет сообщения. Если Вы настроили syslogd для передачи статистики на
другой хост — шансы обнаружить реальную статистику значительно возрастают.
Вот список самых популярных названий UNIX лог-файлов, их функции и чего
искать в этих файлах. В зависимости от типа вашей системы у вас их может не
быть.
Messages
Обычно в данный файл попадает большое количество информации. Вам следует
поискать что-либо чрезвычайное, ориентируясь на предполагаемую дату и время
взлома.
Xferlog
Если на взломанном компьютере работал ftp сервер, xferlog будет содержать
информацию о всех ftp соединениях. Это может помочь вам обнаружить, какие
утилиты злоумышленника были скопированы на вашу машину и какая информация была
скачана с вашей системы.
Utmp
Этот файл содержит информацию о зарегистрированных в системе пользователях.
Просмотреть его можно с помощью команды who.
Wtmp
В wtmp записывается каждый удачный вход/выход пользователя или перезагрузка
машины. Один из путей прочитать информацию из этого файла — использование
утилиты last.
Secure
Некоторые версии UNIX (например RedHat Linux) записывают сообщения tcp
wrapper’а в файл secure. Каждый раз, когда соединение установлено с одним из
сервисов запускаемом через inetd с использованием tcp wrapper’ов, логи пишутся в
этот файл. Когда вы будете просматривать файл, поищите в нем «аномалии»,
например сервисы, которые были использованы в предположительное время взлома,
хотя обычно они в это время не используются.