[an error occurred while processing this directive] Безопасность сетей[an error occurred while processing this directive]

Николай Малых

Использование программы chkrootkit для мониторинга

http://www.chkrootkit.org

Программа chkrootkit предназначена для поиска враждебного кода (rootkit) и иных подозрительных событий в системе. Программа включает в себя несколько модулей:

Модули chkwtmp и chklastlog пытаются обнаруживать факты удаления записей из системных журналов wtmp и lastlog, но полное обнаружение всех изменений этих файлов не гарантируется.

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

Модуль chkproc проверяет файлы /proc для обнаружения скрытых от команд ps и readdir системных вызовов, которые могут быть связаны с троянскими модулями LKM. Вы можете использовать эту команду с ключом -v для вывода более подробного отчета.

Chkrootkit может обнаруживать широкий спектр враждебного кода, перечисленного ниже.

01. lrk3, lrk4, lrk5, lrk6 (и варианты); 02. Solaris rootkit; 03. FreeBSD rootkit;
04. t0rn (и варианты); 05. Ambient's Rootkit (ARK); 06. Ramen Worm;
07. rh[67]-shaper; 08. RSHA; 09. Romanian rootkit;
10. RK17; 11. Lion Worm; 12. Adore Worm;
13. LPD Worm; 14. kenny-rk; 15. Adore LKM;
16. ShitC Worm; 17. Omega Worm; 18. Wormkit Worm;
19. Maniac-RK; 20. dsc-rootkit; 21. Ducoci rootkit;
22. x.c Worm; 23. RST.b trojan; 24. duarawkz;
25. knark LKM; 26. Monkit; 27. Hidrootkit;
28. Bobkit; 29. Pizdakit; 30. t0rn v8.0;
31. Showtee; 32. Optickit; 33. T.R.K;
34. MithRa's Rootkit; 35. George; 36. SucKIT;
37. Scalper; 38. Slapper A, B, C and D; 39. OpenBSD rk v1;
40. Illogic rootkit; 41. SK rootkit. 42. sebek LKM;
43. Romanian rootkit; 44. LOC rootkit; 45. shv4 rootkit;
46. Aquatica rootkit; 47. ZK rootkit; 48. 55808.A Worm;
49. TC2 Worm; 50. Volc rootkit; 51. Gold2 rootkit;
52. Anonoying rootkit; 53. Shkit rootkit; 54. AjaKit rootkit;
55. zaRwT rootkit; 56. Madalin rootkit;

Программа работает на различных программных платформах и была успешно протестирована на системах

Для использования программы chkrootkit требуются полномочия пользователя root. Простейший способ проверки обеспечивается командой2

./chkrootkit

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

./chkrootkit [опции] [<имя теста>...]

Опции

Таблица 1 Опции chkrootkit

Опция

Описание

-h

Выводит справочную информацию о работе с программой.

-V

Выводит сведения о номере версии программы и завершает работу.

-l

Показывает список поддерживаемых программой проверок.

-d

Задает вывод подробной информации о работе программы (режим отладки).

-q

Задает минимальный вывод информации.

-x

Задает вывод дополнительной информации.

-r <каталог>

Задает имя каталога для использования в качестве корневого (root). Указанный в команде каталог служит стартовой точкой для просмотра дерева каталогов.

-p dir1:dir2:dirN

Указывает пути к внешним программам, используемым chkrootkit.

-n

Отключает просмотр смонтированных каталогов NFS.

По умолчанию программа пытается выполнить все доступные проверки, а параметр <имя теста> может содержать одно или несколько имен поддерживаемых программой тестов:

aliens asp bindshell lkm rexedcs
sniffer wted w55808 scalper slapper
z2 amd basename biff chfn
chsh cron date du dirname
echo egrep env find fingerd
gpm grep hdparm su ifconfig
inetd inetdconf identd init killall
ldsopreload login ls lsof mail
mingetty netstat named passwd pidof
pop2 pop3 ps pstree rpcinfo
rlogind rshd slogin sendmail sshd
syslogd tar tcpd tcpdump top
telnetd timed traceroute vdir w
write

Например, приведенная ниже команда обеспечивает поиск троянских программ ps и ls, а также обнаружение интерфейсов, работающих в режиме захвата пакетов.

./chkrootkit ps ls sniffer

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

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

./chkrootkit -x | more

Команда

./chkrootkit -x | egrep '^/bin'

позволяет найти в бинарных файлах текстовые строки, начинающиеся с символов /bin, которые могут содержать имена исполняемых файлов. Программа chkrootkit может использовать для выполнения проверки другие программы, включая awk, cut, egrep, find, head, id, ls, netstat, ps, strings, sed, uname. Если эти программы недоступны в пути поиска, укажите путь к ним с помощью опции -p. Такая возможность позволяет использовать при проверке системы заведомо нормальные версии перечисленных программ, которые могут храниться на отдельном диске без возможности записи на него. Приведенная ниже команда обеспечивает выполнение тестов chkrootkit с использованием программ, хранящихся в каталоге /bin на компакт-диске, смонтированном в системе как /cdrom

./chkrootkit -p /cdrom/bin

Вы можете указать в командной строке несколько каталогов для поиска требуемых для работы программ, разделяя имена каталогов двоеточием (:)

./chkrootkit -p /cdrom/bin:/floppy/mybin

Иногда может возникнуть необходимость проверки диска вашей системы на другом компьютере, где заведомо нет враждебного кода. Для этого служит опция -r , позволяющая задать точку монтирования для корневого раздела проверяемого диска. Например, при монтировании корневого раздела как /mnt1, можно использовать команду:

./chkrootkit -r /mnt1

Сообщения программы

Ниже перечислены префиксы, используемые программой chkrootkit (за исключением случаев использования с опциями -x или -q) при выводе отчета о проверке:

Примеры использования chkrootkit для мониторинга

Программа chkrootkit выводит результаты проверки на консоль, а с помощью стандартных операций вывод может быть направлен в файл.

С помощью chkrootkit можно организовать эффективный мониторинг своей станции и удаленных хостов с передачей результатов проверки по электронной почте. Вы можете включить нужные команды в файл заданий cron для автоматической проверки с желаемой периодичностью. Например, строка

0 2 * * * cd /usr/local/bin; ./chkrootkit 2>&1 | mail -s "chkrootkit output for HostName" root

в файле /var/spool/cron/root обеспечит выполнение полного набора тестов в 2 часа 00 минут ежесуточно с передачей отчета локальному пользователю root по электронной почте.

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

0,20,40 * * * * cd /usr/local/bin; ./chkrootkit lkm 2>&1 | mail -s "LKM search for HostName" root@AdminHost

вы обеспечите проверку наличия скрытых в системе процессов с передачей отчетов по электронной почте на адрес root@AdminHost.

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

1,5,11,16,21,26,31,36,41,46,51,56 * * * * cd /usr/local/bin; ./chkrootkit sniffer 2>&1 | mail -s "Packet sniffer search result for HostName" root

вы обеспечите проверку наличия в сети собирающих пакеты интерфейсов с интервалом в 5 минут. Отчеты о результатах проверки будут передаваться локальному пользователю root по электронной почте. Такого же результата можно добиться с помощью строки задания

1,5,11,16,21,26,31,36,41,46,51,56 * * * * /usr/local/bin/ifpromisc 2>&1 | mail -s "Packet sniffer search result for HostName" root

Отмечу, что в режим сбора пакетов интерфейс могут переводить не только анализаторы протоколов, но и ряд других программ. Например, на станции, где используются программы Snort, p0f, iplog и arpwatch, команда ifpromisc будет выдавать следующую строку:

eth0: PF_PACKET(/usr/sbin/iplog, /usr/sbin/arpwatch, /usr/sbin/p0f, /usr/sbin/snort-bloat)

Однако при появлении дополнительной информации уже возникает повод для настороженности. Например, при активизации программы tcpdump строка для этого же хоста примет вид

eth0: PF_PACKET(/usr/sbin/iplog, /usr/sbin/arpwatch, /usr/sbin/p0f, /usr/sbin/snort-bloat, /usr/sbin/tcpdump)


1Linux Kernel Module – модуль ядра Linux.

2Команда должна выполняться из каталога, в котором хранятся исполняемые файлы chkrootkit, поскольку сценарий ищет исполняемые файлы в текущем каталоге, не используя переменную окружения PATH.


Обсудить статью на форуме [an error occurred while processing this directive] [an error occurred while processing this directive]