Антивірус на 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.