Бесплатные и OpenSource программы для борьбы с вирусами и руткитами в Linux. Часть 1.

Популярность Linux растет не только у пользователей, но и у злоумышленников. При этом частенько сервера на Linux используются для распространения зловредов через сайты. Поэтому риски (включая имиджевые), вызванные всякой дрянью, которая так и норовит поселиться на наших теплых ламповых серверах, в случае с Linux иногда гораздо выше, чем просто участие хомячковой машинки на Windows в спам ботнете. При этом многие пользователи, а иногда и администраторы, уверены, что раз у них Linux, то от вирусов они точно защищены. К сожалению, данное мнение ошибочно, достаточно посмотреть на постоянно появляющиеся сообщения об уязвимостях.

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

Все описанное ниже демонстрируется на примере Debian и Ubuntu, но, с небольшими коррекциями, применимо к любой Linux машине и в большинстве случаев к Mac и BSD.

ClamAV.

Наверно самым популярным средством защиты Linux является ClamAV. Оно и понятно — управление им по простоте сопоставимо с любым Windows антивирусом. ClamAV — собственно и есть полноценный антивирус, при этом работающий не только на nix, но и на Windows, в лице базирующегося на нем Immunet. Правда Windows версия не приспособлена для работы на серверах, т.е. это чисто десктопное решение. Зато Immunet можно применять совместно с целым списком популярных антивирусных решений, что несомненно плюс. Но вернемся к Linux решению.

Установим необходимые пакеты:

1
apt-get install clamav clamav-base clamav-daemon clamav-dbg clamav-docs clamav-freshclam clamav-testfiles

Теперь необходимо обновить антивирусные базы.

1
freshclam

Второй вариант обновить сигнатуры — вручную. Для этого скачаем сигнатуры с сайта:

1
2
3
4
cd /var/lib/clamav
wget http://database.clamav.net/main.cvd
wget http://database.clamav.net/daily.cvd
wget http://database.clamav.net/bytecode.cvd

Распакуем сигнатуры.

1
sigtool --unpack daily.cvd main.cvd bytecode.cvd

Если мы хотим поставить постоянную защиту, после завершения скачивания сигнатур, запустим clamav-daemon.

1
/etc/init.d/clamav-daemon start

Для теста работоспособности создадим файл с тестовым вирусом eicar.

1
2
cd ~/
nano eicat.test
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Теперь натравим на файл наш антивирус.

1
clamscan -i -r eicar.test

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

eicar.test: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------
Known viruses: 4046913
Engine version: 0.97.7
Scanned directories: 0
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 6.341 sec (0 m 6 s)

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

1
2
3
4
5
6
clamscan -i /home - Сканировать файлы в директории /home.
clamscan -r / - Рекурсивно сканировать всю систему.
clamscan -i  - Отображать только инфицированные файлы.
clamscan -move=/home/vir_files/ – Найденные зараженные файлы переместить в /home/vir_files;
clamscan -remove – Удалить найденные зараженные файлы.
clamscan --log=pach_to_file - Записывать вывод в лог.

Chkrootkit

Следующим в нашем списке выступает небезызвестный Chkrootkit. Он представляет собой Shell скрипт, что обеспечивает его работу при отсутствии каких либо интерпретаторов и компиляторов. Для проверки используются стандартные утилиты Linux.

Чтобы установить Chkrootkit выполним команду:

1
apt-get install chkrootkit

Утилита имеет два режима — обычный и экспертный. Обычный режим запускается простым вызовом команды:

1
chkrootkit

Экспертный — с ключом -x:

1
chkrootkit -x

Rootkit Hunter

Еще одна Open Source утилита по борьбе со злом — Rootkit Hunter. Поставить его в Debian и Ubuntu можно командой:

1
apt-get install rkhunter

В отличие от Chkrootkit, утилита имеет систему обновлений, что обеспечивает актуальность списка потенциальных угроз.

Команда обновления сигнатур:

1
rkhunter --update

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

1
rkhunter --check

По умолчанию лог пишется по пути /var/log/rkhunter.log. Важные ключи:

--append-log      Дописывать лог, не перезатирая.
-C, --config-check Проверить конфиг.
--configfile <file> Указать путь до конфига.
--cronjob Запустить, как задание крона
--debug      Debug mode
--disable <test>[,<test>] Отключить какие-либо из тестов.
--display-logfile Отобразить содержимое лог-файла после завершения
--enable <test>[,<test>] Включить какие-либо из специфических тестов.
--list [tests | languages |Отобразить возможные языки и тесты.
-l, --logfile [file] Указать путь до лога.
--noappend-log Перезаписывать лог.
--nolog Не писать лог в файл
--nomow Не присылать уведомлений по почте о возможных проблемах.
--ns, –nosummary Не показывать сводную информацию.
--rwo, --report-warnings-only Показывать только проблемы.
-r, --rootdir <directory> Использовать нестандартную root директорию.
--sk, --skip-keypress Не ожидать нажатия клавиш для начала теста.
--summary Просмотреть суммарную информацию по тестам.
--syslog [facility.priority] Записывать время начала и конца тестов в syslog.
--tmpdir <directory> Указать нестандартную temp директорию.
--unlock Разблокировать заблокированные файлы.
--versioncheck Проверить последнюю версию программы.
-x, --autox Автоматически определять наличие исков.
-X, --no-autox Не определять автоматически наличие иксов.

Продолжение следует…


Смотрите также

comments powered by Disqus