Найти тему
Вадим Белоус

Охота на коварняжек в Linux с помощью rkhunter

Rkhunter - сканер кибербезопасности, предназначенный для обнаружения артефактов, оставленных злоумышленниками в системе

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

Инструмент можно поставить как с помощью пакетного менеджера, так и скачав архив с исходным кодом. Утилита написана на perl и sh, поэтому никакие дополнительные зависимости не потребуются. Программу можно запустить даже в минимальном Alpine Linux(это стало доступно только в текущей версии 1.4.6 от 20.02.2018)

Держать такую вундервафлю необходимо всегда обновлённой, чтобы БД с сигнатурами не прокисла. Иначе теряется некоторый профит. Соответственно, уменьшается результативность использования

Проверьте версию вашей уставновки rkhunter

rkhunter -V

Если устарела, то обновите

sudo rkhunter --update

Но лично мне rkhunter на просьбу обновиться вывел сообщение об ошибке

Invalid WEB_CMD configuration option: Relative pathname: "/bin/false"

Поэтому я быстренько загуглил и выяснил как поставить тумблеры в нужное положение

А именно отредактируйте /etc/rkhunter.conf согласно инструкции:

  1. MIRRORS_MODE=1 -> MIRRORS_MODE=0
  2. UPDATE_MIRRORS=0 -> UPDATE_MIRRORS=1
  3. WEB_CMD="/bin/false" -> WEB_CMD=""

Теперь команды с флагами --versioncheck и --update должны срабатывать как надо

Также путём редактирования /etc/rkhunter.conf можно уменьшить количество false positive (ложных срабатываний) при сканировании. Например, если для вас заходить на сервер по SSH от рута это нормально, то измените значения параметра ALLOW_SSH_ROOT_USER на yes

Аларте Аскендаре! Запустите сканирование, чтобы проверить вашу систему на наличие коварняжек и шалунишек. Возможно она уже взломана, но лишним это всё равно не будет 😁

sudo rkhunter --check

Во время манипуляций программы придётся зачем-то нажимать Enter. Попутно rkhunter также будет выплёвывать на экран результаты своей деятельности и в конце работы уведомит, что все результаты записались в /var/log/rkhunter.log

Итогом сканирования моей системы стали результаты:

  • 0 подозрительных файлов из 142
  • 0 руткитов из 498

Результат оказался вполне ожидаемым

Для ежедневного сканирования на коварняжки можно создать задачу в cron'e

Выполните crontab -e и впишите следующую команду

@daily /usr/bin/rkhunter --cronjob --update --quiet


Но я предлагаю более изящное решение - использовать systemd таймер вместо задачи в cron'e. Такое предложение отлично подойдёт вам, если вы не являетесь адептом какой-либо другой системы инициализации

Создайте сервис rkhunter.service

[Unit]
Description=rkhunter
[Service]
Type=oneshot
ExecStart=/usr/bin/rkhunter --cronjob --update --quiet

И таймер rkhunter.timer

[Unit]
Description=Daily timer for rkhunter scan
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target


На выходе должно получиться два файла:
/etc/systemd/system/rkhunter.service и /etc/systemd/system/rkhunter.timer

После выполните

sudo systemctl daemon-reload
sudo systemctl enable rkhunter.timer
sudo systemctl start rkhunter.timer


И
systemctl list-timers --all, чтобы удостовериться в том, что таймер активирован и запланирован на ежедневное выполнение

Также этот пост можно посмотреть на вебсайте и в Telegram канале

Disclaimer: Автор не несёт ответственность за неправомерные действия, совершенные на основе изложенного контента