Антивирусное программное обеспечение


Начнем рассмотрение материала данного раздела со знакомства с принципами по­строения антивирусного программного обеспечения. Многие считают, что антивирус­ная программа — это противоядие от всех болезней и, запустив антивирусную про­грамму или монитор, можно быть абсолютно уверенным в их надежности. Такая точка зрения в корне неверна. Дело в том, что антивирус — тоже программа, пусть даже написанная профессионалом высокого класса. Но эта программа способна распозна­вать и уничтожать только известные вирусы. Иными словами, антивирус против конк­ретного вируса можно написать только в том случае, когда у программиста есть хотя бы один экземпляр этого вируса.

Поэтому между авторами вирусов и антивирусов идет бесконечная «война». И хотя создателей вирусов гораздо больше, но у их противников есть преимущество! Дело в том, что существует большое количество вирусов, алгоритм которых практически ско­пирован с алгоритма других вирусов. Как правило, такие вариации создают непрофес­сиональные программисты, которые по каким-то при­чинам решили написать вирус. Для борьбы с такими «копиями» придумано новое оружие — эвристические анализаторы. С их помощью антивирус способен нахо­дить подобные аналоги известных вирусов, сообщая пользователю, что на его компьютере, похоже, завелся вирус. Естественно, надежность эвристического анали­затора не 100%, но все же его коэффициент полезного действия больше 0,5. Таким образом, в этой информа­ционной войне, как, впрочем, и в любой другой выживают сильнейшие. Вирусы, которые не распознаются антивирусными детекторами, способны написать только опытные и высококвалифицированные программисты.

Для организации эффективной антивирусной защиты необходимо наличие соот­ветствующего антивирусного средства. Несмотря на все разнообразие современных антивирусных программных продуктов, принципы их работы одинаковы. К основным функциям современных антивирусов относятся:

– сканирование памяти и содержимого дисков по расписанию;

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

– выборочное сканирование файлов с измененными атрибутами (размером, датой модификации, контрольной суммой и т. д.);

– сканирование архивных файлов;

– распознавание поведения, характерного для компьютерных вирусов;

– удаленная установка, настройка и администрирование антивирусных программ с консоли системного администратора; оповещение системного администратора о со­бытиях, связанных с вирусными атаками, по электронной почте, пейджеру и т. д.;

– принудительная проверка подключенных к корпоративной сети компьютеров, инициируемая системным администратором;

– удаленное обновление антивирусного программного обеспечения и баз данных с информацией о вирусах, в том числе автоматическое обновление баз данных по вирусам посредством Internet;

– фильтрация трафика Internet на предмет выявления вирусов в программах и до­кументах, передаваемых посредством протоколов SMTP, FTP, HTTP;

– выявление потенциально опасных Java-апплетов и модулей ActiveX;

– функционирование на различных серверных и клиентских платформах, а также в гетерогенных корпоративных сетях;

– ведение протоколов, содержащих информацию о событиях, касающихся антиви­русной защиты.

В связи с тем, что одной из основных характеристик современных вирусных атак является их высокая скорость распространения и высокая частота появления новых атак, современное антивирусное программное обеспечение нужно обновлять как можно чаще, тем самым повышая качество защиты. Необходимо учитывать все актуальные на текущий момент времени вирусные угрозы. Но наличие антивирусного программ­ного обеспечения — это обязательное, но не достаточное условие для отражения ви­русной атаки. Мало иметь в своем распоряжении средство, следует продумать и мето­ды его правильного использования. Защита от вирусов должна быть элементом политики безопасности, которую понимают и соблюдают все пользователи системы. В настоящее время обычная корпоративная компьютерная сеть отечественного за­казчика включает в себя десятки и сотни рабочих станций, десятки серверов, разнооб­разное активное и пассивное телекоммуникационное оборудование и, как правило, имеет очень сложную структуру (рис. 36).

Стоимость обслуживания такой сети катастрофически растет вместе с ростом чис­ла подключенных рабочих станций. Сейчас все только и говорят о том, как в данных условиях можно уменьшить совокупную стоимость владения или эксплуатации ком­пьютерной инфраструктуры предприятия. Очевидно, что расходы на антивирусную защиту корпоративной сети здесь являются не последним пунктом в списке общих расходов предприятия. Однако существует принципиальная возможность оптимиза­ции и снижения этих расходов путем использования специальных решений, позволя­ющих централизованно управлять антивирусной защитой корпоративной сети в реальном масштабе времени. Необходимо, чтобы такие решения позволяли админис­траторам сети предприятия отслеживать все точки проникновения вирусов с единой консоли управления и согласно технологии «клиент-сервер» эффективно управлять всеми присутствующими в корпоративной сети антивирусными средствами различ­ных производителей.

Такая стратегия антивирусной защиты позволяет блокировать все возможные точ­ки проникновения вирусов, такие как:

– проникновение вирусов на рабочие станции при использовании на рабочей стан­ции инфицированных файлов с переносимых источников (флоппи-диски, ком­пакт-диски, Zip, Jazz, Floptical и т. д.);

– заражение вирусами с помощью бесплатного инфицированного программного обеспечения, полученного из Internet через Web или FTP и сохраненного на ло­кальной рабочей станции;

– проникновение вирусов при подключении к корпоративной сети инфицирован­ных рабочих станций удаленных или мобильных пользователей;

– заражение вирусами с удаленного сервера, подсоединенного к корпоративной сети и обменивающегося инфицированными данными с корпоративными серве­рами файл– приложений и баз данных;

– распространение электронной почты, содержащей в приложениях файлы Excel и Word, инфицированные макровирусами.

Однако именно требование комплексного централизованного управления стало кам­нем преткновения для успешного создания эффективных комплексных систем антивирусной защиты корпоративных сетей в отечественных компаниях, что в конечном счете привело к столь широкому проникновению компьютерных вирусов в сети Internet/intranet Использование локальных антивирусных решений в корпоративной сети необходи­мо, но не достаточно для эффективной реализации антивирусной защиты предприятия. Сложившаяся сегодня ситуация требует незамедлительного вмешательства соответству­ющих должностных лиц и принятия решений, направленных на обеспечение и создание систем антивирусной защиты предприятия. По мнению многих специалистов, системы антивирусной защиты должны удовлетворять требованиям, приведенным в табл. 3.5

Таблица 3.5. Основные требования к корпоративной системе антивирусной защиты
Функциональные возможности Значение для корпоративного заказчика
Обнаружение вирусов Принципиально важна, т. к. напрямую оправдывает финансовые затраты на приобретение и эксплуатацию антивирусного программного обеспечения
Обнаружение деструктивного кода типа «троянский конь», враждебные апплеты ActiveX, Java Достаточно важна для корпоративного пользователя
Готовность быстрого реагирования на появление новых видов угроз Актуальна способность производителя своевременно и быстро реагировать на появление новых угроз
Сопровождение и поддержка Как правило, для пользователя важны ответы на следующие вопросы: «Какие составляющие входят в базовую конфигурацию?» «Что можно получить дополнительно» «Какие услуги входят в стоимость годовой технической поддержки?»
Исчерпывающий список защищаемых точек возможного проникновения вирусов Вирусы и враждебные программы могут проникать из различных источников. Поэтому пользователи хотят быть уверенными в том, что не осталось ни одной незащищенной точки проникновения вирусов. Важно и периодическое централизованное обновление вирусных сигнатур
Управляемость Возможность централизованного администрирования антивирусного программного обеспечения чрезвычайно актуальна. Так как нельзя полагаться на то, что конечные пользователи будут поддерживать работоспособность и обновление антивирусной защиты на своих рабочих станциях
Управление антивирусной защитой удаленных пользователей Сейчас появилось большое количество пользователей, которые выполняют свою работу дома, подключаясь к ресурсам корпорации через компьютерную сеть и привнося новые точки проникновения вирусов. Поэтому администратору необходимо поддерживать их на том же уровне антивирусной защиты, что и тех, которые работают на локальных компьютерах
Централизованное уведомление Пользователи понимают, что если они не смогут получить мгновенную единую картину всех уязвимых точек сети, они могут упустить из виду потенциальную, как правило, реальную вирусную атаку
Производительность системы Если антивирусная защита конфликтует с производительностью системы, доставкой почты или другими ключевыми аспектами современного процесса делового общения, у конечного пользователя появляется желание ее отключить
Удаленное администрирование (посредством браузера) Если администратор сам является удаленным пользователем, интерфейс браузера дает ему возможность администрирования всего предприятия независимо от своего местонахождения
Автоматическое распространение и обновление Сегодня администраторы могут быть ответственны за сотни рабочих станций и десятки различных сегментов сети предприятия, навестить которые самостоятельно невозможно. Поэтому понятно требование администратора, который хочет при помощи антивирусного программного обеспечения автоматизировать процесс автоматического распространения и обновления

Лучший способ борьбы с вирусной атакой — ее предотвращение. Для решения этой задачи необходимо:

– соответствующим образом сконфигурировать антивирусное программное обес­печение;

– использовать только лицензионное программное обеспечение;

– ограничить набор программ, которые пользователь способен установить в сис­теме;

– устранить известные уязвимости в используемом программном обеспечении;

– контролировать использование накопителей гибких дисков и дисков CD-ROM;

– разработать политику обработки электронной почты;

– разработать политику безопасности приложений, обрабатывающих документы с интерпретируемыми языками.

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

– сканирование в режиме реального времени, в фоновом или аналогичном режи­ме, должно быть разрешено;

– при старте системы нужно сканировать память, загрузочный сектор и систем­ные файлы;

– своевременно обновлять вирусные базы данных;

– желательно сканировать файлы всех типов или, как минимум, СОМ-, ЕХЕ-файлы, а также файлы типа VBS, SHS, OCX;

– установить аудит всех действий антивирусных программ.

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

Ограничение набора программ, которые пользователь способен установить в системе, связано с тем, что эти программы могут быть заражены вирусами или служить причиной успеха других атак. Особо следует обратить внимание на различные сервисы Internet и, в первую очередь, на программы передачи сообщений, такие как IRC, ICQ, Microsoft Chat (они могут передавать файлы и служить источником заражения системы).

Для устранения известных «дыр» в используемом программном обеспечении в каче­стве источника информации об уязвимостях можно использовать базы данных, которые обычно публикуются в списках рассылки Internet, а также на специальных сайтах.

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

В связи с тем, что сообщения электронной почты — один из самых популярных и быстрых способов распространения вирусов, в каждой организации должна быть раз­работана политика обработки электронной почты. Для защиты от проникновения ви­русов через сообщения электронной почты каждый пользователь системы должен:

– никогда не открывать сразу почтовое вложение в пришедшем ему сообщении, а сохранять его в определенном «карантинном» каталоге;

– никогда не открывать почтовых вложений, которые не были запрошены или о которых не было уведомления от отправителя (даже когда отправитель извес­тен, сообщение может содержать вирус, если отправитель неизвестен, сообще­ние с вложением лучше всего удалить);

– перед открытием вложения обязательно проверить его с помощью антивирусно­го программного обеспечения;

– если после выполнения всех этих процедур остались сомнения, стоит связаться с отправителем и выяснить у него информацию о посланном вложении;

– устранить возможные уязвимости в клиентском почтовом программном обеспе­чении.

Если пользователь или организация используют приложения, обрабатывающие документы с интерпретируемыми языками (например, семейство продуктов Microsoft Office), то порядок работы с этими документами тоже должен быть отражен в полити­ке безопасности.

Рассмотрим более подробно, как работают антивирусные программы и какие раз­новидности этих программ бывают.

Обычно анализ вирусов заключается в выделении в них сигнатур и последующем их поиске в потенциальных объектах вирусной атаки. Таким образом, еще несколько лет назад достаточно было поймать вирус, изучить его код (для профессионалов это, как правило, было делом нескольких минут) и выделить сигнатуру. Но вирусные тех­нологии не стояли на месте. Разрабатывались новые вирусы, а вслед за ними и новые программные антивирусные продукты.

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

Существуют следующие стандартные программы защиты (табл. 3.6):

– детекторы (scanner);

– фаги (полифаги) (scanner/cleaner, scanner/remover);

– ревизоры;

– сторожа;

– специальные вакцины;

– блокировщики.

Таблица 3.6. Стандартные антивирусные программы

Виды антивирусных программ Назначение Стандартные программы
Детекторы Обнаружение вирусов DrWeb AVP Adinf
Фаги (полифаги) Обнаружение и уничтожение вирусов Aidstest
Ревизоры Контроль путей распространения вирусов ADinf
Сторожа Контроль подозрительных на вирус операций VSAFE
Специальные вакцины Обработка файлов и загрузочных секторов на устойчивость к вирусам
Блокировщики Ограничение распространения вирусов

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

Среди детекторов можно выделить эвристические анализаторы кода — набор под­программ, анализирующих код исполняемых файлов, памяти или загрузочных секто­ров для обнаружения в нем разных типов компьютерных вирусов. Рассмотрим универ­сальную схему такого кодоанализатора. Действуя в соответствии с этой схемой, кодоанализатор способен максимально эффективно задействовать всю информацию, собранную для тестируемого объекта.

Эвристический подход состоит в попытке предложить, может быть, далекое от оп­тимального, но быстрое решение для чрезвычайно сложных (или даже неразрешимых) проблем на основе все более и более достоверных предположений.

Основная идея такого подхода состоит в том, что эвристика сначала рассматривает поведение программы, а затем сопоставляет его с характерным для злонамеренной атаки, наподобие поведения троянского коня. Установить модель поведения и принять решение относительно него можно с помощью нескольких механизмов. Для того чтобы выявить и определить все возможные действия программы, используют два подхода:

– сканирование;

– эмуляция.

Подход со сканированием предполагает поиск «поведенческих штампов», напри­мер, наиболее типичных низкоуровневых способов открытия файлов. Или процедура сканирования обычного исполняемого файла просматривает все места, где программа открывает другой файл, и определяет, какого рода файлы она открывает и что в них записывает.

Второй метод определения поведения— эмуляция. Такой подход несколько слож­нее. Программа пропускается через эмулятор Windows или макроэмулятор Macintosh или Word с целью посмотреть, что она будет делать. Однако возникают вопросы, по­тому что в этом случае многое зависит от причуд вирусов. Например, если вирус за­программирован на форматирование вашего жесткого диска 25 февраля в 10 час. утра, а при эмуляции этого вируса на симуляторе дата установлена на 24 февраля, то вирус пока не проявит свои намерения.

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

Недостаток эвристического подхода состоит как раз в его эвристичности. Всегда есть вероятность, что чрезвычайно подозрительный файл в действительности совер­шенно безобиден. Однако последний эвристический механизм Symantec под названи­ем Bloodhound позволяет обнаружить до 80% неизвестных вирусов выполняемых фай­лов и до 90% неизвестных макровирусов.

Стоит также заметить, что программы-детекторы не слишком универсальны, по­скольку способны обнаружить только известные вирусы. Некоторым таким програм­мам можно сообщить специальную последовательность байт, характерную для како­го-то вируса, и они смогут обнаружить инфицированные им файлы: например, это умеют NotronAntiVims или AVP-сканер.

Программа Aidstest устарела и сейчас уже практически не используется. Наиболее широкое распространение получили программы DrWeb и AVP. Благодаря своим но­вейшим детекторам, они могут обнаружить любые вирусы: как самые старые, так и только что появившиеся. Еще нужно упомянуть детектор ADinf. Эта антивирусная программа обнаруживает все вирусы, не изменяющие длину файлов, невидимые виру­сы, и многие другие. Таким образом, эти три программы обеспечивают мощнейшую защиту против вирусов. Все эти программы можно вписать в файл AUTOEXEC.BAT, тогда при загрузке компьютера проверка на заражение вирусом будет проводиться автоматически. Кстати, на Западе тоже предпочитают пользоваться такими российс­кими программами, как DrWeb и AVP.

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

Для тех, кто пользуется только лицензионным программным обеспечением, нет необходимости тратить время на лечение зараженных вирусом файлов. Проще вос­становить зараженную программу с дистрибутива. Но в связи с тем, что даже во мно­гих достаточно крупных организациях очень часто используют не лицензионную, а «пиратскую» продукцию (возможно, уже зараженную вирусом), то и чистые детекто­ры (сканеры) еще не скоро будут в состоянии конкурировать с фагами.

Фаги (полифаги) (scanner/cleaner, scaner/remover) — программы, способные не только обнаруживать, но и уничтожать вирусы, т. е. лечить «больные» программы (полифаг может уничтожить много вирусов). К полифагам относится и такая старая программа, как Aidstest, которая обнаруживает и обезвреживает около 2000 ви­русов.

Основной принцип работы традиционного фага прост и секретом не является. Для каждого вируса путем анализа его кода, способов заражения файлов и т. д. выделяется некоторая характерная только для него последовательность байт. Эта последователь­ность называется сигнатурой данного вируса. Поиск вирусов в простейшем случае сводится к поиску их сигнатур (так работает любой детектор). Современные фаги ис­пользуют другие методы поиска вирусов.

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

Программы, называемые ревизорами, контролируют возможные пути распрост­ранения инфекции. Изобретательность авторов вредоносного программного обеспе­чения ограничена некоторыми рамками, исходя из того, возможно в принципе. Эти рамки хорошо известны и поэтому вирусы все же не всесильны. Если взять под кон­троль все мыслимые направления вирусной атаки на компьютер, то можно находиться практически в полной безопасности. Из программ-ревизоров, которые можно при­обрести в России, следует обратить внимание на уже упомянутую выше программу ADinf.

Сторожами называют небольшие резидентные программы, находящиеся постоян­но в памяти компьютера и контролирующие операции, которые они считают подозри­тельными. В качестве примера программы-сторожа можно привести программный продукт VSAFE, входивший в поставку некоторых версий MS DOS.

Поскольку и вирусы, и обычные программы выполняют одни и те же операции, то невозможно даже выделить класс исключительно «вирусных» операций. Вследствие этого сторож либо вынужден ничего не контролировать и пассивно наблюдать за про­исходящим, либо «звенеть» при каждой подозрительной операции. Поэтому целесо­образно использовать программы-сторожа на самом минимальном уровне контроля (например, отслеживания изменений загрузочных секторов). Такими сторожевыми фун­кциями обладают некоторые современные BIOS, хотя и с этим все не так просто. Эта функция BIOS может конфликтовать с некоторыми операционными системами, а иногда может вообще не работать.

Специальные вакцины предназначены для обработки файлов и загрузочных секто­ров. Вакцины бывают пассивными и активными. Активная вакцина, «заражая» файл, подобно вирусу, предохраняет его от любого изменения и в ряде случаев способна не только обнаружить сам факт заражения, но и вылечить файл. Пассивные вакцины при­меняют только для предотвращения заражения файлов некоторыми вирусами, исполь­зующими простые признаки их зараженности — «странные» время или дата создания, определенные символьные строки и т.д.

В настоящее время вакцинирование широко не применяется. Бездумное вакцинирование всего и вся способно вызвать целые эпидемии несуществующих вирус­ных болезней. Так, в течение нескольких лет на территории бывшего СССР свиреп­ствовала страшная эпидемия ужасного вируса TIME. Жертвой этого вируса стали сотни абсолютно здоровых программ, обработанных антивирусной программой ANTI-КОТ.

Приведем пример из практики. В настоящее время имеется довольно много виру­сов, предотвращающих повторное заражение файлов некоторой «черной меткой», которой они метят инфицированную программу. Существуют, к примеру, вирусы, выставляющие в поле секунд времени создания файла значение 62. Уже довольно давно появился вирус» который ко всем зараженным файлам дописывал пять байт — MsDos. Нормальных файлов, содержащих в конце такую символьную строку, не бывает, поэтому вирус и использовал этот признак как индикатор заражения файла. Вакцинирование файлов против такого вируса совсем не сложно. Достаточно допи­сать в конец выше упомянутую символьную строку — и заражение таким вирусом вам не страшно. Страшно другое — некоторые антивирусные программы, встретив в конце файла злополучную строчку, начинают немедленно лечить его. Шансов на то, что после такого «лечения» «инвалид» будет нормально работать, практически никаких.

Еще одной разновидностью антивирусных программ являются блокировщики ви­руса. Они позволяют ограничить распространение эпидемии, пока вирус не будет унич­тожен. Практически все резидентные вирусы определяют факт своего присутствия в памяти машины, вызывая какое-либо программное прерывание с «хитрыми» парамет­рами. Бели написать простую резидентную программу, которая будет имитировать наличие вируса в памяти компьютера, правильно «отзываясь» на определенный па­роль, то вирус, скорее всего, сочтет эту машину уже зараженной.

Даже если некоторые файлы на компьютере содержат в себе код вируса, при ис­пользовании блокировщика заражения всех остальных файлов не произойдет. Для нормальной работы такой программы необходимо запустить блокировщик раньше всех остальных программ, например, в файле CONFIG.SYS. Но если вирус успел заразить COMMAND. СОМ или стартует из загрузочного сектора, то антивирус-блокировщик не поможет.

Очень важно применять альтернативные антивирусные решения. Сами по себе ан­тивирусные сканеры и настройки защиты в различных приложениях не обеспечивают адекватной защиты от вредоносных программ. Антивирусные сканеры необходимо постоянно обновлять, хотя быстро распространяющиеся вирусы могут опередить эти модернизации.

Единственный способ избежать воздействия вредоносного программного обеспе­чения — блокировать подозрительные файлы на межсетевом экране или на шлюзе электронной почты. Многие организации сейчас блокируют все входящие присоеди­ненные файлы, имеющие следующие, потенциально опасные, расширения: EXE, CORN, SCR, НТА, НТО, ASF, CHM, SHS, PIE Другие устанавливают еще более жесткие филь­тры, блокируя файлы с расширениями ADE, ADP, BAS, ВАТ, CMD, CNT, CPL, CRT, CSS, HIP, INF, INS, ISP, JS, JSE, INK, MDB, MDE, MSC, MSI, MSP, MST, PCD, REG, SET, SHB, URI, VB, VBE, VBS, WSC, WSF, WSH.

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