Книга: Linux глазами хакера
12.3.1. lsat
12.3.1. lsat
Первая программа, с которой нам предстоит познакомиться, — lsat. Ее история не слишком длинная, но за счет частого обновления возможности программы быстро выросли, а благодаря модульной архитектуре расширение функций происходит легко и быстро.
Программа lsat поставляется в исходных кодах, и найти ее можно по адресу http://usat.sourceforge.net/. На момент написания этой книги была доступна версия 0.9.2. Скачайте архив в свою домашнюю директорию, и давайте рассмотрим, как установить и использовать программу. На сайте доступны tgz- и zip-версия. Я рекомендую воспользоваться первой, потому что это родной архив для Linux и проще в использовании.
Для установки выполните следующие команды:
tar xzvf lsat-0.9.2.tgz
./lsat-0.9.2.tgz/configure
./lsat-0.9.2.tgz/make
Первая директива распаковывает архив lsat-0.9.2.tgz. Имя файла может отличаться, если у вас другая версия программы. Вторая команда запускает конфигурирование, а третья — собирает проект из исходных кодов в один исполняемый файл.
Для запуска программы используйте следующую команду:
./lsat-0.9.2.tgz/lsat
Теперь можно идти готовить кофе и медленно и печально пить его. Процесс тестирования системы занимает довольно много времени, особенно на слабых машинах. При запуске можно указать один из следующих ключей:
? -o имя файла
— отчет записывать в указанный файл. По умолчанию отчет попадает в lsat.out;
? -v
— выдавать подробный отчет;
? -s
— не выдавать никаких сообщений на экран. Это удобно при выполнении команды через cron;
? -r
— выполнять проверку контрольных сумм (это делается с помощью RPM). Это позволяет выявить незаконно измененные программы.
Лучше всего lsat будет работать на Red Hat-подобных системах, потому что в нее встроена возможность работы с RPM-пакетами, которые являются отличительной особенностью дистрибутива Red Hat Linux и его клонов.
Во время проверки вы увидите примерно следующий текст на экране:
Starting LSAT...
Getting system information...
Running modules...
Running checkpkgs module...
...
...
Running checkx module...
Running checkftp module...
Finished.
Check lsat.out for details.
Don't, forget to check your umask or file perms
when modifying files on the system.
Пока слова о безопасности отсутствуют. Только информация о том, что сканировалось. Все самое интересное после тестирования можно найти в файле ./lsat-0.9.2.tgz/lsat.out. Я прогнал эту программу на системе сразу после установки и получил документ размером 190 Кбайт. Таким образом, есть над чем подумать и что изучать в вашей системе.
В выходном файле вы найдете множество советов. Так, в самом начале можно увидеть рекомендации по пакетам, которые нужно удалить:
****************************************
Please consider removing these packages.
sendmail-8.11.6-15.asp
portmap-4.0-41
bind-utils-9.2.1-1.asp
nfs-utils-0.3.3-5
pidentd-3.0.14-5
sendmail-devel-8.11.6-15.asp
sendmail-cf-8.11.6-15.asp
ypbind-1.10-7
ypbind-1.10-7
В самом деле, некоторые пакеты можно отнести к разряду не очень надежных. Например, в программе Sendmail регулярно находят ошибки, поэтому lsat предлагает его подчистить.
В выходном файле мне очень понравилась надпись:
default init level is not set to 5. Good.
(уровень загрузки по умолчанию не равен 5. Хорошо.)
Мой уровень загрузки равен 3 (текстовый режим) и программа сообщает, что это хорошо. Разработчик lstat посчитал, что загрузка в графическом режиме хуже для безопасности. Действительно, это лишние программы и дополнительные проблемы. Текстовый режим не требует столько ресурсов, работает меньше утилит, а значит, он быстрее и безопаснее.
Если немного опуститься ниже, то вы увидите список всех файлов в системе с установленными битами SUID и SGID. При использовании программы lsat нет смысла самостоятельно заниматься поисками потенциально опасных программ.
Еще немного ниже идет список общедоступных файлов:
****************************************
This is a list of world writable files
/var/lib/texmf/ls-R
/var/www/html/cache/archive/index.html
/var/www/html/cache/categories/category.cgi
/var/www/html/cache/categories/index.html
/var/www/html/cache/download/download-2-1.cgi
/var/www/html/cache/download/download-3-1.cgi
/var/www/html/cache/download/download-4-1.cgi
Это те файлы, которые имеют право изменять любые пользователи системы, даже с минимальными правами.
Далее идет список файлов, в которые могут писать пользователи каких-либо групп. Проверьте, возможно, не всем пользователям нужно давать такой статус. В идеале таких записей вообще не должно быть. В любой файл должны иметь право писать только владельцы или, в крайнем случае, пользователи группы, но никак не все.
Отчеты удобны и легко читаются, но в самом конце появляется ложка дегтя. Пусть она и небольшая, но она есть. Программа показывает изменения в файловой системе с момента последнего запуска. Вот тут разобраться с чем-либо очень сложно. Информация выводится как угодно, а ведь удобнее было разделить модификации по степени опасности. Например, удаленный или добавленный в разделе /tmp файл не так важен, потому что там изменения происходят тоннами каждые пять минут. А вот все, что касается раздела /etc, намного опаснее, и эти записи нужно выделять.