Типы антивирусных программ
За сравнительно недолгую историю существования компьютерных вирусов антивирусная индустрия разработала целый ряд довольно эффективных мер борьбы с «компьютерной заразой». С течением времени некоторые из них устаревали и постепенно выводились антивирусными компаниями из действующего арсенала, на смену которым приходили новые, более современные и эффективные технологии. Подобная смена поколений весьма характерна для антивирусных программ, что определяется постоянным противостоянием вирус-антивирус. Последнее обстоятельство порождает непрекращающуюся гонку вооружений: появление нового вируса, использующего ранее неизвестную брешь в системе защиты операционной системы или приложения, немедленно влечет за собой адекватные действия по нейтрализации угрозы со стороны антивирусных программ. Например, такая судьба постигла иммунизаторов, бывших столь популярными на заре эры персональных компьютеров: они просто перестали удовлетворять требованиям, предъявляемым антивирусным программам. В свою очередь, антивирусные компании также нельзя обвинить в пассивности позиции, когда речь заходит о безопасности их заказчиков. Практически в каждой из них или есть специальные подразделения высокопрофессиональных антивирусных экспертов, которые занимаются изучением возможных путей развития вирусов, или эти компании регулярно проводят совещания, мозговые штурмы, преследующие те же цели. Наглядным примером может быть разработка механизмов защиты от неизвестных вирусов: технология эвристического анализа, избыточное сканирование и поведенческие
блокираторы
Сегодня выделяются 5 основных типов антивирусных программ: сканеры, мониторы, ревизоры изменений, иммунизаторы и поведенческие блокираторы. Некоторые из них практически вышли из употребления в связи с низкой эффективностью, другие еще не используются достаточно широко.
Сканеры
Антивирусные сканеры – пионеры антивирусного движения, впервые появившиеся на свет практически одновременно с самими компьютерными вирусами. Принцип их работы заключается в поиске в файлах, памяти, и загрузочных секторах вирусных масок, т. е. уникального программного кода вируса. Вирусные маски (описания) известных вирусов содержатся в антивирусной базе данных и если сканер встречает программный код, совпадающий с одним из этих описаний, то он выдает сообщение об обнаружении соответствующего вируса.
Здесь возникает первая проблема, потому что малейшие модификации вируса могут сделать его невидимым для сканера: программный код не будет полностью совпадать с описанием в базе данных. К примеру, существует много вариантов вируса «Чернобыль», и почти для каждого из них антивирусным кампаниям приходилось выпускать отдельное обновление антивирусной базы данных. Другим аспектом данной проблемы являются т. н. полиморфные вирусы, т. е. вирусы, не имеющие постоянного программного кода: заражая очередной файл, они при помощи шифрования самостоятельно изменяют свой вид, при этом сохраняя свою функциональность.
Привязанность сканеров к антивирусным базам означает вторую проблему: время между появлением вируса и выходом соответствующего обновления пользователь оставался практически незащищенным от атак новых вирусов. К счастью, сейчас скорость доставки противоядия сведена до минимума, в некоторых случаях исчисляясь минутами. Но и вирусы не стоят на месте: при помощи электронной почты они могут распространиться по всему миру за считанные секунды! Таким образом, даже современную скорость разработки и доставки защиты от новых вирусов нельзя считать достаточной. Именно поэтому еще в начале 90-х, эксперты придумали и внедрили в сканеры оригинальный способ обнаружения неизвестных вирусов – эвристический анализатор, т. е. анализ последовательности команд в проверяемом объекте, аккумуляция статистики и принятие решения о возможности присутствия в нем неизвестного компьютерного вируса. Однако, данный метод характеризуется наличием ложных срабатываний, недостаточно высоким уровнем надежности и отсутствием гарантии эффективного удаления обнаруженных вирусов. Для борьбы же с полиморфными вирусами были изобретены другие приемы: алгоритмические языки, описывающие все возможные варианты кода и системы автоматической дешифрации кода (эмуляторы).
Наконец, третья проблема: антивирусный сканер проверяет файлы, только когда пользователь “попросит” его это сделать, т. е. запустит программу. Это требует постоянного внимания и концентрации. Очень часто пользователи забывают проверить сомнительный файл, загруженный, например, из Интернет и, в результате, собственноручно заражают свой компьютер. Таким образом, сканер способен определить факт заражения постфактум, т. е. уже после того, как в системе появится вирус.
К другим недостаткам сканеров следуют отнести их большой размер, что определяется необходимостью «таскать» с собой антивирусную базу данных, требовательность к системным ресурсам и небольшая скорость поиска вирусов. Несмотря на это, не стоит забывать важное преимущество сканеров: они способны блокировать распространение Internet-червей, эффективно удалять вирусы из зараженных файлов и загрузочных секторов диска и восстанавливать их работоспособность. Безусловно, последнее возможно, только если вирус не уничтожил оригинальное содержимое зараженного объекта.
Мониторы
Развитие аппаратных возможностей компьютеров и появление более совершенных операционных систем сделало возможным разработку второго вида антивирусных программ — антивирусных мониторов. На данный момент различаются три основных типа: файловые мониторы, мониторы для почтовых программ и мониторы для специальных приложений.
По своей сути все они являются разновидностью сканеров, которые постоянно находятся в памяти компьютера и осуществляют автоматическую проверку всех используемых файлов в масштабе реального времени. Современные мониторы осуществляют проверку в момент открытия и закрытия программы. Таким образом, исключается возможность запуска ранее инфицированных файлов и заражения файла резидентным вирусом.
Для включения антивирусной защиты, пользователю достаточно загрузить монитор при запуске операционной системы или приложения. Как правило, это делает сам антивирусный пакет в процессе его установки следующими способами:
— добавляет инструкцию запуска монитора в каталог автоматически исполняемых программ или в соответствующее поле системного реестра
— регистрирует монитор как системный сервис, который запускается вне зависимости от имени пользователя
— интегрирует монитор в почтовую программу или другое приложение.
Благодаря фоновому режиму работы антивирусные мониторы позволяют пользователю не обременять себя заботой о ручном сканировании каждого нового файла: антивирусная проверка будет осуществлена автоматически. В случае обнаружения вредоносной программы, монитор, в зависимости от настроек, вылечит файл, заблокирует его выполнение или изолирует, переместив в специальную карантинную директорию для дальнейшего исследования.
Файловые мониторы являются наиболее распространенной разновидностью этого типа антивирусных программ. Они работают как часть операционной системы, в масштабе реального времени проверяя все используемые объекты, вне зависимости от их происхождения и принадлежности какому-либо приложению. Процедура работы файловых мониторов основана на перехвате и антивирусной фильтрации потока данных в т. н. точке входа операционной системы. Если в объекте, поступившем на точку входа, не обнаружено вредоносных программ, то он передается на выполнение. В обратном случае, объект, по описанному выше сценарию, лечится, блокируется или изолируется. Файловые мониторы широко используются как на рабочих станциях, так и на файловых серверах и серверах приложений. В случае их применения на сервере необходимо убедиться, что монитор поддерживает многопоточность обработки файлов, т. е. способен проверять одновременно много файлов. Иначе это может негативно сказаться на быстродействии как сервера так и сети в целом.
Мониторы для почтовых программ представляют собой антивирусные модули, интегрирующиеся в программы обработки электронной почты – как серверные, так и клиентские. По сути дела, они становятся неотъемлемой частью программы и при поступлении нового письма автоматически проверяют его. В отличие от файловых мониторов они требуют меньше системных ресурсов и гораздо более устойчивы, так как возможность системного конфликта на уровне приложения существенно меньше, нежели на уровне операционной системы. В дополнение к этому «почтовые» мониторы проверяют все входящие и исходящие сообщения сразу же после их получения или отправления. Файловые мониторы способны распознать вредоносный код только когда пользователь попробует его запустить. Кроме того, антивирусный модуль способен не только обнаруживать, но и успешно лечить все участки зараженных сообщений: прикрепленные файлы, другие сообщения любого уровня вложенности, внедренные OLE объекты и само тело письма. Такой комплексный подход не дает вирусам шансов «укрыться» ни в одном из участков письма. Мониторы для специальных приложений также обеспечивают фоновую проверку объектов, но только в рамках приложения, для которого они предназначены. Наглядным примером могут быть антивирусные мониторы для MS Office 2000. Подобно своим «почтовым» «коллегам» они интегрируются в программу и находятся в памяти компьютера во время ее работы. Эти мониторы также в масштабе реального времени контролируют все используемые файлы и сообщают об обнаруженных вирусах. По сравнению с антивирусными сканерами мониторы предоставляют пользователям больше удобств в работе с компьютерами, полностью автоматизируя процесс проверки системных ресурсов. К другим их достоинствам стоит отнести способность обнаружить, локализовать и блокировать вирус на самой ранней стадии его размножения, что, кстати, бывает очень полезно в случаях, когда давно известный вирус постоянно «выползает неизвестно откуда». Однако, мониторы также требуют наличия громоздких антивирусных баз данных. Помимо этого, они отличаются более низкой степенью устойчивости работы, что определяет предпочтение многими системными администраторами регулярным проверкам серверных ресурсов сканерами, нежели постоянное использование мониторов.
Ревизоры изменений
Третья разновидность антивирусов – ревизоры изменений (integrity checkers). Эта технология защиты основана на том факте, что вирусы являются обычными компьютерными программами, имеющими способность тайно создавать новые или внедряться в уже существующие объекты (файлы, загрузочные секторы). Иными словами, они оставляют следы в файловой системе, которые затем можно отследить и выявить факт присутствия вредоносной программы.
Принцип работы ревизоров изменений основан на снятии оригинальных “отпечатков” (CRC-сумм) с файлов, системных секторов и системного реестра. Эти “отпечатки” сохраняются в базе данных. При следующем запуске ревизор сверяет “отпечатки” с их оригиналами и сообщает пользователю о произошедших изменениях, отдельно выделяя вирусоподобные и другие, не подозрительные, изменения.
В 1990 году первые вирусы-невидимки (stealth) Frodo и Whale чуть было не поставили под сомнение эффективность этого типа антивирусов. Технология работы вирусов-невидимок основывается на сокрытии своего присутствия в системе при помощи подстановки в случае попытки проверки зараженных файлов и загрузочных секторов антивирусными программами их «чистых» вариантов. Такие вирусы перехватывают прерывания обращения к диску и, при обнаружении попытки запустить или прочитать зараженный объект, подставляют его незараженную копию. Несмотря на это, ревизоры «научились» обращаться к дискам непосредственно через драйвер дисковой подсистемы IOS (супервизор ввода-вывода), минуя системные прерывания, что позволило им успешно обнаруживать даже вирусы-невидимки.
К достоинствам наиболее продвинутых ревизоров изменений стоит отнести исключительно высокую скорость работы, низкие требования к аппаратной части компьютера, высокий процент восстановления файлов и загрузочных секторов, поврежденных вирусами, в том числе неизвестными. Их подход к лечению зараженных объектов основывается не на знании как выглядит вирус, а на знании как выглядит «чистый» файл или сектор: все, что «портит чистоту» рассматривается как изменение, достойное внимания ревизора, который способен вернуть объект к исходному состоянию. Именно поэтому ревизоры не требуют громоздкой антивирусной базы данных, довольствуясь лишь описаниями способов внедрения вирусов, которые занимают, в зависимости от продукта, всего от 300 до 500 килобайт. Зная эти способы, программа может быстро и эффективно удалить вирус вне зависимости от того, где находится его код: начале, середине, конце или же вообще разбросан в виде небольших кусков по всему зараженному объекту. У ревизоров изменений тоже есть свои недостатки. Во-первых, они не способны поймать вирус в момент его появления в системе, а делают это лишь через некоторое время, уже после того, как вирус разошелся по компьютеру. Во-вторых, они не могут определить вирус в новых файлах (в электронной почте, на дискетах, в файлах, восстанавливаемых из резервной копии или при распаковке файлов из архива), поскольку в их базах данных отсутствует информация об этих файлах. Этим пользуются некоторые вирусы, которые используют эту “слабость” ревизоров и заражают только вновь создаваемые файлы, оставаясь, таким образом, невидимыми для этих антивирусных программ. В-третьих, ревизоры требуют регулярного запуска – чем чаще это будет происходить, тем надежнее будет контроль над вирусной активностью.
Иммунизаторы
Необходимо также упомянуть такую разновидность антивирусных программ, как иммунизаторы. Они делятся на два вида: иммунизаторы, сообщающие о заражении, и иммунизаторы, блокирующие заражение каким-либо типом вируса. Первые обычно записываются в конец файлов (по принципу файлового вируса) и при запуске файла каждый раз проверяют его на изменение. Недостаток у таких иммунизаторов всего один, но он принципиален: абсолютная неспособность обнаружить заражение вирусами-невидимками, принцип маскировки которых описан выше. Второй тип иммунизаторов защищает систему от поражения каким-либо определенным вирусом. Файлы модифицируются таким образом, что вирус принимает их за уже зараженные. Например, чтобы предотвратить заражение COM-файла вирусом Jerusalem достаточно дописать в его конец строку MSDos. Для защиты от резидентного вируса в память компьютера заносится программа, имитирующая копию вируса. При запуске вирус натыкается на нее и считает, что система уже заражена. Второй тип иммунизации не может быть признан универсальным, поскольку нельзя иммунизировать файлы от всех известных вирусов: у каждого из них свои приемы определения зараженности файлов. Кроме того, многие вирусы не проверяют файлы на предмет присутствия в них своей копии. Несмотря на это, подобные иммунизаторы в качестве полумеры могут вполне надежно защитить компьютер от нового неизвестного вируса вплоть до того момента, когда он будет определяться антивирусными сканерами. Из-за описанных выше недостатков иммунизаторы не получили большого распространения и в настоящее время практически не используются. Поведенческие блокираторы
Все перечисленные выше типы антивирусов не решают главной проблемы – защиты от неизвестных вирусов. Таким образом, компьютерные системы оказываются беззащитны перед ними до тех пор, пока антивирусные компании не разработают противоядия. Иногда на это требуется до нескольких недель. Все это время компании по всему миру имеют реальную “возможность” потерять важнейшие данные, от которых зависит будущее их бизнеса или результаты многолетних трудов. Однозначно ответить на вопрос “что же делать с неизвестными вирусами?” нам предстоит лишь в новом тысячелетии. Однако уже сейчас можно сделать прогноз относительно наиболее перспективных путей развития антивирусного программного обеспечения. На наш взгляд, таким направлением станут т. н. поведенческие блокираторы. Именно они имеют реальную возможность со 100% гарантией противостоять атакам новых вирусов. Что такое поведенческий блокиратор? Это резидентная программа, которая перехватывает различные события и в случае «подозрительных» действий (действий, которые может производить вирус или другая вредоносная программа), запрещает это действие или запрашивает разрешение у пользователя. Иными словами, блокиратор совершает не поиск уникального программного кода вируса (как это делают сканеры и мониторы), не сравнивает файлы с их оригиналами (наподобие ревизоров изменений), а отслеживает и нейтрализует вредоносные программы по их характерным действиям. Идея блокираторов не нова. Они появились достаточно давно, однако эти антивирусные программы не получили широкого распространения из-за сложности настройки, требующей от пользователей глубоких знаний в области компьютеров. Несмотря на это, технология неплохо прижилась на других направлениях информационной защиты. Например, хорошо известный стандарт Java, разработанный компанией Sun, обеспечивал каждой выполняемой Java-программе строго ограниченное виртуальное пространство (набор разрешенных действий), которое предотвращало все попытки программ выполнить запрещенные инструкции (например, удаление файлов), которые, по мнению пользователя слишком подозрительны и представляют угрозу безопасности его данных.
Давайте рассмотрим подробнее достоинства и недостатки поведенческих блокираторов. Теоретически, блокиратор может предотвратить распространение любого как известного, так и неизвестного вируса, предупреждая пользователя до того, как вирус заразит другие файлы или нанесет какой-либо вред компьютеру. Но вирусоподобные действия может производить и сама операционная система или полезные утилиты. Здесь стоит провести грань между двумя типами блокираторов: файловыми блокираторами и блокираторами для приложений.
Файловый поведенческий блокиратор не может самостоятельно определить — кто же выполняет подозрительное действие — вирус, операционная система или какая-либо утилита и вынужден спрашивать подтверждения у пользователя. Т. е. в конечном счете решение зачастую принимает пользователь, который должен обладать достаточными знаниями и опытом, чтобы дать правильный ответ. В противном случае операционная система или утилита не сможет произвести требуемое действие, либо вирус проникнет в систему. Именно по этой причине блокираторы и не стали популярными: их достоинства зачастую становились их недостатками, они казались слишком навязчивыми своими запросами и пользователи просто удаляли эти программы. К сожалению, ситуацию сможет исправить лишь изобретение искусственного интеллекта, который сможет самостоятельно разобраться в причинах того или иного подозрительного действия.
Блокираторы для специализированных приложений имеют гораздо больше шансов получить широкое распространение, поскольку круг их компетенции четко ограничен структурой конкретного приложения. Это значит, что под зоркий глаз блокиратора попадает строго ограниченное количество действий, которые могут совершать программы, созданные для данного приложения.
Наиболее показательный пример – Microsoft Office и проблема защиты от макро-вирусов. Если рассматривать программы, написанные на наиболее распространенном макроязыке VBA (Visual Basic for Application), то тут можно с очень большой долей вероятности отличить вредоносные действия от полезных.
Благодаря проведенному анализу макро-вирусов в процессе моделирования их поведения, можно определить наиболее часто встречающиеся последовательности их действий. Это позволяет внедрить в программу новую, высокоинтеллектуальную систему фильтрации действий макросов и с высокой долей достоверности безошибочно выявлять и предотвращать те из них, которые представляют собой потенциальную опасность. Именно благодаря этому поведенческий блокиратор для MS Office не столь «навязчив» как его файловые «коллеги». Но, задавая меньше вопросов пользователю, программа не стала менее надежной. Используя его, пользователь практически на 100% защищен от макро вирусов, как известных, таки и еще не написанных.
Блокиратор перехватывает и блокирует выполнение даже многоплатформенных макро-вирусов, т. е. способных работать сразу в нескольких приложениях. Он одинаково надежно предотвращает действие вирусов в таких приложениях как Word, Excel, Access, PowerPoint, Project и даже приложениях, использующих язык VBA, но не входящих в состав пакета Microsoft Office – Visio, AutoCAD и др. Программа контролирует работу макросов с внешними приложениями, в т. ч. с почтовыми программами. Тем самым полностью исключается возможность распространения макро-вирусов через электронную почту. Использование поведенческого блокиратора для MS Office избавляет пользователя от вечной головной боли по поводу загрузки и подключения новых обновлений антивирусной базы для защиты от новых макро-вирусов, потому что любой новый макро-вирус уже по определению будет перехватываться программой. Это означает, что ликвидируется наиболее опасный отрезок времени между появлением вируса и антивируса. Однажды установленный, он надежно защитит компьютер от макро-вирусов вплоть до выхода новой версии языка программирования VBA с реализацией новых функций, которые могут использоваться для написания вирусов.
Главной целью поведенческих блокираторов является решение проблемы обнаружения и предотвращения распространения макро-вирусов. Однако, по определению, он не предназначен для их удаления. Именно поэтому его необходимо использовать совместно с антивирусным сканером, который будет способен успешно уничтожить вирус. Блокиратор позволит безопасно переждать период между обнаружением нового вируса и выпуском обновления антивирусной базы для сканера, не прибегая к остановке работы компьютерных систем из-за боязни навсегда потерять ценные данные или серьезно повредить аппаратную часть компьютера.
Мы прогнозируем, что с развитием компьютерных технологий, особенно в области разработки элементов искусственного интеллекта, значение, эффективность и простота использования блокираторов (в т. ч. файловых) будут стремительно возрастать. Именно этот тип антивирусных программ в ближайшее время станет основным средством антивирусной защиты, обеспечивая ее наиболее ответственный передний край – блокировку проникновения и распространения новых, ранее неизвестных вирусов.
Обзор типов антивирусных программ был бы не совсем полным, если бы мы не упомянули о лучшем способе их использования. Наши рекомендации предельно просты: лучшим вариантом может быть продуманная комбинация всех описанных выше способов. Следуя хорошо известной поговорке, советующей не класть все яйца в одну корзину, мы рекомендуем не полагаться целиком и полностью на сканеры или мониторы. У каждого вида антивирусных программ есть свои достоинства и недостатки. В совокупности они удачно компенсируют друг друга повышая степень защиты как домашнего компьютера, так и гетерогенной сети мирового масштаба.