3 Сентябрь 2017

Подключение дополнительных антивирусных баз к ClamAV

Adding unofficial anivirus databases to ClamCV

Title: Подключение дополнительных антивирусных баз к ClamAV Content: Антивирусный пакет ClamAV фактически стал стандартом антивирусной защиты для всех, как десктопных, так и серверных open-sourсе систем Также на базе технологий ClamAV существует и развивается несколько пакетов для защиты персональных компьютеров на базе операционных систем семейства Windows, среди которых я бы отдельно выделил Immunet, который единственный из всех существующих на рынке антивирусных мониторов был эффективен против эпидемии WannaCry на начальном этапе её распространения.

Долгая история развития ClamAV и активная работа сообщества специалистов в области антивирусной защиты позволили существенно расширить набор используемых приёмов и баз цифровых отпечатков, применяемых для обнаружения угроз. При этом официально поддерживаемые разработчиками базы самого ClamAV базы формируются с прицелом именно на распространение различного рода вирусов. Однако совеременные методы, используемые злоумышленниками, включают не только их, но всевозможные фишинговые, adware, spyware и другие механизмы. Именно этим моментам и уделено внимание в неофициальных базах для ClamAV, которые поддерживаются независимыми структурами.

Рассмотрим на практике процесс подключения неофициальных баз ClamAV.

Традиционно, будем использовать серверную систему на базе FreeBSD последней актуальной версии.

root@beta:~ # uname -v
FreeBSD 11.1-RELEASE-p1 #0: Wed Aug  9 11:55:48 UTC 2017     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC

В системе уже установлен и настроен антивирусный пакет ClamAV. Он используется для сканирования содержимого передаваемой через данный сервер электронной почты.

root@beta:~ # pkg info | grep clamav
clamav-0.99.2_4                Command line virus scanner written entirely in C

Для добавления в процесс сканирования ClamAV набора популярных неофициальных баз в дереве портов FreeBSD имеется поддерживаемый компанией eXtremeSHOK скрипт clamav-unofficial-sigs.

root@beta:~ # pkg search clamav-unofficial-sigs
clamav-unofficial-sigs-5.3.2_1 Update script for third-party ClamAV databases

Ввиду того, что никакой компиляции для его установки не требуется и, следовательно, отсутствуют существенные опции, установим его (и необходимые для работы сопутствующие программы bash и rsync в случае их отсутствия) из пакетов.

root@beta:~ # pkg install clamav-unofficial-sigs
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 4 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        clamav-unofficial-sigs: 5.3.2_1
        bash: 4.4.12_2
        libexecinfo: 1.1_3
        rsync: 3.1.2_7

Number of packages to be installed: 4

The process will require 9 MiB more space.
2 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/4] Fetching clamav-unofficial-sigs-5.3.2_1.txz: 100%   37 KiB  37.8kB/s    00:01
[2/4] Fetching bash-4.4.12_2.txz: 100%    1 MiB 208.7kB/s    00:07
[3/4] Fetching rsync-3.1.2_7.txz: 100%  298 KiB 152.6kB/s    00:02
Checking integrity... done (0 conflicting)
[1/4] Installing bash-4.4.12_2...
[1/4] Extracting bash-4.4.12_2: 100%
[2/4] Installing rsync-3.1.2_7...
[2/4] Extracting rsync-3.1.2_7: 100%
[3/4] Installing clamav-unofficial-sigs-5.3.2_1...
Extracting clamav-unofficial-sigs-5.3.2_1: 100%
[1/4] Installing libexecinfo-1.1_3...
[1/4] Extracting libexecinfo-1.1_3: 100%
Message from clamav-unofficial-sigs-5.3.2_1:
**********************************************************************

In order to start using clamav-unofficial-sigs, you need to configure
it first. Sample configuration files have been installed to:

/usr/local/etc/clamav-unofficial-sigs

All user configuration changes should go in file "user.conf". Modify
it according to your needs and when you are done set the value of
"user_configuration_complete" parameter to "yes".

NOTE: Starting with version 5.0.0 configuration has been split into
multiple files, which now reside in:

/usr/local/etc/clamav-unofficial-sigs

If you had previous version installed, you can remove the old
obsolete configuration file:

/usr/local/etc/clamav-unofficial-sigs.conf

To run the script periodically by cron, you also need to add it to
your crontab.

**********************************************************************
Message from libexecinfo-1.1_3:
===>   NOTICE:

The libexecinfo port currently does not have a maintainer. As a result, it is
more likely to have unresolved issues, not be up-to-date, or even be removed in
the future. To volunteer to maintain this port, please create an issue at:

https://bugs.freebsd.org/bugzilla

More information about port maintainership is available at:

https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html#maintain-port

Как видно, конфигурационные файлы, которые необходимы для функционирования скрипта расположены по пути /usr/local/etc/clamav-unofficial-sigs.

root@beta:~ # cd /usr/local/etc/clamav-unofficial-sigs
root@beta:/usr/local/etc/clamav-unofficial-sigs # ll
total 56
-rw-r--r--  1 root  wheel  23159  3 сент. 16:11 master.conf
-rw-r--r--  1 root  wheel  23158  2 сент. 17:41 master.conf.sample
-rw-r--r--  1 root  wheel   1267  2 сент. 17:41 os.conf
-rw-r--r--  1 root  wheel   1267  2 сент. 17:41 os.conf.sample
-rw-r--r--  1 root  wheel   2030  3 сент. 16:12 user.conf
-rw-r--r--  1 root  wheel   1862  2 сент. 17:41 user.conf.sample

Перед первым запуском необходимо отредактировать файл user.conf. Для этого, для начала получим доступ к наборам бесплатных отпечатков от SecuriteInfo и Malwarepatrol. В результате будут получены коды доступа, которые следует ввести в поля соответствующих переменных в вышеупомянутом конфигурационной файле.

root@beta:/usr/local/etc/clamav-unofficial-sigs # cat user.conf
...
malwarepatrol_receipt_code="..."
securiteinfo_authorisation_signature="..."
...

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

...
rsync_max_time="600"
downloader_max_time="600"
...

Ну и, наконец, в качестве индикатора завершения начального конфигурирования следует выставить специальную переменную user_configuration_complete.

...
user_configuration_complete="yes"
...

С дополнительными опциями для более тонкой настройки можно ознакомиться в файле master.conf.sample.

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

root@beta:/usr/local/etc/clamav-unofficial-sigs # clamav-unofficial-sigs.sh
################################################################################
 eXtremeSHOK.com ClamAV Unofficial Signature Updater
 Version: v5.3.2 (24 May 2016)
 Required Configuration Version: v65
 Copyright (c) Adrian Jon Kriel :: admin@extremeshok.com
################################################################################
=================================================================
Loading config: /usr/local/etc/clamav-unofficial-sigs/master.conf
=================================================================
=============================================================
Loading config: /usr/local/etc/clamav-unofficial-sigs/os.conf
=============================================================
===============================================================
Loading config: /usr/local/etc/clamav-unofficial-sigs/user.conf
===============================================================
===================
Preparing Databases
===================
...
=================================
Setting permissions and ownership
=================================
==============================================
Update(s) detected, reloading ClamAV databases
==============================================
=========================
ClamAV databases Reloaded
=========================
----------------------------------------------------------------------------
Issue tracker : https://github.com/extremeshok/clamav-unofficial-sigs/issues
----------------------------------------------------------------------------
----------------------------------------------------------------------------
New version : v5.6.2 @ https://github.com/extremeshok/clamav-unofficial-sigs
----------------------------------------------------------------------------
##############################################
      Powered By https://eXtremeSHOK.com
##############################################

В результате процесса будет перезапущен демон ClamAV для работы с уже новыми расширенными данными.

root@beta:/usr/local/etc/clamav-unofficial-sigs # grep loaded /var/log/clamav/clamd.log | tail -n2
Sun Sep  3 16:55:48 2017 -> Database correctly reloaded (6835028 signatures)
Sun Sep  3 17:00:27 2017 -> Database correctly reloaded (10257614 signatures)

Как видно, количество используемых сигнатур увеличилось примерно наполовину.

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

root@beta:/usr/local/etc/clamav-unofficial-sigs # clamscan --debug 2>&1 /dev/null | grep "loaded"

Теперь осталось добавить скирпт в CRON для регулярного обновления баз данных.

root@beta:~ # grep clamav-unofficial-sigs /etc/crontab
*/3       *     *       *       *       root    /usr/local/bin/clamav-unofficial-sigs.sh >/dev/null 2>&1

Безопасной работы!