Linux Malware Detect — сканер для поиска и лечения вредоносного программного обеспечения для Linux. Его особенностью и, несомненно, большим плюсом является тот факт, что базы вирусных сигнатур у него пополняются сразу из нескольких источников:
- хостинг — большая часть баз антивируса сформирована на основе статистики вредоносной активности на более чем 35 000 сайтов;
- данные сообщества: есть несколько ресурсов, посвящённых интернет-безопасности, где собираются, анализируются и классифицируются новые угрозы. Их коллекция вредоносного ПО входит в базу сигнатур Linux Malware Detect;
- ClamAV: разработчики Linux Malware Detect тесно сотрудничают с командой ClamAV — это не только позволило интегрировать часть возможностей оттуда, но и обмениваться новыми обнаруженными сигнатурами;
- сообщения пользователей: антивирус имеет встроенную возможность отправлять для анализа и классификации угрозы, ещё не включенные в базы вирусных сигнатур. Таким образом на проверку поступает более чем 30-50 сообщений в неделю.
Также стоит отметить возможность отправки уведомлений в корпоративный мессенджер Slack.
Продукт ориентирован на операционные системы семейства Linux. Другие задокументированные системные требования отсутствуют.
Установка Linux Malware Detect
Способ установки на большинстве Linux-систем идентичен и состоит из трёх шагов:
Перейдите на сайт разработчика и скопируйте ссылку на последний релиз антивируса:
Скачайте и распакуйте архив на сервер в нужную директорию:
cd /root wget https://www.rfxn.com/downloads/maldetect-current.tar.gz tar -xvzf maldetect-current.tar.gz
Перейдите в распакованную папку* и запустите установку:
cd maldetect-1.6.5 ./install.sh
* подсмотреть название разархивированной папки можно с помощью команды
ls -al
После завершения установки рабочие файлы антивируса будут размещены в директории /usr/local/maldetect
. В том числе конфигурационные файлы для тонкой настройки:
/usr/local/maldetect/conf.maldet
— настройки антивируса и параметров сканирования;/usr/local/maldetect/cron/conf.maldet.cron
и/usr/local/maldetect/cron/custom.cron
— настройка параметров ежедневного сканирования;/usr/local/maldetect/ignore_*
— настройки расширений, путей, уведомлений и сигнатур, которые нужно игнорировать при сканировании.
Удалить Linux Malware Detect можно также с помощью скрипта из этой папки — /usr/local/maldetect/uninstall.sh
Теперь нужно настроить работу уведомлений. При текущем раскладе антивирус в случае обнаружения угроз будет писать информацию только в собственные логи — а с ними работать не всегда удобно. Для отправки уведомлений, например, на email, нужно задать дополнительные настройки:
При наличии настроенного почтового сервера можно настроить отправку уведомлений на ваш email. Для этого с помощью консольного редактора откройте конфигурационный файл
/usr/local/maldetect/conf.maldet
vim /usr/local/maldetect/conf.maldet
* В качестве примера приведён редактор Vim. Для входа в режим редактирования на клавиатуре нажмите I. Для выхода из режима редактирования нажмите Esc. Для сохранения и выхода из файла введите сочетание :wq Для выхода без сохранения введите :q!
Чтобы антивирус мог отправлять уведомления на ваш email, в параметре
email_alert
установите значение “1
”. В параметреemail_addr
укажите почтовый ящик, на который будут отправляться сообщения антивируса.Откройте файл* планировщика пользователя
root
:crontab -e
Чтобы планировщик отправлял уведомления о выполнении задач по расписанию корневому пользователю, скопируйте в начало файла (перед списком заданий) следующий текст:
SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/
При наличии настроенного почтового сервера
root
можно заменить на адрес электронной почты.
Дополнительные настройки
С помощью конфигурационного файла /usr/local/maldetect/conf.maldet
можно управлять как параметрами сканирования, так и потреблением ресурсов.
Сам файл разбит на несколько разделов для упрощения навигации. Вот список наиболее примечательных опций:
[ General options ]
cron_prune_days
— период хранения файлов, перемещённых в карантин. По умолчанию имеет значение “21
”.
[ SCAN OPTIONS ]
scan_clamscan
— опция для активации / отключения интеграции с антивирусом ClamAV. Интеграция позволяет улучшить производительность сканирования на больших группах файлов. По умолчанию интеграция включена;scan_tmpdir_paths
— опция включает сканирование для заданных директорий временных файлов;scan_user_access
— параметр открывает доступ к сканированию для непривилегированных пользователей. По умолчанию доступ имеет только root (значение “0
”);scan_ignore_root
— по умолчанию при сканировании файлы, принадлежащие пользователюroot
, игнорируются. Если в папке вашего сайта есть такие файлы, и вам нужно их проверить — установите значение “0
”.
[ QUARANTINE OPTIONS ]
quarantine_hits
— настройка обработки обнаруженных угроз. По умолчанию включена только отправка уведомления (“0
”). При значении “1
” отправляется уведомление, а заражённый файл перемещается в директорию/usr/local/maldetect/quarantine
;quarantine_clean
— при обнаружении вредоносного файла антивирус предпримет попытку автоматического удаления фрагмента кода, совпавшего с вирусной сигнатурой. Параметр доступен, если значение предыдущего параметра установлено в “1
”. По умолчанию отключен. Включать с осторожностью — всегда существует риск, что с вирусной сигнатурой частично совпадёт кусок вполне рабочего кода.
[ MONITORING OPTIONS ]
Раздел позволяет настроить режим мониторинга — включая пути к домашним папкам пользователей и настройки потребления ресурсов.
[ STATISTICAL ANALYSIS ]
Экспериментальный режим, использование которого может сильно замедлить процесс сканирования. Опции раздела позволяют определять угрозы, базирующиеся на длине наибольшей непрерывной строки в файле. Это полезно в случаях, когда вредоносный код закодирован, например, в basedir64.
Установка ClamAV (опционально)
Для того чтобы Linux Malware Detect мог быстрее сканировать большие группы файлов, можно установить антивирус ClamAV — в таком случае сканирование будет выполняться с помощью его движка.
Для работы не требуется какая-либо специфическая настройка — достаточно просто установить ClamAV.
Debian и Ubuntu | CentOS |
apt-get update apt-get install clamdscan clamav-daemon | yum install -y epel-release yum install -y clamav |
После установки нужно обновить вирусные базы ClamAV, выполнив в терминале команду freshclam
.
Сканирование
С помощью Linux Malware Detect можно запускать как разовые проверки, так и постоянный фоновый мониторинг отдельных директорий.
Разовые проверки
Проверка отдельной директории (например,
/var/www/html
) и всех вложенных файлов выполняется командой:maldet -a /var/www/html
Если нужно проверить данные сразу нескольких пользователей или сайтов, путь можно указывать в другом формате:
maldet -a /var/www/?/data
Или вообще запустить сканирование из файла со списком директорий:
maldet -f scan_list
Опции
-i
и-x
позволяют соответственно включить или исключить файлы с помощью регулярного выражения.Проверка файлов в директории
/var/www/html
, изменённых за последние 7 дней, выполняется командой:maldet -r /var/www/html 7
Чтобы сканирование выполнялось в фоновом режиме, не блокируя работу терминала, можно запустить его с дополнительной опцией
-b
:maldet -b -a /var/www/html
Отслеживать прогресс проверки можно через журнал
/usr/local/maldetect/logs/event_log
В процессе ручного сканирования вы увидите уведомление, где в последней строчке в случае успешного завершения будет указан ID отчёта, на примере — 200713-1132.32258
ID отчёта потребуется для дальнейших действий с обнаруженными вредоносными файлами.
Просмотреть отчёт можно командой:
maldet -e ID
Дополнительно можно отправить этот отчёт на почту заинтересованным лицам, добавив email в конце команды (работает при наличии настроенного почтового сервера):
maldet -e ID mailbox@example.com
Мониторинг
Для работы мониторинга используется библиотека inotify-tools
. Поэтому перед подключением установите её на ваш сервер:
Debian и Ubuntu | CentOS |
-- установлена по умолчанию -- apt-get install inotify-tools | yum install -y epel-release yum install inotify-tools |
Мониторинг можно настроить на отдельного пользователя, папку или даже отдельный файл. Он будет отслеживать изменение или появление новых файлов по указанному пути и запускать их проверку. Для запуска мониторинга директории /var/www/html
достаточно одной команды:
maldet -m /var/www/html
Статистику мониторинга можно отслеживать в журнале /usr/local/maldetect/logs/inotify_log
Полностью остановить сервис мониторинга при необходимости можно командой.
maldet -k
Дополнительные возможности
Просмотр логов антивируса:
maldet -l
Обновление базы вирусных сигнатур:
maldet -u
Обновление версии Linux Malware Detect:
maldet -d
Отправка инфицированного файла для анализа и добавления в базу вирусных сигнатур (работает при наличии настроенного почтового сервера):
maldet -c malware.php
Что делать при обнаружении вредоносных файлов
Если вы не настроили отправку инфицированных файлов в карантин через конфигурационный файл, эту операцию можно выполнить вручную. Следующая команда переместит все инфицированные файлы, обнаруженные в ходе проверки с идентификатором ID
, в папку /usr/local/maldetect/quarantine
:
maldet -q ID
Также можно попытаться автоматически вылечить все файлы, помещённые в карантин:
maldet -n ID
Если после проверки вы заключили, что лечение прошло успешно, восстановить файлы из карантина можно командой:
maldet -s ID
Вместо ID
можно указать имя отдельного файла, содержащегося в карантине. Все файлы перемещаются в первоначальное место расположения, автоматически восстанавливаются их права и владелец.
Если антивирус определил, но не смог автоматически устранить угрозу, такие файлы необходимо лечить традиционным способом — вычищать вредоносные вставки вручную.