[Перейти к основному содержимому]

Ссылки

Bootchart: профилирование загрузки

Автор: Stevem.

Оригинал: «Bootchart: boot profiling», 24 февраля 2008 г.

На последнем отпуске меня стало раздражать время загрузки моего лэптопа — больше 4 минут. Я решил насладиться отпуском, но по возвращению исправить положение вещей. Дома пара минут поиска в Google навела меня на Bootchart.

Boothchart не избавляет от продолжительного времени загрузки, но предоставляет информацию о том, на что тратится время. Boothchart включает два пакета: профилирующий демон bootchart, собирающий при загрузке данные из /proc; и bootchart-view для создания графиков на основе данных.

bootchartd начинает измерения сразу после монтирования /proc. Из /proc собирается множество информации о процессах, в том числе (для ядер 2.6) об использовании диска и производительности.

Документация советует для полного восстановления дерева процессов использовать учет процессов BSD. В стандартных ядрах Debian включен флаг CONFIG_BSD_PROCESS_ACCT_V3, поэтому нужно только установить пакет acct.

Я думал, что профилировние загрузки системы будет сложным, и приготовился к каким-то серьезным операциям для замера процессов. Но всё оказалось проще некуда.

Профайлер загрузки запускается опцией загрузчика ядра. Это работает и в LILO, но интерактивная загрузка GRUB делает всё очень простым:

bootchartd запускается сам, а потом запускает /sbin/init. Нет никакого обозначения того, что информация регистрируется — вывод консоли выглядит как обычно. После входа в систему, вы найдете данные о загрузке в сжатом архиве tar /var/log/bootchartd.tgz.

Для визуализации данных запустите bootchart-view. По умолчанию создается изображение SVG, но с параметром --format можно также получить вывод в EPS и PNG.

Вот пример вывода:

Пример вывода bootchart-view

По умолчанию на график не наносится большинство порожденных процессов. Если вы считаете, что поможет более подробная информация, используйте опцию --no-prune. Но знайте, что это даст довольно большое изображение.

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

rkhunter и chkrootkit: защита от некомпетентных взломщиков

Автор: Клаудио Крисционе.

Оригинал: «rkhunter & chkrootkit: wise crackers only», 6 февраля 2008 г.

rkhunter и chkrootkit — средства для определения признаков руткитов. Они проверяют систему, в которой запущены, и сообщают (по электронной почте или в консоли) о найденных отклонениях.

Хотя если злоумышленник смог установить руткит, то скорее всего сможет и удалить эти средства, но не всякий злоумышленник настолько опытен. Не всякий script kiddie знает об их существовании, либо способен их отследить. Так как любая ошибка одной из сторон имеет значение, то не требующая усилий защита не повредит и добавит дополнительный (хотя и несущественный) слой безопасности.

rkhunter и chkrootkit легко устанавливаются и требуют небольших усилий по управлению.

Установка

Достаточно просто выполнить

$ sudo apt-get install chkrootkit rkhunter

(Или вместо sudo войдите в систему как root.) После установки оба пакета добавят запись cron для ежедневного автоматического запуска.

Что они делают

chkrootkit и rkhunter используют систему, основанную на контрольных суммах, правилах и фильтрах: они могут определять наличие известных руткитов по файлам или схожим признакам и сообщать об отклонениях вроде интерфейсов, переходящих в режим прослушивания (promiscuous mode), либо скрытых файлов. rkhunter и chkrootkit требуют периодического обновления, чем не отличаются от программ-антивирусов.

Подход, основанный на контрольных подписях, довольно прост: это что-то в духе большой комбинации grep и strings: настоятельно рекомендуется иметь альтернативные копии бинарников (в том числе egrep и strings), чтобы в худшем случае злоумышленнику пришлось патчить и их. Очевидно, монтирование диска на другом компьютере более надежно, даже если это не позволит отыскать изменившиеся руткиты.

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

В чем тогда разница между chkrootkit и rkhunter?

Преимущества rkhunter

Очень полезна возможность автоматического обновления. Нужно только запустить rkhunter --update, и будут загружены новые определения руткитов. Автоматическое обновление настраивается в файле /etc/default/rkhunter при помощи параметра CRON_DB_UPDATE, включенного по умолчанию. Это обновляет базу контрольных сумм системных бинарников, белые и черные списки приложений, а также информацию о версиях программ.

Другие примечательные возможности — запуск rkhunter при помощи WebJob, а также цветной интерактивный режим rkhunter -c.

rkhunter в интерактивном режиме

Преимущества chkrootkit

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

Если недостаточно просто всё грепнуть и сверить подписи, то chkrootkit можно запустить в экспертном режиме

# chkrootkit -x

Это даст расширенный контроль над происходящим и более подробный вывод (не забудьте куда-нибудь его перенаправить).

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

Важное решение

Сейчас вы, наверное, думаете: «Какое средство нужно использовать?» Мой ответ прост — оба. Нет никаких причин поступать иначе. chkrootkit есть в Debian, начиная с Sarge, и в Ubuntu, начиная с Dapper. rkhunter — более новый проект, появившийся в Debian Etch.