В моей сегодняшней статье я затрону простейший пример использования и настройки сканера rkhunter
И для любителей писать гневные коментарии я скажу одно - я публикую только те примеры, которые я сам лично пробую на практике, то есть я делюсь своим опытом установки, использования и настройки ПО, не более того. Примеры эти хороши для тех, кто только начинает свой путь в it (как собственно говоря и я сам). Мои статьи скорее онлайн-шпаргалка как и для начинающих специалистов, любителей тестировки софта, так и для меня самого. Я не претендую на звание гуру програмиста-айтишника 100 уровня
Итак начнем
Информации по данной программе можно найти довольно много и на зарубежных сайтах, так и в рунете и даже здесь на хабре. Но в данной статье я разберу самый простейший, базовый пример работы и настройки программы
На гитхабе имеется несколько страниц связанных с проектом
Заходя на них видим печальную картину - проект очень давно не обновляется, является заброшенным:



Но нам эта программа необходима больше для понимания сканирования системы, нахождения и исправления миссконфигов, нахождения и исправления самых базовых уязвимостей системы.
Установим программу введя в терминале (для Debian/Kali/Ubuntu/Mint и всех Debian-подобных дистрибутивов):
sudo apt update; sudo apt install rkhunter
Далее начинаем сканирование в том же терминале:
sudo rkhunter --propupd; sudo rkhunter -c
первая команда "разрешает" все пакеты, которые были установлены из репозитория ОС, вторая собственно само скаирование. Результат сканирования:








Итак видим проблемы /usr/bin/lwp-request, shared memory segment, ssh root access, filesystem check.
Поскольку я только что установил систему Kali GNU/Linux на свой компьютер, ISO образ который был скачан с официального сайта (и не через торрент), то большинство проблем это ложные срабатывания сканнера. За исключением проблемы ssh root access! Это миссконфиг, который необходимо закрыть! Миссконфигом называют неверную настройку програмного обеспечения, которая приводит к уязвимости ПО либо всей системы с последующей возможной эксплуатацией уязвимости. И да rkhunter зачастую имеет так называемые ложные срабатывания, например на пакеты, библиотеки, службы, утилиты, и процессы, которые предустановлены в операционной системе. Очевидно что их необходимо "разрешить" програме, то есть внести в белые списки, так как эти пакеты поставляются производителем ПО и ОС. Но вот если после изначальной настройки программы спустя время, программа начинает ругаться на какой либо файл, программу, директорию, сегмент жесткого диска, службу или процесс, то это повод серьезно задуматься.
Открываем два файла - /etc/rkhunter.conf и /var/log/rkhunter.log командами:
sudo nano /etc/rkhunter.conf
sudo nano /var/log/rkhunter.log


Для удобства делаем это в двух вкладках терминала. Первый это конфигурационный файл программы. В ОС Линукс зачастую приходится наставать программы и службы меняя конфигурацию таких файлов, в отличии например от Windows или Android где все настройки выполняются через графический интерфейс. Втророй файл это лог-файл программы. Вообще лог-файлы это файлы в который ведется запись всех событий и процессов в ОС. В данном файле полный отчет о последнем сканировании. Ознакомимся с ним паралельно конфигурируя первый файл конфига.
Первое на что "ругался" сканер lwp-request. Исправляется это в конфиге введя в соответствующей строке:
PKGMGR=DPKG
Данная стройка была закоментирована, а значение по умолчанию PKGMGR=NONE

Мы таким образом подсказали сканеру что менеджер пакетов в ОС dpkg и проблема lwp-request устранена.
Теперь смотрим в лог

Видим что в логе сканер ругается на /usr/bin/thunar и другие бинарники и библиотеки,которые предустановлены в системе. Разрешим их в конфиге программы добавив и раскоментировав их в SCRIPTWHITELIST, ALLOWIPCPROC, ALLOWPROCLISTEN
SCRIPTWHITELIST=/usr/bin/thunar
SCRIPTWHITELIST=... и так далее по списку
ALLOWIPCPROC=/usr/bin/thunar
ALLOWIPCPROC=... и так далее по списку
ALLOWPROCLISTEN=/usr/bin/thunar
ALLOWPROCLISTEN=... и так далее по списку



Возвращаемся к логу

Видим уязвимость службы SSH. Это и есть миссконфиг, который может привести к успешной атаке на данную службу. Закрываем уязвимость. Для начала откроем новую вкладку терминала и введем команды
sudo -s
cd /etc/ssh
ls
nano sshd_config

То есть переходим в режим суперпользователя, переходим в директорию службы, проверяем содержимое директории, открываем конфигурационный файл службы SSH
В нем раскоментируем PermitRootLogin и меняем значение на "no"
PermitRootLogin no

Естественно сохраняем файл конфигурации ssh
Уязвимость закрыта, миссконфиг исправлен
Двигаемся далее. Сканер обнаруживает подозрительный файл /dev/shm/sem.haveged_sem и скрытую директорию /etc/.java/

Разрешаем их в конфиге

ALLOWHIDDENFILE=/dev/shm/sem.haveged_sem
ALLOWHIDDENDIR=/etc/.java/
Далее снова запускаем сканирование. Большинство проверок стали "чистыми"




За исключением последнего чека. и снова filesystem
Снова входим в лог и снова сканер ругает /dev/shm/sem.haveged_sem. Методом проб и ошибок находим нужную конфигурацию ALLOWDEVFILE. Записываем файл в белый лист
ALLOWDEVFILE=/dev/shm/sem.haveged_sem

Снова запускаем сканирование уже в третий раз





Теперь все чисто
Таким образом мы познакомились, с пусть уже устаревшей, но крайне надежной и по сей день программой rkhunter, прочиатли логи программы, отконфигурировали конфигурационный файц программы, обнаружили миссконфиг и устарнили его.
Существуют и аналоги rkhunter, некоторые из которых обновляются и развиваются. Примерами таких программ являются chkrootkit (checkrootkit), lynis, checksec. chkrootkit и lynis аналоги rkhunter. checksec немного сложнее в освоении так как данный сканер нацелен в основном на сканирование процессов PID. Также имеется устаревший, но еще встречающийся в репозиториях tiger, аналог rkhunter только еще более старый, написанный под прародителя Linux - Unix.
Конечно все уязвимости обнаружить и закрыть практически невозможно. Многие уязвимости обнаруживаются постоянно, вредоносные программы пишутся также ежедневно. Однако для базового сканирования rkhunter подходит до сих пор так как его проверка касается не только файловой системы но и сетевых служб и подключений, проверки работы скриптов, программ и много другого. Кроме того, он сканирует систему на наиболее опасные руткиты Linux. Кроме того, на примере данного пакета очень легко понять логику работы подобных сканнеров, и научиться настраивать их, искать и завкрывать уязвимости системы.