Антивирусная защита
22.1. Антивирусные программы
Можно сказать, что популярность той или иной операционной системы определяет количество вирусов, которые предназначены для этой системы. Действительно, чем распространеннее операционная система, тем больше вирусов для нее написано. И это вполне оправдывает логику вирусописателей: никто не будет писать вирус для операционной системы, если ее используют всего несколько десятков или сотен человек.
С ростом популярности операционной системы Linux увеличился и ее «вирусный рейтинг». Если раньше считалось, что не существует вирусов, «обитающих» в Unix-подобной среде, то в последнее время ситуация несколько изменилась. Одними из самых распространенных вирусов для Linux являются: Bliss, Lion, Nuxbee, Ramen, RST и Satyr. Большинство вирусов для Linux являются «червями», то есть сетевыми вирусами, которые распространяются по сети с помощью тех или иных сетевых служб, например, службы электронной почты. Я не буду описывать каждый из вирусов — об этом вы можете прочитать на сайте http://www.avp.ru.
Самыми популярными отечественными антивирусными программами являются AVP и DrWeb. Последняя известна еще со времен DOS-подобных операционных систем. Разработчики данных программ выпустили версии AVP («Лаборатория Касперского», http://www.avp.ru) и DrWeb («Лаборатория Данилова», http://www.drweb.ru) для Linux.
Обе программы являются мощным барьером для всех типов вирусов, но я почему-то предпочитаю AVP, хотя в книге будет описана работа с обоими антивирусами.
Программа AVP для Linux (как и DrWeb для Linux) помимо специфических для Linux вирусов «знает» также вирусы для операционной системы Windows. Конечно, в Linux эти вирусы работать не будут, но данная возможность очень полезна при установке антивируса на почтовом сервере: ведь инфицированные файлы могут быть отправлены локальным пользователям, большинство из которых работает в операционной системе Windows. Кроме того, обе программы обладают функцией эвристического анализа, которая позволяет находить вирусы, которые еще не известны программе, а имеют черты, свойственные вирусам.
22.1.1. Программа DrWeb для Linux
Теперь перейдем непосредственно к процессу антивирусной проверки. Сначала будет рассмотрен DrWeb, а затем — AVP. В следующем п. 22.2 будет рассмотрена антивирусная проверка входящей электронной почты.
Установка DrWeb ничего необычного в себе не таит:
rpm -ihv drwebd-4.27-linux.i386.rpm
Естественно, номер версии у вас будет отличаться. Самую последнюю версию вы можете достать на сайте лаборатории Данилова — www.drweb.ru. Программа DrWeb обычно устанавливается в каталог /opt/drweb. Затем вы должны получить ключ drweb32.key, другими словами, купить ключ. Это тоже можно сделать на вышеуказанном сайте. Конечно, вы можете достать ключ любым другим способом, но это уже ваши заботы. Данный ключ вам нужно скопировать в каталог /opt/drweb, а потом файл drweb32.key скопировать в файлы drweb.key и drwebd.key:
cp ./drweb32.key /opt/drweb
cp /opt/drweb/drweb32.key /opt/drweb/drweb.key
cp /opt/drweb/drweb32.key /opt/drweb/drwebd.key
Затем откройте в любом текстовом редакторе файл /opt/drweb/drweb.ini и установите нужные вам параметры. Я рекомендую установить следующий параметр:
OutputMode = Terminal
По умолчанию данный параметр имеет значение Color, но лучше все-таки установить значение Terminal. При этом обеспечивается более «удобоваримый» вывод на терминал.
Теперь можно проверить работу антивируса:
/opt/drweb/drweb /root/cih.exe
Как видно из отчета (см. рис. 22.1), антивирус DrWeb проверил один файл /root/cih.ехе и нашел в нем вирус Win95.CIH.1035. DrWeb не вылечил ни одного файла (Cured: 0), не удалил ни одного файла (Deleted: 0), не переименовал и не переместил (Renamed: 0 и Moved: 0). Проверка не заняла много времени (0 секунд), а скорость сканирования составила 45 Кб/с.
Рис. 22.1. Антивирус DrWeb
Если у вас нет вируса для тестирования, вы можете воспользоваться стандартным файлом проверки — test.com. Если почему-то данный файл у вас отсутствует, создайте текстовый файл и добавьте в него всего одну строку:
Х50!Р%@АР[4\PZX54(Р^)7СС)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$Н+Н*
Затем сохраните его под именем test.com. В результате проверки данного файла вы должны получить сообщение:
EICAR Test File (Not a Virus!)
Последнее, что вам осталось настроить — это автоматическое обновление антивирусных баз данных. Антивирусные базы данных содержат образцы вирусов, с помощью которых антивирус идентифицирует тот или иной тип вируса. Эти базы доступны для всех пользователей по адресу: http://www.dials.ru/drweb/free.
Однако обновлять базы вручную — это занятие неблагодарное, поэтому настройте свою систему так, чтобы она самостоятельно обновляла антивирус. Специально для этой цели существует модуль update.pl. Он должен быть установлен в каталоге /opt/drweb/update.
Запускать данный модуль нужно так:
./update.pl /opt/drweb
/opt/drweb — это каталог, в который следует поместить обновленные базы. Естественно, для автоматического обновления у вас должно быть установлено соединение с Интернет до начала обновления. Лучше всего, если у вас выделенная линия: тогда вы вообще забудете что такое процесс обновления антивируса.
Если обновление было произведено успешно, добавьте запуск данного модуля в сценарий автозагрузки системы. Для этого создайте файл update_drweb:
#!/bin/sh
/opt/drweb/update/update.pl /opt/drweb
и поместите его в каталог /etc/cron.daily. Естественно, этот файл нужно сделать исполнимым. Теперь вы можете быть уверенны в том, что у вас самая свежая антивирусная база.
В сценарии автозагрузки можно добавить запуск демона drwebd. Перед этим следует убедиться, что демон нормально работает. Запустите демон вручную:
# /opt/drweb/drwebd
Вы должны увидеть примерно следующее:
Key file: /opt/drweb/drwebd.key
Registration info:
0000000000
xxxxxxxxxx
Loading /opt/drweb/drwebase.vdb — Ok, virus records: 28520
Daemon is installed, TCP socket created on port 3000
Данное сообщение свидетельствует о том, что демон функционирует нормально. Вот теперь добавьте запуск демона drwebd в сценарии автозагрузки системы.
22.1.2. Программа AVP для Linux
Программа AVP обнаруживает и удаляет следующие типы вирусов:
1. Стелс-вирусы (невидимки).
2. Полиморфные вирусы.
3. Вирусы, предназначенные для запуска в операционных системах Windows 9x, Windows NT, Linux/UNIX, OS/2.
4. Макро-вирусы, заражающие документы MS Office.
5. Вирусы для Java-апплетов.
6. «Троянские кони».
Для установки данной программы вам необходим компьютер с процессором 386 (или старше) и 8 Мб оперативной памяти (рекомендуется 16 Мб). Естественно, на компьютере должна быть установлена операционная система Linux.
Вставьте инсталляционный компакт-диск с антивирусом в CD-ROM и смонтируйте его командой:
mount –t iso9660 /dev/hdd /mnt/cdrom
где /dev/hdd — это имя устройства CDROM.
Перейдите в каталог /mnt/cdrom/Products/KAVLinux. В этом каталоге должен находиться файл AVPWSELinux.tgz. Скопируйте его в какой-нибудь каталог вашей файловой системы. Если для данного файла установлено право на исполнение, права доступа следует изменить, например:
chmod 444 AVPWSELinux.tgz
Затем распакуйте файл командой:
tar zxvf AVPWSELinux.tgz
В результате распаковки в текущем каталоге появятся два новых файла: AVPinstaller и AVPWSLinux.tgz. Для начала установки введите команду:
./AVPInstaller
Появится приглашение с выводом номера версии устанавливаемого продукта. Я использовал версию AVP 3.0 build 135.1. Вы должны увидеть примерно это сообщение:
I think you use Redhat-like system. You didn't write package in command line. Search in current directory?
Таким образом программа установки сообщает вам тип вашей операционной системы (Redhat-совместимый) и предлагает найти пакет с установочными файлами в текущем каталоге, на что вы должны ввести в ответ «у», то есть согласиться. Затем программа установки спросит вас, не хотим ли мы установить AVP:
In package /KAVLinux/AVPWSELinux/AVPWSLinux.tgz found AVPWSLinux (Antiviral Toolkit Pro for Linux) (Foundation files)), version 3.0 build 135. Do you want to install it?
Введите в ответ «у» и нажмите Enter. Установщик распакует необходимые файлы и спросит вас, не хотите ли вы запустить AVP для Linux:
Do you want run /opt/AVP/AvpLinux.
Пока запускать AVP рановато: мы еще не подготовили к первому запуску. Если вы попробуете сейчас запустить его, получите много сообщений об ошибках, а потом сканер завершит свою работу. Следует сказать, что все файлы будут установлены в каталог /opt/AVP.
Прежде всего нужно скопировать ключевой файл. Этот файл должен находиться на дискете, которая входит в ваш лицензионный комплект установки. Смонтируйте дискету:
mount /dev/fd0 /mnt/floppy
На дискете вы найдете один-единственный файл с расширением key. Скопируйте его в файл /opt/AVP/AvpUnix.key. При копировании обратите внимание на регистр букв в имени файла. Ключевой файл должен называться именно AvpUnix.key, а не как-либо иначе.
Затем откройте в любом текстовом редакторе файл /opt/AVP/ AvpUnix.ini (см листинг 22.1).
Листинг 22.1. Файл AvpUnix.ini[AVP32]
DefaultProfile=defUnix.prf
LocFile=None
[Configuration]
KeyFile=AvpUnix.key
KeysPath=/opt/AVP
SetFile=avp.set
BasePath=/opt/AVP
SearchInSubDir=No
В файле defUnix.prf содержатся настройки пользователя (профиль пользователя). Редактировать эти настройки рекомендуется с помощью программы AVPTuner, которая будет рассмотрена немного позже.
Ключевой файл называется AvpUnix.key. Путь, по которому расположены антивирусные базы, определяется параметром BasePath. Лучше не изменять данное значение. Лично у меня, когда я изменил значение параметра BasePath, AvpLinux продолжал искать антивирусные базы в локальном каталоге. Если вы все-таки изменили путь к базам, укажите полный путь к файлу avp.set. В этом файле прописаны все подключаемые базы. При этом подразумевается, что базы и файл avp.set расположены в одном и том же каталоге. Например, если вы решили установить базы в каталог /opt/AVP/Bases, внесите следующие изменения в файл конфигурации:
[Configuration]
KeyFile=AvpUnix.key
KeysPath=/opt/AVP
SetFile=/opt/Bases/avp.set
BasePath=/opt/AVP/Bases
SearchInSubDir=No
Естественно, файл антивирусных баз должен быть распложен в каталоге /opt/AVP/Bases. Для первого запуска воспользуйтесь базами, которые расположены на компакт-диске в каталоге /mnt/cdrom/Bases, а позже займемся их обновлением. Если вы скопировали базы из раздела Windows, внимательно проследите за регистром букв в имени файла. Иногда случается такое, что при копировании файлов из раздела Windows первая буква названия файла является прописной. Переименуйте такие файлы в соответствии с файлом avp.set, иначе сканер AvpLinux не будет работать (точнее, не найдет нужные ему базы). При работе с операционной системой Linux всегда следует помнить о регистре букв в именах файлов.
Теперь можно приступить к первому запуску программы. Введите команду (см. рис. 22.2):
/opt/AVP/AvpLinux/home/den
Рис. 22.2. АнтивирусAVP
После завершения процесса сканирования вы увидите отчет о проверенных объектах (см. рис. 22.3).
Как видно из рис. 22.3, было проверено 290 файлов и 87 каталогов. Скорость сканирования — 78 Кб/с, а время сканирования — 10 секунд. Не было найдено ни вирусов, ни «подозрительных» объектов (Suspicious).
Рис. 22.3. Отчет AVP
Если будет найден инфицированный файл, программа предложит вам выполнить следующие действия:
Report Only (Ok) — ничего не делать (только отчет).
disinfect — допытаться вылечить файл.
Delete — удалить.
Чтобы выбрать какое-нибудь действие, нажмите «Enter», «d» или «D» соответственно. Лечение файлов не всегда возможно, поэтому, если AVP не вылечил ваш файл, вам придется удалить его.
Случается и такое, что вирус поражает программу-сканер, то есть AvpLinux. В этом случае рекомендуется восстановить AVP из дистрибутива. В самом крайнем случае (если нет дистрибутива) можно попытаться вылечить файл, выбрав действие disinfect.
Иногда вы можете получить сообщение, что файл AvpLinux поврежден или заражен неизвестным вирусом. Это может быть вызвано тем, что вы (или кто-то другой) переименовали файл AvpLinux и пытаетесь запустить переименованную версию. В старых версиях AVP для Linux имя исполнимого файла было «зашито» в саму программу, поэтому обнаружив при запуске, что имя отличается от исходного, AVP выдавал такое сообщение, несмотря на это, что файл был целым и невредимым. Как правило, в новых версиях AVP эта ошибка устранена.
Программа AVP для Linux не лечит файлы, которые запакованы в архивы, файлы, инфицированные «троянскими конями», почтовые базы, файлы почтовых форматов. Поэтому, если эти файлы окажутся зараженными, их нужно будет удалить.
Кроме обыкновенных файлов и каталогов, можно также сканировать загрузочные сектора жесткого диска. Для включения режима сканирования MBR-сектора используется ключ «-Р-». Для включения режима сканирования Boot-секторов используется ключ «-В-». Для отключения данных режимов используются ключи «-Р» и «-В» соответственно. При попытке лечения зараженного сектора AVP перезапишет инфицированный сектор стандартным загрузочным сектором операционной системы DOS версии 6.0, поэтому будьте очень внимательны при лечении секторов — после такого «лечения» вы не сможете вообще запустить операционную систему. В этом случае нужно сделать резервное копирование всех файлов, а потом уже приступать к лечению. Полезно будет также создать загрузочную дискету Linux. Обычно она создается при установке системы, но ее никогда не поздно сделать с помощью программы qmkbootdisk.
Теперь перейдем к демону AVP. В отличие от сканера, демон AvpDaemon загружает антивирусные базы в память всего один раз – при запуске. В результате чего значительно сокращается время проверки объектов. Эта особенность определяет сферу применения демона AVP: почтовые, файловые и Web-серверы, где требуется быстро проверять поступающие объекты.
При установке в каталоге /etc/init.d будет создана ссылка avpdaemon на файл /opt/AVP/avpdaemon.rh, если вы используете Redhat-подобную операционную систему. Поэтому демон AVP будет загружаться автоматически при запуске системы. Сейчас можно выполнить его запуск вручную, введя команду:
/etc/init.d/avpdaemon start
Определить всевозможные параметры антивируса AVP можно с помощью программы AVPTuner. Запустите ее командой: /opt/AVp/AVPTuner (см. рис. 22.4).
Рис. 22.4. Программа AVPTuner
После запуска данной программы вам будут доступны следующие закладки: Location, Objects, Scanning, Actions, Options, Mail.
На закладке Location задаются каталоги, которые бы вы хотели проверить. Добавить еще один каталог можно, нажав на кнопку «Add folder». Знак плюса возле имени каталога означает включение его в область сканирования, минуса — исключения его из области сканирования. Изменить режим можно с помощью клавиши «Пробел». Для каждого каталога можно задать режим проверки, а также файлы, которые нужно проверить (программы, все файлы, по желанию пользователя). При выборе файлов для сканирования я рекомендую использовать режим Smart. При этом режиме проверяются все файлы, способные содержать код вируса.
На закладке Objects указываются все типы объектов, которые вы хотите проверить на наличие вирусов.
Параметры сканирования можно задать на закладке Scanning, а на закладке Actions можно определить вид действия при обнаружении инфицированного объекта.
На закладке Options можно указать дополнительные параметры сканирования. Я рекомендую включить режим эвристического анализа (Code Analyzer). Режим избыточного сканирования (Redundant Scanning) лучше не включать, поскольку значительно увеличивается время сканирования.
На закладке Mail можно включить режим отправки отчетов с результатами сканирования администратору или любому другому пользователю.
Автоматическое обновление антивирусных баз происходит с помощью программы AvpUpdater. Для автоматического обновления через Интернет используйте команду:
/opt/AVP/AvpUpdater –ui=ftp://ftp.kasperskylab.ru/updates
Данную команду полезно добавить в расписание демона crond. Создайте файл update_avp:
#!/bin/sh
/opt/AVP/AvpUpdater –ui=ftp://ftp.kasperskylab.ru/updates
Поместите этот файл в каталог /etc/cron. daily. Измените права доступа к этому файлу, разрешив его выполнение. Таким образом, каждый день вы будете получать обновленный файл daily.avc, содержащий информацию о вирусах, найденных сегодня. Каждую неделю будут обновляться еженедельные антивирусные базы, а также основные антивирусные базы по мере их выхода. Размеры антивирусных баз небольшие (кроме основных), поэтому можете особо не беспокоиться о трафике.
22.2. Проверка входящей и исходящей почты