Сегодня поговорим о антивирусах в Linux системах. Рассмотрим сканер Rkhunter — сканирование системы Linux на вирусы.

rkhunter ( Rootkit Hunter ) — инструмент, который сканирует руткиты , бэкдоры и возможные локальные эксплойты . Он делает это путем сравнения хэшей SHA-1 важных файлов с известными хорошими в онлайн-базах данных, поиска каталогов по умолчанию (руткитов), неправильных разрешений, скрытых файлов, подозрительных строк в модулях ядра и специальных тестов для Linux и FreeBSD . Rkhunter примечателен тем, что включен в популярные операционные системы (Fedora, Debian, и т. д.)

Давайте рассмотрим как установить и настроить данную утилиту для правильной проверки вашей системы.

Установка Rkhunter на Ubuntu Server

Установить программу в Ubuntu можно командой:

sudo apt install rkhunter

Если вам не подходит такой способ, то можете собрать программу из исходников:

cd /tmp
wget http://downloads.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz
tar -xvf rkhunter-1.4.2.tar.gz
cd rkhunter-1.4.2
sh ./installer.sh --layout default --install

Обновление RkHunter

Перед тем как будет выполнена проверка linux на вирусы, необходимо обновить базу данных утилиты. Для этого выполните:

rkhunter --update

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

rkhunter --propupd

Обновление желательно выполнять регулярно, поэтому давайте создадим специальный скрипт и будем запускать его с помощью cron каждый день. Для этого создайте файл скрипта в директории /etc/cron.daily:

sudo nano /etc/cron.daily/rkhunters
#!/bin/sh
(
/usr/bin/rkhunter --versioncheck
/usr/bin/rkhunter --update
/usr/bin/rkhunter -c --sk --rwo) | mail -s 'rkhunter вывод сканирования' your@email.ru

Здесь мы выполняем проверку версии, обновление баз данных и в
последней строчке мы запланировали проверку и отправку уведомления вам на Email. Для работы необходимо заменить your@email.com на ваш адрес электронной почты.

Теперь осталось только дать программе права на выполнение:

chmod +x /etc/cron.daily/rkhunters

Проверка Linux на вирусы Rkhunter

Сначала давайте рассмотрим основные опции программы которые вам могут пригодится:

  • —verbose-logging — максимально подробный вывод
  • —quiet — минимум информации в выводе
  • -l, —logfile — записать лог программы в свой файл
  • —cronjob — не интерактивный режим проверки, используется для запуска с помощью cron, отсюда и название.
  • —list — позволяет посмотреть какие возможности поддерживает программа, можно передать несколько параметров, test -тесты, lang — языки, rootkits — руткиты.
  • —unlock — удаляет файл блокировки базы данных, может быть полезна если предыдущий сеанс работы с программой был завершен некорректно.
  • —check — проверка системы
  • —update — обновление баз руткитов
  • —versioncheck — обновление программы
  • —propupd — создать базу данных файлов

Например, чтобы посмотреть все руткиты, которые может найти программа выполните:

sudo rkhunter --list rootkits

Для того чтобы проверить Linux на вирусы всю систему выполните от суперпользователя:

rkhunter --check

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

cat /var/log/rkhunter.log

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

Чтобы вам было более понятно что делает программа и как анализировать ее результаты, давайте рассмотрим лог сканирования.

Сначала программа инициализирует и загружает конфигурационные файлы, здесь нет ничего интересного:

[12:07:51] Running Rootkit Hunter version 1.4.2 on dhcppc0
[12:07:51] Info: Start date is Вс июн  5 12:07:51 EEST 2016
[12:07:51] Checking configuration file and command-line options...
[12:07:51] Info: Detected operating system is 'Linux'
[12:07:51] Info: Found O/S name: openSUSE 42.1 (x86_64)
[12:07:52] Info: Command line is /usr/bin/rkhunter --check

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

Проверка системы начинается с этих срок:

[12:07:53] Starting system checks...
[12:07:53] Info: Starting test name 'system_commands'
[12:07:53] Checking system commands...

Программа сканирует системные утилиты и пытается выявить там
подозрительные признаки, в том числе проводится сравнение кэша утилиты с кэшем сохраненным в базе данных, чтобы понять не была ли она изменена. Обычно если с утилитами все хорошо лог заполнен такими строками:

[12:07:53]   Scanning for string /usr/sbin/ntpsx             [ OK ]
[12:07:53]   Scanning for string /usr/sbin/.../bkit-ava      [ OK ]
[12:07:53]   Scanning for string /usr/sbin/.../bkit-d        [ OK ]
[12:07:53]   Scanning for string /usr/sbin/.../bkit-shd      [ OK ]
[12:07:53]   Scanning for string /usr/sbin/.../bkit-f        [ OK ]

Также выполняется проверка параметров файлов, например если файл должен быть бинарным, а он скрипт, то это не порядок:

[12:07:59] Info: Starting test name 'properties'
[12:07:59] Performing file properties checks
[12:07:59]   Checking for prerequisites            [ OK ]
[12:08:00]   /usr/sbin/cron                        [ OK ]
[12:08:00]   /usr/sbin/depmod                      [ OK ]
[12:08:01]   /usr/sbin/fsck                        [ OK ]
[12:08:02]   /usr/sbin/groupadd                    [ OK ]
[12:08:02]   /usr/sbin/groupdel                    [ OK ]

При обнаружении подозрительного файла программа тут же объясняет в чем с ним проблема.

Дальше будет выполнена проверка Linux на вирусы с поиском известных руткитов:

[12:09:31] Info: Starting test name 'rootkits'
[12:09:31] Checking for rootkits...
[12:09:31] Info: Starting test name 'known_rkts'
[12:09:31] Performing check of known rootkit files and directories

Обычно, если в этом разделе что-то обнаружено, то это значит, что в
системе есть руткит и с этим нужно что-то делать, но обычно мы видим строки Not found (не найдено):

[12:09:33] Checking for Ambient (ark) Rootkit...
[12:09:33]   Checking for file '/usr/lib/.ark?'           [ Not found ]
[12:09:33]   Checking for file '/dev/ptyxx/.log'          [ Not found ]
[12:09:33]   Checking for file '/dev/ptyxx/.file'         [ Not found ]
[12:09:33]   Checking for file '/dev/ptyxx/.proc'         [ Not found ]
[12:09:33]   Checking for file '/dev/ptyxx/.addr'         [ Not found ]
[12:09:33]   Checking for directory '/dev/ptyxx'          [ Not found ]
[12:09:33] Ambient (ark) Rootkit                          [ Not found ]

Дальше будет запущен поиск нежелательного программного обеспечения:

[12:15:23] Info: Starting test name 'malware'
[12:15:23] Performing malware checks

Вот мы и видим первое предупреждение:

[12:15:38]   Performing check for enabled xinetd services
[12:15:38] Info: Using xinetd configuration file '/etc/xinetd.conf'
[12:15:38]     Checking '/etc/xinetd.conf' for enabled services [ None found ]
[12:15:39]     Checking '/etc/xinetd.d/vnc' for enabled services [ Warning ]
[12:15:40]   Checking for enabled xinetd services            [ Warning ]
[12:15:40] Warning: Found enabled xinetd service: /etc/xinetd.d/vnc

Как видите, программа сразу говорит что обнаружен активированный vnc сервер через xinetd, но здесь все в порядке, это я его активировал.

Проверка опасных портов:

[12:16:00] Performing checks on the network ports
[12:16:00] Info: Starting test name 'ports'
[12:16:00] Performing check for backdoor ports
[12:16:00] Checking for TCP port 1524 [ Not found ]
[12:16:00] Checking for TCP port 1984 [ Not found ]
[12:16:00] Checking for UDP port 2001 [ Not found ]
[12:16:00] Checking for TCP port 2006 [ Not found ]
[12:16:01] Checking for TCP port 2128 [ Not found ]

На этапе проверки конфигурационных файлов мы тоже получаем предупреждение:

[12:16:04] Info: Starting test name 'passwd_changes'
[12:16:04]   Checking for passwd file changes              [ Warning ]
[12:16:04] Warning: Unable to check for passwd file differences: no copy of the passwd file exists.
[12:16:04] Info: Starting test name 'group_changes'
[12:16:04]   Checking for group file changes               [ Warning ]
[12:16:04] Warning: Unable to check for group file differences: no copy of the group file exists.
[12:16:04]   Checking root account shell history files     [ OK ]

Но здесь видно, что проблема не в вирусе, а в том, что программе просто нет с чем сравнивать.

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

[12:16:04] Info: Starting test name 'system_configs'
[12:16:04] Performing system configuration file checks
[12:16:04]   Checking for an SSH configuration file       [ Found ]
[12:16:04] Info: Found an SSH configuration file: /etc/ssh/sshd_config
[12:16:04] Info: Rkhunter option ALLOW_SSH_ROOT_USER set to 'no'.
[12:16:04] Info: Rkhunter option ALLOW_SSH_PROT_V1 set to '0'.
[12:16:05]   Checking if SSH root access is allowed       [ Warning ]
[12:16:05] Warning: The SSH configuration option 'PermitRootLogin' has not been set. The default value may be 'yes', to allow root access.
[12:16:05]   Checking if SSH protocol v1 is allowed       [ Warning ]
[12:16:05] Warning: The SSH configuration option 'Protocol' has not been set. The default value may be '2,1', to allow the use of protocol version 1.

А именно две вещи — разрешенный root доступ по ssh и возможность
использовать протокол первой версии для подключения к ssh. И она права, это очень небезопасно.

Дальше будет выполнено сканирование файловой системы:

[12:16:05] Info: Starting test name 'filesystem'
[12:16:05] Performing filesystem checks
[12:16:05] Info: SCAN_MODE_DEV set to 'THOROUGH'
[12:16:10] Warning: Hidden file found: /usr/bin/.hmac256.hmac: ASCII text
[12:16:10] Warning: Hidden file found: /usr/bin/.fipscheck.hmac: ASCII text

И обнаружено два скрытых файла, но я знаю, что эти файлы созданы программой logmein-hamachi Вы можете отследить какая программа работает с определенным файлом с помощью команды lsof:

sudo lsof | grep /адрес/файла

Осталась проверка приложений:

[12:16:25] Info: Starting test name 'apps'
[12:16:25] Checking application versions..

И небольшой отчет о найденных проблемах:

[12:16:26] System checks summary
[12:16:26] =====================
[12:16:26] File properties checks...
[12:16:26] Files checked: 193
[12:16:26] Suspect files: 0
[12:16:26] Rootkit checks...
[12:16:26] Rootkits checked : 379
[12:16:26] Possible rootkits: 0
[12:16:26] Applications checks...
[12:16:26] Applications checked: 4
[12:16:26] Suspect applications: 0
[12:16:26] The system checks took: 8 minutes and 32 seconds

Для удобства просмотра лога вы можете не смотреть его полностью, а выбрать только предупреждения:

sudo cat /var/log/rkhunter.log | grep -A5 "\[ Warning \]"

Параметр A5 означает показывать еще пять строк после строки с обнаруженным вхождением, так мы точно ничего не пропустим.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

0 0 голоса
Рейтинг статьи
0
Можете поделится своими мыслями.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять