Антивирусное программное обеспечение
Начнем рассмотрение материала данного раздела со знакомства с принципами построения антивирусного программного обеспечения. Многие считают, что антивирусная программа — это противоядие от всех болезней и, запустив антивирусную программу или монитор, можно быть абсолютно уверенным в их надежности. Такая точка зрения в корне неверна. Дело в том, что антивирус — тоже программа, пусть даже написанная профессионалом высокого класса. Но эта программа способна распознавать и уничтожать только известные вирусы. Иными словами, антивирус против конкретного вируса можно написать только в том случае, когда у программиста есть хотя бы один экземпляр этого вируса.
Поэтому между авторами вирусов и антивирусов идет бесконечная «война». И хотя создателей вирусов гораздо больше, но у их противников есть преимущество! Дело в том, что существует большое количество вирусов, алгоритм которых практически скопирован с алгоритма других вирусов. Как правило, такие вариации создают непрофессиональные программисты, которые по каким-то причинам решили написать вирус. Для борьбы с такими «копиями» придумано новое оружие — эвристические анализаторы. С их помощью антивирус способен находить подобные аналоги известных вирусов, сообщая пользователю, что на его компьютере, похоже, завелся вирус. Естественно, надежность эвристического анализатора не 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.
Один из ключевых вопросов, который будет стоять перед индустрией детектирующих систем в течение ближайших лет, заключается в том, продолжат ли заказчики покупать эти системы как самостоятельные продукты или уже скоро они станут приобретать их в комплекте с сетевым оборудованием—маршрутизаторами, коммутаторами или устройствами для локальных сетей. Ответ на него пока не найден, однако не приходится сомневаться, что системы выявления сетевых атак, используемые сегодня преимущественно такими крупными организациями, как банки и федеральные учреждения, со временем найдут дорогу к более широким слоям корпоративных пользователей.