Лечебный моллюск

Аватар пользователя Tolstik
На фоне сотен и тысяч почтовых вирусов в день, атакующих компьютеры, особенно актуальной становится эффективная защита от них. Clam AntiVirus представляет особый интерес во-первых, что он портирован на оба семейства операционных системы (Windows и множество UNIX-систем), и во вторых, что невзирая на свою высокую эффективность, он открыт и бесплатен. Статья публикуется с любезного разрешения автора

Лечебный моллюск

Сергей ЯРЕМЧУК

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

Пробежавшись по серверам известных антивирусных компаний, можно практически на каждом из них найти необходимый продукт. Некоторые ориентируют свой антивирус только под серверное ПО, на некоторых сайтах можно найти версию, предназначенную и для индивидуального использования. Версии последних, как правило, предоставляются бесплатно, но условия лицензирования таких антивирусов могут и пересматриваться. Проект, который занимается разработкой полностью свободного антивируса, распространяющегося под лицензией GPL, называется Clam AntiVirus ( http://www.clamav.net ). Первоначальной целью разработчиков этого продукта была интеграция с почтовыми серверами для проверки вложений на предмет наличия вирусов, но на сегодняшний день ClamAV широко применяется и в настольных системах, чему способствуют графические интерфейсы, написанные для не­го. Антивирус работает на множестве операционных систем: Linux, Solaris, FreeBSD, OpenBSD, NetBSD, AIX, MacOS X, BeOS, HPUX, SCO UNIX, есть порты под Windows, поддерживает несколько архитектур Intel, Alpha, Spare, Cobalt MIPS boxes, PowerPC, RISC 6000. POSIX-интерфейс и общедоступные библиотеки позволяют быстро адаптировать ClamAV к другим приложениям. Программа работает с архивами и сжатыми файлами, в настоящее время есть поддержка RAR, ZIP, GZIP, BZIP2 и некоторых других. Встроена защита от mail-бомб и существенно переработанный и улучшенный milter-интерфейс к программе Sendmail. ClamAV обнаруживает более 30000 вирусов, червей и троянов. Существует онлайновая версия антивируса www.gietl.com/test-clamav. Так как ClamAV - открытый продукт, его развитию может помочь любой желающий. Например, если вам удалось обнаружить вирус, на который ClamAV никак не реагирует, заполнив форму на cgi.clamav.net/sendvirus.cgi или отправив ZIP-архив с паролем virus по адресу , можно добавить его в базу данных. Сразу отвечу на вопрос «Зачем пользователям, работающим в Windows, может понадобиться ClamAV?» Во-первых, есть реализации этой программы и под Windows. Во-вторых, иногда попадаются такие запущенные системы, что каждая загрузка может стать для них последней, и очистить жесткий диск от заразы получится, только загрузившись, например, из LiveCD-дистрибутива Linux. Наконец, при желании можно ознакомиться с принципами работы антивирусных программ, ведь все открыто и доступно.

Установка ClamAV

В большинстве дистрибутивов, скорее всего, вы обнаружите этот антивирус в списке приложений, предлагаемых для установки - для работы достаточно будет только обновить базы. Но антивирус развивается так быстро, а эффективность работы с выходом новых версий увеличивается, повышается стабильность, устраняются найденные недочеты и уязвимости (а кто сказал, что их нет и в закрытом ПО?). На сайте проекта доступны как прекомпилированные пакеты, так и архив с исходными текстами. Мы будем устанавливать из исходных текстов, так как это более общий случай.

Для начала создадим пользователя и группу, от имени которых в целях безопасности будет работать антивирус: # groupadd clamav # useradd -g clamav -в /bin/false –с "Clam AntiVirus" clamav

Затем скачиваем и распаковываем архив (кстати, размер архива, в версии 0.60, занимавшего 994 Кб, в последней версии 0.83 вырос уже до 3.48 Мб):

$tar xzvf clamav-0 . 83 . tar .gz $ cd clamav-0.83

И конфигурируем: $./configure

Опций конфигурирования не очень много и вряд ли они вам понадобятся вообще. Так, по умолчанию ClamAV устанавливается в /usr/local и, соответственно, конфигурационный файл будет лежать в /usr/local/etc, его месторасположение на /etc можно изменить, добавив опцию -sysconfdir=/etc или - более глобально - при помощи опции -ргеfix=/

Если конфигурирование завершилось без ошибок, компилируем и устанавливаем: $ make $ su -с "make install"

После окончания установки в нашем распоряжении будет несколько исполняемых файлов:

clamscan - утилита командной строки, предназначенная для проверки файлов и каталогов на предмет наличия вирусов;

clamd - антивирусный демон, прослушивающий подключения к Unix- или ТСР-сокетам и сканирующий каталоги по требованию. Обеспечена возможность on-access просмотра (только Linux и FreeBSD), в паре с clamuko. В последнем случае использован традиционный подход, применяемый в Unix при написании приложений. Так, ClamAV применяется для простой проверки файлов, т.е. сканирования. Если же необходимо, чтобы антивирус постоянно находился в оперативной памяти в качестве монитора и проверял файлы при каждой попытке обращения, используется дополнительный модуль Dazuko (http://dazuko.org).

clamdscan - простой интерфейс к демону clamd, позволяет также сканировать файлы и каталоги, при этом используются те же параметры, что и в clamscan;

clamav-milter (при конфигурировании с опцией –enable-milter) - представляет собой антивирусный интерфейс к sendmail, использует для просмотра почты clamd;

freshclam - утилита автоматического обновления вирусной базы данных через Интернет, позволяющая держать ее в самом современном состоянии;

sigtool - генерирует вирусную сигнатуру, используя внешний антивирусный сканер, который способен обнаружить неизвестный ClamAV вирус. Может создавать шестнадцатеричный дамп, формировать и распаковывать CVD-базу данных (ClamAV Virus Database).

Утилиты из комплекта

Теперь по порядку и поподробнее. Проверить текущий каталог на наличие вирусов можно, просто набрав clamscan без каких-либо параметров. В результате получим список проверенных файлов и отчет. Список просканированных файлов позволяет оценить работу утилиты с различными типами файлов на начальном этапе, но в большинстве случаев лучше добавить параметр -i для вывода только зараженных файлов. Указать на файлы, находящиеся в другом каталоге, можно, перечислив их в строке запуска - или, если проверяется каталог, указать путь к нему, не забыв опцию для рекурсивного обхода (для проверки работы антивируса с пакетом поставляется несколько тестовых файлов):

$ clamsoan -r -i /mnt/hda5

Опция -database= позволяет указать месторасположе­ние дополнительной антивирусной базы. Также по умолчанию программа не ведет никаких логов, при запуске через сгоп это не совсем удобно, т.к. теряется контроль над рабо­той программы. Тогда при помощи -log= указываем, в какой файл их заносить. При необходимости частичной проверки файлов каталога можно воспользоваться опциями -ехclude=PATT и -include=PATT. Первая позволяет указать шаблоны файлов, которые не надо проверять, а вторая - наоборот, только те, которые и надо просканировать в поиске вирусов. Наконец, опция -mbox включает сканирование почтовых каталогов и файлов:

#clamscan -r-mbox /var/spool/mail

Или можно проверять выход другой программы на наличие вирусов:

#cat testfile I clamscan

Кроме вывода информации об обнаружении вируса мож.но удалить (-remove)-или переместить (-move=DiRECTORY) такие файлы в другой каталог. Обычно при работе с архивами программа сама находит нужную утилиту для распаковки, дополнительных указаний ей не надо, но если появляются сообщения вроде /mnt/test/test.zip: Zip module failure, указываем ей на необходимость проверки архивов, и если не видно нужного архиватора в переменной $ратн, то прибавляем и местонахождение такой программы. Например, для гаг

-unrar [=fullpath]

Для zip-архива строка запуска может выглядеть так:

# clamscan -unzip /mnt/test/test.zip

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

Write error (disk full?) . Continue? (y/n/^C)

Каталог /tmp забивается таким образом очень быстро, т.е. закинув большой архив, можно провести DOS-атаку. Чтобы избежать этого, следует указать при помощи -tempdir= на другой каталог, в котором побольше свободного места.

Также можно установить максимальное количество извлекаемых за раз файлов (-max-files=#n) или извлечь сначала #n килобайтов архива (использовав nM или nm) можно определить количество.мегабайт) при помощи

-maxspace=#n

Можно просто указать на максимальный уровень рекурсии обхода архива -max-recursion=#n

В следующем примере используем новую антивирусную базу и ограничиваем размер временных файлов в 50 мегабайт, заодно проверяем архивы:

#clamscan -d /tmp/newclamdb -tgz -deb -unrar -max-space=50m -r /home

Я надеюсь, по clamscan все понятно. Главное отличие демона clamd от сканера состоит в следующем: он один раз при старте загружает все необходимые базы и настройки, после чего остается в оперативной памяти, постоянно готовый к работе. В своей работе он использует конфигурационный файл clamav.conf

Если запустить программу без дополнительного редактирования (в том случае, если установка происходила из сырцов), демон откажется работать:

#/usr/local/sbin/clamd ERROR: Please edit the example config file /usr/local/ etc/clamav.conf ERROR: can't parse the config file /usr/local/etc/ clamav.conf

Файл хорошо комментирован, опции описаны в man. Чтобы заставить работать демон в умолчальной конфигурации, достаточно убрать или закомментировать строку Example в самом начале файла. Запущенный демон ничего не делает. Чтобы определить, чем именно сейчас ему стоит заниматься, необходимо послать сигнал, либо, что более удобно, использовать утилиту clarridscan. Например:

#clamdscan /home

Утилита автоматического обновления антивирусных баз может запускаться в двух режимах: интерактивном - из командной строки, - и как демон. Утилита использует базу http://database.clamav.net для автоматического выбора зеркала. В комплекте имеется также список таких баз, в файле mirror.txt - утилита пробует соединиться с первым в списке и в случае неудачи последует по порядку далее. Можно подобрать для себя оптимальный вариант и поставить его первым.

Для начала следу­ет запустить утилиту без параметров; если все нормально, то следом создать лог-файлы, необходимые для работы:

# touch /var/log/clam-update.log # chmod 600 /var/log/clam-update.log # chown clamav /var/log/clam-update.log

Для запуска в режиме демона используется опция -d.

# freshclam -d -с 3 -l /var/log/clam-update.log

Параметр -с указывает на промежуток времени обновления базы в днях (число от 1 до 50). Для указания отличной от умолчания директории, в которую должны помещаться об­новления, используйте опцию -datadir=

Прокси можно указать двумя способами. Первый - задать в командной строке параметры -http-proxy=hostname[:port] и при необходимости указать пароль для доступа: -proxy-user= user:password. Второй вариант - установить в нужное значение переменную $http_proxy:

#texport http_proxy="proxy. server: 8080”

Для контроля за обновлениями можно воспользоваться параметрами -on-error-execute=COMMAND и -on-update-execute=COMMAND. Первая позволяет задать команду, которая будет выполнена при неудачном обновлении баз, вторая - наоборот, при успешном проведении обновления.

Для одноразового запуска утилиты в случае необходимости немедленного обновления она запускается без опции -d (да и -с смысла не имеет).

Остальные параметры при этом остаются теми же. В rpm-пакете лежит файл-шаблон /etc/sysconfig/freshclam, в котором можно заполнить соответствующие поля для установки всех вышеперечисленных параметров, а запускать утилиту предстоит при помощи скрипта /etc/init.d/freshclam

Можно для запуска использовать и cron, занеся в /etc/crontab для еженедельного обновления примерно такую строку.

0 00 * * 07 /usr/local/bin/freshclam-quiet -I /var/ log/clam-update.log

Остальные утилиты -sigtool, которая позволяет самим создать готовую сигнатуру для добавления в свою антивирусную базу, а также посмотреть внутрь баз, и clamav-milter, которая применяется на почтовых серверах - хотя и представляют интерес, но у большинства домашних пользователей применение вряд ли найдут.

Интерфейсы о реализации под Windows и все остальное

За относительно короткое время своего развития ClamAV получил вполне приличное количество интерфейсов, портов и всего прочего, облегчающего работу и интеграцию в приложения. Список некоторых из них можно найти в README-файле, а в clamdoc.pdf дано краткое их описание, занимающее несколько страниц.

Самым известным и быстро развивающимся фронт-эндом на сегодняшний день является KlamAV ( http://sourceforge.net/projects/klamav ), построенный на QT-библиотеках и ориентированный в первую очередь на использование в KDE. Поддерживается on-access и ручной режим сканирования, обновление антивирусных баз, карантин, просмотр почты для KMail и Ximian Evolution. Для удобства поставляется вместе с Dazuko, из последних версий для экономии размера сам ClamAV был убран, и его необходимо устанавливать отдельно.

Clamaktion ( http://web.tiscali.it/rospolosco/clamaktion ) позволяет пользователям КDЕ 3 проверять файлы и каталоги при помощи контекстного меню.

Есть еще интерфейсы CiamShell ( http://home.comcast.net/~schwalbrichard ), написанный на Java, и ClamTk - ( http://www.rootshell.be/~phenOm/clamtk ) - на Perl-tk, модуль к Webmin wbmclamav ( http://wbmclamav.labs.libre-entreprise.org ).

Кроме того, почтовые клиенты KMail ( http://kmail.kde.org ) и Sylpheed Claws ( http://claws.sylpheed.org ) позволяют просматривать почтовые вложения при помощи ClamAV.

По адресу http://www.sosdg.org/clamav-win32 найдете консольную версию антивируса, портированную под Windows, принципы работы которой не отличаются от Linux-версии.

Версия, имеющая графический интерфейс, лежит на ClamWin ( http://www.clamwin.net ). Она обеспечивает только сканирование по запросу, но может интегрироваться в Microsoft Outlook, проверяя почтовые вложения, или в Windows Explorer, добавляя в контекстное меню пункт “Проверить на вирусы”.

Существуют графические версии и под другие операционные системы. Например, BeClam ( http://www.bebits.com/app/3930 ) для BeOS, damXav ( http://www.markallan.co.uk/clamXav ) для MacOS X.

Антивирус пришелся по вкусу многим, в том числе администраторам, которые доверили свои серверы ClamAV, а также пользователям, беспокоящимся о безопасности своих компьютеров. Не верите - загляните на страницу http://clamav.sourceforge.net/whos.html#pagestart. Возможно, приведенный там список заставит вас пересмотреть свое отношение к этому продукту.

---- Примечание "Клуба": в США уже действует закон, по которому владелец компьютера, зараженного вирусом, если от него заразились другие компьютеры, несет судебную ответственность. В связи с этим было уже несколько судебных процессов.

Your rating: Нет Average: 9.8 (5 votes)
RSS-материал