Антивирус на Linux машине
О том, как на Linux машине, используя программу ClamAV, обнаружить вредоносный код (трaояны, вирусы и вредоносные программы).
ClamAV (Clam AntiVirus) - это антивирусный движок c открытым исходным кодом для обнаружения троянов, вирусов, вредоносных программ и других вредоносных угроз на почтовых серверах, но его также можно использовать на десктопах.
Установка
Он имеется в Debian репозитории, поэтому установка проста:
sudo apt-get update
sudo apt-get install clamav
Использование
Перед сканированием необходимо обновить базу данных сигнатур вирусов:
sudo freshclam
ClamAV update process started at Tue May 19 17:02:33 2015 main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo) Downloading daily-20485.cdiff [100%] daily.cld updated (version: 20485, sigs: 1392599, f-level: 63, builder: neo) bytecode.cld is up to date (version: 256, sigs: 45, f-level: 63, builder: dgoddard) Database updated (3816869 signatures) from db.local.clamav.net (IP: 198.148.78.4)
Теперь можно начать сканирование любой директории (например /home
) на наличие вирусов:
clamscan -r -i /home
- -r - Рекурсивное сканирование, т.е. сканирование в подкаталогах.
- -i - Показывать только инфицированные файлы.
- /home - Директория сканирования.
Примечание: Для сканирования всей системы (
/
) нужно запускать программу от имени рута (используя sudo).
Примечание: Эта команда только покажет инфицированные файлы, но не станет их очищать (лечить), отправлять на карантин или удалять.
У утилиты clamscan имеется множество дополнительных параметров для сканирования. Например:
- –bell - Звуковой сигнал при обнаружение инфекции.
- –log - Записать лог.
- –max-dir-recursion - Максимальная глубина поиска в директориях.
- –exclude-dir - Исключить директорию.
- –copy - Копирование инфицированных файлов в отдельную директорию.
- –move - Перемещение инфицированных файлов в отдельную директорию.
- –remove - Удаление инфицированных файлов.
О всех дополнительных параметрах можно узнать в man
:
man clamscan
Пример использования дополнительных параметров:
sudo clamscan -ri --bell --max-dir-recursion=50 --move=/home/user/INFECTED/ --log=/var/log/clamav/clamav.log --exclude-dir=/mnt/storage/ /
Автоматизация
Для автоматизации сканирования можно воспользоваться планировщиком задач Cron. Для этого нужно вписать несколько строк в файл /etc/crontab
.
sudo nano /etc/crontab
# ClamAV 0 3 * * * root /usr/bin/freshclam 20 3 * * * root /usr/bin/clamscan -r /
Теперь сканирование будет происходить автоматически каждый день в 3 часа. Двадцатиминутный промежуток необходим для завершения работы freshclam
(обновление базы данных).
Примечание: Установите любое удобное для вас время и замените строку
/usr/bin/clamscan -r /
на необходимую.
Возможные находки
В результате сканирования могут обнаружиться такие “вирусы”:
PUA.Script.Packed-1 FOUND PUA.Script.Packed-2 FOUND
В действительности это не вирусы.
- PUA (Possibly Unwanted Applications) - Потенциально нежелательные приложения.
- Script.Packed - Скрипт упакован (архивирован).
Для того, чтобы отключить обнаружение PUA используйте дополнительный параметр:
--detect-pua=no
А для включения обнаружения PUA:
--detect-pua=yes
Пример:
sudo clamscan -r -i --detect-pua=yes /
Возможные ошибки
ОШИБКА 1
При обновлении базы данных сигнатур вирусов может выводится такое сообщение:
freshclam
ERROR: Can't open /var/log/clamav/freshclam.log in append mode (check permissions!). ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
Это происходит из-за того, что freshclam был запущен пользователем без определённых прав. Решается это запуском freshclam с помощью sudo:
sudo freshclam
ОШИБКА 2
При сканировании может выводится такое сообщение:
LibClamAV Warning: fmap_readpage: pread fail: asked for 4085 bytes @ offset 11, got 0 LibClamAV Warning: fmap_readpage: pread fail: asked for 4091 bytes @ offset 5, got 0 LibClamAV Warning: fmap_readpage: pread fail: asked for 4094 bytes @ offset 2, got 0 LibClamAV Error: fmap_readpage: pread error: Input/output error
Для того, чтобы это не происходило нужно исключить из сканирования несколько директорий, например так:
sudo clamscan -ir --exclude-dir=^/sys --exclude-dir=^/dev --exclude-dir=^/proc /
Если эта статья помогла вам, пожалуйста, оставьте комментарий
Спасибо за прочтение!
Arthur is a designer and full stack software engineer. He is the founder of Space X-Chimp and the blog My Cyber Universe. His personal website can be found at arthurgareginyan.com.