Антивирусные "движки". Антивирусные движки


Сидит в траве китаец, засунул...так-с, о чем это я. Предлагаю вашему вниманию обзор на чудо китайской антивирусной промышленности. Это абсолютно бесплатный много-движковый антивирус, носящий название Qihoo 360 Total Security. Хотя, чаще всего его называют просто 360 Total Security. Такого наименования я и буду придерживаться в дальнейшем. Антивирус 360 Total Security способен составить здоровую конкуренцию многим коммерческим программам, не говоря уже о большинстве бесплатных антивирусных приложений. Давай те же разберем, чем он так хорош, наш узкоглазый приятель.

Установка антивируса

Полный установочный дистрибутив весит чуть более 30 Мб. Каким прессом разработчики ужимали файлы неизвестно, ведь начинка у этого антивируса весьма и весьма впечатляющая.

Запускаем установку. На вкладке «Настройка» можно лишь выбрать папку для инсталляции.


Жмем большую зеленую кнопку, ждем секунд 20 и все, установка антивируса завершена. Очень быстро и очень просто. Никаких тебе дополнительных параметров установки, выбора компонентов, предварительного сканирования. Конечно, иногда хочется поковыряться в настройках, но среднестатистический пользователь все равно жмет во всех окна кнопку «Далее», ни чего не читает, и ни чего не настраивает. Так что, оно даже хорошо.

При первом запуске у антивируса 360 Total Security предусмотрено что-то вроде быстрого обучения, путем вывода подсказок.


Пусть вас не пугают пять значков в этом окне. Хотя на всех сайтах пишут о пяти антивирусных движках, на самом деле это не так. Разберем чуть позже.

Интерфейс антивируса

Графическая оболочка у 360 Total Security не вызывает никаких особых нареканий. Интерфейс довольно логичен, удобен, и симпатичен.


Если вам не понравился внешний вид антивируса 360 Total Security, можно легко подгрузить одну из нескольких дополнительных тем на выбор, нажав на значок футболки в правом верхнем углу.


Мне, например, понравилась тема в духе Norton от Symantec, но на протяжении всего обзора я буду использовать стандартную тему.

Компоненты антивирусной защиты

Переходим к самому важному, а в данном случае и самому приятному - к уровню защиты антивируса 360 Total Security. Разберемся с пятью движками.

Антивирусные двигатели

  1. Облачный сканер 360 Cloud. Собственный облачный антивирусный движок, использующий информацию о контрольных суммах файлов. Всегда включен, отдельно не отключается.
  2. Движок Bitdefender. Весьма качественный антивирусный движок от румынских разработчиков. По умолчанию выключен.
  3. Движок Avira. Мощный антивирусный двигатель от немцев. По умолчанию отключен.
  4. QVM AI. Собственная система проактивной защиты, использующая облачные технологий. По сути, это просто отдельный модуль для защиты от неизвестных угроз, однако, у 360 Total Security он считается самостоятельным движком. Я его таковым не считаю. Всегда включен, отдельно не отключается.
  5. Исправление системы. Средство очистки и оптимизации системы. К антивирусной защите никакого отношения не имеет, ни разу не антивирусный движок.
Как видите, у 360 Total Security имеется 3 конкретных антивирусных движка и один модуль проактивной защиты, который можно считать четвертым, а можно и не считать.

Очень и очень приятно, что антивирусные двигатели Bitdefender и Avira можно включать и отключать вручную. Учитесь, товарищи криворучки из Trustport . Необходимо отметить, что эти движки сначала загружаются антивирусом, а только потом включаются и обновляются. По умолчанию для них нет необходимых файлов.


Если у вас уже возник вопрос, какой же из антивирусных движков у 360 Total Security держать активным, я вам отвечу. Родной китайский 360 Cloud сам по себе показывает очень неплохие результаты. Но он облачный, и ему необходимо постоянное интернет-соединение. Поэтому, в дополнение к 360 Cloud, я рекомендую включить или движок Avira или Bitdefender. На ваш вкус. Себе я бы оставил Авиру. Она мне больше нравится.

В принципе можно включить вообще все движки. Удивительно, но даже при таких условиях, моя тестовая виртуальная система, работающая на одном ядре с 1.5 Гб оперативной памяти, шевелится довольно живо. Да, конечно, есть какое-то замедление, но работать вполне комфортно. Как китайцы этого добились, я не знаю. Заметные тормоза начинаются только при обновлении антивируса 360 Total Security. Служба обновления сильно нагружает процессор, но это явление временное, возникающее из-за наличия только одного ядра.


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

Защитные технологии

Сейчас выберем и рассмотрим самое интересное из здоровенного списка на картинке ниже. Чего же там понапихали в антивирус 360 Total Security.


Защита веб-камеры. Блокирует доступ злоумышленникам к вашей веб-камере, а то вдруг вы сегодня не брились, а на лбу выскочил прыщ.

Защита от кейлоггеров. Борется с клавиатурными перехватчиками. Очень важно, если вы совершаете онлайн покупки и платите карточкой. Однако, тест Zemana Keylogger в моем случае был провален. Тест AKLT (Anti-KeyLogger Tester) тоже частично не был пройден.

Проверка загружаемых файлов . По идее этот компонент должен проверять скачиваемый файл еще до того, как он попадет непосредственно на ваш жесткий диск. Но проверка с помощью EICAR показала, что тестовый файл ловится лишь в кеше браузера. Однако, на картинке ниже вы можете заметить, что антивирус 360 Total Security заблокировал и саму Html страницу, на которой содержалась тестовая строка. То есть, 360 Total Security проверил весь текст интернет страницы и обнаружил на ней тестовую «вирусную» строку. Очень странно, что он не блокирует исполняемый файл при закачке.


Блокировка вредоносных сайтов. В объяснении не нуждается. Кроме того, у антивируса 360 Total Security есть дополнительные плагины для браузеров Chrome и Firefox, обеспечивающие дополнительную защиту от фишинга и вредоносных сайтов. Однако, EICAR тест на загрузку файла с плагином в Firefox также не был пройден.

Защита онлайн покупок. Интересная функция, определяющая момент посещения онлайн-магазина, и блокирующая на это момент времени запуск всех неизвестных программ. Тест Zemana Keylogger и AKLT наш 360 Total Security снова провалил. Возможно, тестовые программы известны антивирусу и являются доверенными, возможно виновата виртуальная среда Virtual Box, но при запуске браузера в песочнице ни одного перехвата совершить не удалось. Пользуйтесь песочницей.

Защита USB-носителя. Позволяет отключить функцию автозапуска для флешки.

Поведенческая блокировка. Запрещает выполнение подозрительных действий программами. Является проактивной защитой.

Защита реестра. Запрещает изменение критических веток реестра. Хорошая проактивная штука.

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

Файл защиты системы. Запрещает модификацию важных системных файлов. Нужно и полезно.

Дополнительные компоненты


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

Очистка. Удаляет временные файлы из всевозможных кешей. При беглом просмотре вроде не опасен, но список удаляемого огромен.

Инструменты.


Уязвимости. Следит за обновлением Windows. Обладателям лицензионной копии предлагаю пользоваться родной службой обновления. Обладателям не совсем лицензионной версии, советую вручную отключить службу обновления Windows, и отключить уведомление о наличии обновлений в 360 Total Security. Для этого жмем «Уязвимости» - «Параметры» - «Выключить всплывающее уведомление».


Песочница. Позволяет запускать подозрительные программы в ограниченной виртуальной среде. Обычно нужна для перестраховки и экспериментов, но для 360 Total Security является незаменимым средством в борьбе с клавиатурными шпионами.

Очистка резервных копий системы. Удаляет резервные файлы драйверов и обновлений Windows.

Настройка антивируса

С таким арсеналом в 360 Total Security с настройками можно и не заморачиваться. Включите дополнительный движок и спите спокойно. Но по умолчанию антивирус работает в «Оптимальном режиме». Я бы перешел на безопасный или настраиваемый. Для этого жмем на значок щита, а потом меняем режим. В настраиваемом режиме можно включать и отключать каждую из технологий защиты отдельно. Очень удобно.


Но можно пойти дальше и накрутить защиту еще больше. Заходим в настройки.

  1. Основные - сканировать сжатые файлы во время полной проверки диска.
  2. Активная защита - выполнять мониторинг всех типов файлов.

Итоговый отзыв. Выводы по обзору антивируса

Мощный много-движковый антивирус с хорошим уровнем проактивной защиты. Полностью бесплатный. Даже при максимальных настройках антивируса 360 Total Security, слабоватая тестовая система особо не тормозила. Можно включать дополнительные антивирусные движки по отдельности, а также довольно тонко выбирать используемые технологии защиты. Удобный интерфейс, наличие дополнительных тем на любой вкус и цвет.

К недостаткам программы можно отнести полное отсутствие сетевого экрана, невнятную работу компонентов веб-защиты, неспособных блокировать зараженные файлы до их загрузки, зато проверяющих текст веб-страницы. Кроме того, нарекания вызывают настройки антивируса 360 Total Security, не имеющие единого дерева для всех компонентов. Настройки дополнительных модулей открываются отдельно, каждое в своем окне. Также сомнительным является сервис оптимизации системы, предлагающий отключить потенциально необходимые службы Windows. Полностью отсутствует справочная информация по программе.

В итоге бесплатный антивирус 360 Total Security оставляет после себя очень приятное впечатление. Если вы ищите мощный бесплатный антивирус, или хотите уйти с платной программы, но при этом не жертвовать безопасностью - Qihoo 360 Total Security станет отличным выбором.

Забудьте про те китайские часы, которые сломались у вас на следующий день после покупки. Антивирус 360 Total Security - это совсем другая история.

Небольшое обновление . Версия 360 Total Security обновилась до 6.6. Теперь защита от кейлоггеров и защита онлайн покупок на виртуальной системе работают просто великолепно. Ни тест от Zemana, ни AKLT не смогли перехватить информацию не то что с защищаемых сайтов, но даже из блокнота! Такой защиты я пока не встречал ни у одного из платных антивирусов. Кроме того, вышла облегченная версия программы, названная 360 Total Security ESSENTIAL. Она представляет собой чисто антивирус без лишних компонентов по оптимизации, очистке, и обновлению системы. Версия у нее на данный момент 6.0, но вся защита от кейлоггеров также прекрасно работает.

Update 2 : Линейка бесплатных антивирусов обновилась до версии 7.6. В 360 Total Security добавили файервол от GlassWire (устанавливается отдельно), диспетчер маршрутизатора, защиту браузера от изменения настроек и защиту от перехвата данных. Последний пункт представляет собой средство борьбы с вирусами-шифраторами. При активном компоненте защиты от перехвата данных, антивирус будет предоставлять доступ к файлам и документам определенного формата только доверенным приложениям. В версии Essential добавлен только этот компонент. Кроме того, исправлены некоторые ошибки, однако веб-защита по прежнему не работает должным образом.

Update 3 : Сделал подробнейший обзор и тест облегченной версии бесплатного антивируса Qihoo 360 Total Security Essential 7.2.

360 Total Security - современный бесплатный антивирус от компании Qihoo с полноценной защитой от всех видов угроз в реальном времени, виртуальной средой Sandboxi с дополнительными функциями оптимизации и очистки системы.

Компания Qihoo представила свой мощный продукт 360 Total Security, который заменил предыдущую версию комплексного антивируса 360 Internet Security, он также использовал несколько антивирусных движков для защиты компьютера, включая собственные облачные разработки, хорошо зарекомендовавшие себя. В новом продукте количество движков увеличилось до пяти. Все они надежные, мощные и проверенные временем: QVM II (отвечает за проактивную защиту), 360 Cloud (облачная защита), System Repair (анализ системы на уязвимости и восстановление), BitDefender, Avira AntiVir, последние два можно включать и отключать по желанию (по умолчанию, они отключены после установки). Оптимизирована нагрузка на систему, что позволяет почти не замечать работу антивируса.

Приятный и дружественный интерфейс 360 Total Security реализован в стиле Windows 8. Сложностей в работе и обслуживании возникнуть не должно, всё интуитивно понятно. Набор возможных настроек вполне достаточный для того, чтобы подогнать работу антивируса под собственные запросы. Всё на своем месте и легко находится.


Уровень защиты легко настраивается в соответствующем меню "Protection", которое вызывается нажатием на большой значок (там где написано "защита:вкл") и потом "Настройка". Пользователь может выбрать уровень из готовых наборов правил или установить собственный, включая или отключая выбранные модули защиты: использовать ли антивирусные движки BitDefender и Avira AntiVir, условия проверки файлов (при сохранении или также при каждом открытии), использовать ли поведенческий анализ, проверять файлы при загрузке из интернет, включить или отключить защиту банковских операций и прочие функции. По умолчанию стоит сбалансированный режим, обеспечивающий оптимальный режим нагрузки и защиты.


Из меню настроек можно установить дополнительно плагин веб-защиты 360 Web Threat Protection, который определяет вредоносные ссылки и сайты на основе облачной базы ссылок из центра безопасности 360 Cloud Security Center. Плагин веб-защиты очень неплохо защищает от вредоносных, фишинговых (поддельных) и мошеннических сайтов. В меню Инструмены можно дополнительно установить фаервол (брандмауэр) GlassWire , отличающийся надежностью и простотой настройки правил, в отличие других фаерволов, рассчитанных на хорошую подготовку пользователя. Там же можно добавить модуль сжатия системных файлов, плагин веб-защиты браузеров, настроить песочницу и исправить уязвимости системы.


Имеется собственная безопасная виртуальная среда - песочница Sandbox, в ней можно безопасно запускать любую программу, кстати, поддерживается Windows 8.1. Можно настроить автоматический запуск определенных программ в такой среде Sandbox, чтобы в любое время можно было удалить все следы работы опасной программы, так, будто она вообще не запускалась, поскольку Sandbox - изолированная среда и работает обособленно от основной системы, не производя в ней изменений.


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

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


Поиск и решение проблем с уязвимостью системы:


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

Управлять антивирусом, также можно через контекстное меню в системном трее (иконка на панели внизу рядом с часами).

360 Total Security в первую очередь, отличный инструмент защиты компьютера, мощный антивирус с высоким уровнем защиты, на основе нескольких антивирусных движков и расширениями веб-защиты, а также встроенной безопасной виртуальной средой Sandbox песочницой. При всем этом, очень легок в применений и приятен в работе.

Компания Qihoo начала дополнительно выпускать облегченную версию антивируса без элементов оптимизации и ускорения - . Этот продукт содержит только антивирусные компоненты, то есть все антивирусные движки, включая BitDefender и Avira, а также песочницу. Русскоязычный интерфейс также поддерживается. Облегченная версия многим нравится больше.

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

Поэтому сегодня мы рассмотрим наилучшие антивирусы, которые не грузят систему, подходящие для слабых ПК, и вы выберите для себя наиболее оптимальный.

При составлении данного списка, мы отталкивались от следующих характеристик :

  • Процессор: 0,5 – 1.5Ггц.
  • Оперативная память: 128-256Мб.
  • Место на винчестере: 15-300Мб.

Ранее уже была похожая статья об антивирусах для слабых машин , но в ней мы разбирали защитников, отталкиваясь от большего объема ОЗУ (256Мб-1ГБ) и процессора (от 1.5Ггц). Если ваш ПК или ноутбук превосходит данные характеристики, рекомендуем ознакомиться с ней.

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

AhnLab V3 Internet Security

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



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

Утилита имеет такие системные требования :

  • Процессор – от 0.5ГГц и выше.
  • Оперативная память – от 256Мб.
  • Свободное место на диске – от 300Мб.
  • Поддерживает ОС начиная с Windows XP и до Windows 10.

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

ClamWin Free Antivirus

Еще одно бесплатное решение, находящееся в свободном доступе в интернете. Данную утилиту правильнее было бы назвать сканером, так как она не имеет сканера, который постоянно проверяет используемые файлы. Это значит, что если вы хотите найти вирус, необходимо вручную запускать проверку файла.



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

Если говорить о системных требованиях, то они следующие :

  • Процессор – 1.5ГГц.
  • HDD – 103Мб.
  • Оперативная память – 256Мб.
  • Совместим с Windows XP/Vista/7/8/10.

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

SMADAV

Отличный антивирус, выступающий в роли дополнительной защиты от вредоносного ПО. Является второй линией обороны, и полностью совместим с любыми другими антивирусными утилитами. Программа применяет эвристический и поведенческий анализ для максимально быстрого обнаружения и устранения вирусов. Именно благодаря этому обеспечивается высокий уровень безопасности. За счет малого количества используемых ресурсов, утилита не снижает производительность даже при активном использовании.



Он имеет целый ряд эффективных инструментов. Для начала стоит сказать о стандартном сканировании, которое бывает 3х типов:

  • Быстрое.
  • Полное.
  • Сканирование системной области.

Кроме этого, SMADAV оснащен системным редактором, с помощью которого можно выбрать конкретные элементы, они будут отображены в «Пуск», и отключить системные приложения. Также стоит обратить внимание на менеджер процессов, позволяющий просматривать запущенные процессы и при необходимости завершать их.

Системные требования :

  • Процессор — Intel Pentium III или выше.
  • ОЗУ – 256Мб.
  • Жесткий диск – 100Мб.
  • Работает на всех ОС Windows.

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

Webroot SecureAnywhere AntiVirus

Panda Antivirus Free

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



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

Подробный видео обзор AVG Free

Антивирусные движки.

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

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

Хороший или плохой "движок"?

К сожалению, разработчики антивирусного программного обеспечения очень редко раскрывают детали реализации своих "движков". Однако и по косвенным признакам можно определить, является ли "движок" хорошим или нет. Вот основные критерии, по которым можно определить качество антивирусного "движка":
Качество детектирования. Насколько хорошо антивирус определяет вирусы. Этот критерий можно оценить по результатам различных тестов, которые проводятся несколькими организациями и обычно представлены на web-ресурсах разработчика.

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

Уровень ложных срабатываний. Если на 100% незараженных файлах антивирус рапортует об обнаружении возможно зараженного файла, то это - ложное срабатывание. Стоит ли доверять такому эвристическому анализатору, который беспокоит пользователя ложными тревогами? Ведь за большим количеством ложных срабатываний пользователь может пропустить действительно новый вирус.

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

Частота и размер обновлений антивирусной базы. Эти параметры являются косвенными признаками качества "движка". Так как частый выпуск обновлений гарантирует, что пользователь всегда будет защищен от только что появившихся вирусов. Размер обновления (и количество детектируемых вирусов в этом обновлении) говорит о качестве проектирования антивирусной базы и, отчасти, "движка".

Возможность обновления "движка" без обновления самой антивирусной программы. Иногда для обнаружения вируса требуется обновить не только антивирусную базу данных, но и сам "движок". Если антивирус не поддерживает такую возможность, то пользователь может остаться без защиты перед лицом нового вируса. Кроме этого, такая возможность позволяет оперативно улучшать "движок" и исправлять в нем ошибки.

Антивирусный "движок": существующие технологии

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

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

Антивирусный "движок" (Anti-Virus Engine) - это программный модуль, который предназначен для детектирования вредоносного программного обеспечения. "Движок" является основным компонентом любой антивирусной программы, вне зависимости от ее назначения. Движок используется как в персональных продуктах - персональный сканер или монитор, так и в серверных решениях - сканер для почтового или файлового сервера, межсетевого экрана или прокси-сервера. Как правило, для детектирования вредоносных программ, в большинстве "движков" реализованы следующие технологии:
Поиск по "сигнатурам" (уникальной последовательности байт);
Поиск по контрольным суммам или CRC (контрольной суммы с уникальной последовательности байт);
Использование редуцированной маски;
Криптоанализ;
Статистический анализ;
Эвристический анализ;
Эмуляция.
Рассмотрим каждый из этих методов подробнее.

Поиск по "сигнатурам"

Сигнатура - это уникальная "строка" байт, которая однозначно характеризует ту или иную вредоносную программу. Сигнатурный поиск, в той или иной модификации, используется для обнаружения вирусов и других вредоносных программ, начиная с самых первых антивирусных программ и до сих пор. Неоспоримое достоинство сигнатурного поиска - скорость работы (при использовании специально разработанных алгоритмов, разумеется) и возможности детектирования нескольких вирусов одной сигнатурой. Недостаток - размер сигнатуры для уверенного детектирования должен быть довольно большой, как минимум 8-12 байт (обычно для точного детектирования используются гораздо более длинные сигнатуры, до 64 байт), следовательно, размер антивирусной базы будет достаточно большой. Кроме этого, в последнее время большую распространенность получили вредоносные программы, написанные на языках высокого уровня (C++, Delphi, Visual Basic), а у таких программ есть отдельные части кода, которые практически не изменяются (так называемая Run Time Library). Неправильно выбранная сигнатура неизбежно приведет к ложному срабатыванию - детектированию "чистого", не зараженного файла как зараженного вирусом. Как решение этой проблемы предлагается использовать или очень большие сигнатуры или использовать детектирование по некоторым областям данных, например, таблицы перемещений (relocation table) или текстовые строки, что не всегда хорошо.

Поиск по контрольным суммам (CRC)

Поиск по контрольным суммам (CRC - cyclic redundancy check), по сути, является модификацией поиска по сигнатурам. Метод был разработан для избежания основных недостатков сигнатурного поиска - размера базы и уменьшения вероятности ложных срабатываний. Суть метода состоит в том, что для поиска вредоносного кода берется не только "опорная" строка - сигнатура, а, вернее сказать, контрольная сумма этой строки, но и местоположение сигнатуры в теле вредоносной программы. Местоположение используется для того, чтобы не подсчитывать контрольные суммы для всего файла. Таким образом, вместо 10-12 байт сигнатуры (минимально) используется 4 байта для хранения контрольной суммы и еще 4 байта - для местоположения. Однако метод поиска по контрольным суммам несколько медленнее, чем поиск по сигнатурам.
Использование масок для обнаружения вредоносного кода довольно часто бывает осложнено наличием шифрованного кода (так называемые полиморфные вирусы), поскольку при этом либо невозможно выбрать маску, либо маска максимального размера не удовлетворяет условию однозначной идентификации вируса без ложных срабатываний.
Невозможность выбора маски достаточного размера в случае полиморфного вируса легко объясняется. Путем шифрования своего тела вирус добивается того, что большая часть его кода в пораженном объекте является переменной, и, соответственно, не может быть выбрана в качестве маски. (Подробнее самошифрующиеся и полиморфные вирусы описаны в приложении в конце статьи).
Для детектирования таких вирусов применяются следующие методы: использование редуцированной маски, криптоанализ и статистический анализ. Рассмотрим эти методы подробнее.

Использование редуцированной маски

При поражении объектов вирус, использующий шифрование, преобразует свой код в шифрованную последовательность данных:
S = F (T), где
T - базовый код вируса;
S - зашифрованные коды вируса;
F - функция шифрования вируса, произвольно выбирающаяся из некоторого множества преобразований {F}.
Способ редуцированной маски заключается в том, что выбирается преобразование R зашифрованных кодов вируса S, такое, что результат преобразования (то есть некоторая последовательность данных S") не будет зависеть от ключей преобразования F, то есть
S = F (T)
S" = R (S) = R (F (T)) = R" (T).
При применении преобразования R к всевозможным вариантам шифрованного кода S результат S" будет постоянным при постоянном T. Таким образом, идентификация пораженных объектов производится путем выбора S" в качестве редуцированной маски и применения к пораженным объектам преобразования R.

Криптоанализ

Этот способ заключается в следующем: по известному базовому коду вируса и по известному зашифрованному коду (или по "подозрительному" коду, похожему на зашифрованное тело вируса) восстанавливаются ключи и алгоритм программы-расшифровщика. Затем этот алгоритм применяется к зашифрованному участку, результатом чего является расшифрованное тело вируса. При решении этой задачи приходится иметь дело с системой уравнений.
Как правило, этот способ работает значительно быстрее и занимает гораздо меньше памяти, чем эмуляция инструкций вируса. Однако решение подобных систем часто является задачей высокой сложности.
Причем основная проблема - это математический анализ полученного уравнения или полученной системы уравнений. Во многом задача решения систем уравнений при восстановлении зашифрованного тела вируса напоминает классическую криптографическую задачу восстановления зашифрованного текста при неизвестных ключах. Однако здесь эта задача звучит несколько иначе: необходимо выяснить, является ли данный зашифрованный код результатом применения некоторой известной с точностью до ключей функции. Причем заранее известны многие данные для решения этой задачи: участок зашифрованного кода, участок незашифрованного кода, возможные варианты функции преобразования. Более того, сам алгоритм этого преобразования и ключи также присутствуют в анализируемых кодах. Однако существует значительное ограничение, заключающееся в том, что данная задача должна решаться в конкретных границах оперативной памяти и процедура решения не должна занимать много времени.

Статистический анализ

Также используется для детектирования полиморфных вирусов. Во время своей работы сканер анализирует частоту использования команд процессора, строит таблицу встречающихся команд процессора (опкодов), и на основе этой информации делает вывод о заражении файла вирусом. Данный метод эффективен для поиска некоторых полиморфных вирусов, так как эти вирусы используют ограниченный набор команд в декрипторе, тогда как "чистые" файлы используют совершенно другие команды с другой частотой. Например, все программы для MS-DOS часто используют прерывание 21h (опкод CDh 21h), однако в декрипторе полиморфных DOS-вирусов эта команда практически не встречается.
Основной недостаток этого метода в том, что есть ряд сложных полиморфных вирусов, которые используют почти все команды процессора и от копии к копии набор используемых команд сильно изменяется, то есть по построенной таблице частот не представляется возможным обнаружить вирус.

Эвристический анализ

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

Статический метод. Поиск общих коротких сигнатур, которые присутствуют в большинстве вирусов (так называемые "подозрительные" команды). Например, большое количество вирусов производит поиск вирусов по маске *.EXE, открывает найденный файл, производит запись в открытый файл. Задача эвристик в этом случае - найти сигнатуры, отражающие эти действия. Затем происходит анализ найденных сигнатур, и, если найдено некоторое количество необходимых и достаточных "подозрительных команд", то принимается решение о том, что файл инфицирован. Большой плюс этого метода - простота реализации и хорошая скорость работы, но при этом уровень обнаружения новых вредоносных программ довольно низок.

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

Эмуляция

Технология эмуляции кода программ (или Sandboxing) явилась ответом на появление большого числа полиморфных вирусов. Идея этого метода состоит в том, чтобы эмулировать исполнение программы (как зараженной вирусом, так и "чистой") в специальном "окружении", называемым также буфером эмуляции или "песочницей". Если в эмулятор попадает зараженный полиморфным вирусом файл, то после эмуляции в буфере оказывается расшифрованное тело вируса, готовое к детектированию стандартными методами (сигнатурный или CRC поиск).
Современные эмуляторы эмулируют не только команды процессора, но и вызовы операционной системы. Задача написания полноценного эмулятора является довольно трудоемкой, не говоря уже о том, что при использовании эмулятора приходится постоянно контролировать действия каждой команды. Это необходимо для того, чтобы случайно не выполнить деструктивные компоненты алгоритма вируса.
Следует особо отметить, что приходится именно эмулировать работу инструкций вируса, а не трассировать их, поскольку при трассировке вируса слишком велика вероятность вызова деструктивных инструкций или кодов, отвечающих за распространение вируса.

База данных антивирусного "движка"

База данных является неотъемлемой частью антивирусного "движка". Более того, если считать что хорошо спроектированный "движок" изменяется не так часто, то антивирусная база изменяется постоянно, потому что именно в антивирусной базе находятся сигнатуры, контрольные суммы и специальные программные модули для детектирования вредоносных программ. Как известно, новые вирусы, сетевые черви и другие вредоносные программы появляются с завидной частотой, и поэтому очень важно, чтобы обновления антивирусной базы происходили как можно чаще. Если пять лет назад было достаточно еженедельных обновлений, то сегодня просто необходимо получать хотя бы ежедневные обновления антивирусной базы.
Также очень важно, что именно находится в антивирусной базе: только ли записи о вирусах или еще и дополнительные программные процедуры. Во втором случае гораздо легче обновлять функционал антивирусного "движка" путем обычного обновления баз.

Поддержка "сложных", вложенных объектов

За последние несколько лет антивирусные "движки" сильно изменились. Если первым антивирусам для того, чтобы считаться первоклассной программой, было достаточно проверять системную память, исполняемые файлы и загрузочные сектора, то уже через несколько лет в связи с ростом популярности специальных утилит упаковки исполняемых модулей перед разработчиками возникла задача распаковать упакованный файл перед тем, как его сканировать.
Затем новая проблема - вирусы научились заражать архивные файлы (да и сами пользователи зачастую пересылали зараженные файлы в архивах). Антивирусы были вынуждены научиться обрабатывать и архивные файлы. В 1995 году появился первый макровирус, заражающий документы Microsoft Word. Стоит заметить, что формат документов, используемый Microsoft Word, закрытый, и очень сложен. Ряд антивирусных компаний до сих пор не умеют полноценно обрабатывать такие файлы.
Сегодня, в связи с огромной популярностью электронной почты, антивирусные "движки" также обрабатывают и базы почтовых сообщений и сами сообщения.

Методы детектирования

В типичном антивирусном "движке", который реализован в каждой антивирусной программе, используются все необходимые технологии для обнаружения вредоносных программ: эффективный эвристический анализатор, высокопроизводительный эмулятор и, что самое главное, грамотная и гибкая архитектура подсистемы детектирования вредоносных программ, позволяющая использовать все перечисленные выше методы детектирования.
Почти в каждом антивирусном "движке" базовым является метод детектирования по контрольным суммам. Этот метод был выбран исходя из требования минимизации размера антивирусных баз. Однако архитектура "движка" часто настолько гибка, что позволяет использовать любой из перечисленных выше методов детектирования, что и делается для некоторых особо сложных вирусов. Это позволяет добиться высокого уровня детектирования вирусов. Подробнее архитектура антивирусного "движка" представлена на схеме далее в тексте.
Практическое применение способов обнаружения полиморфных вирусов (криптоанализ и статистический анализ, применение редуцированной маски и эмуляция), сводится к выбору наиболее оптимального по быстродействию и объему требуемой памяти метода. Код большинства самошифрующихся вирусов довольно легко восстанавливается процедурой эмуляции. Если использование эмулятора не является оптимальным решением, то код вируса восстанавливается при помощи подпрограммы, реализующей обратное преобразование - криптоанализ. Для детектирования неподдающихся эмуляции вирусов, и вирусов, для которых не представляется возможным построить обратное преобразование, используется способ построения редуцированных масок.
В некоторых, наиболее сложных, случаях применяется комбинация приведенных выше способов. Часть кода расшифровщика эмулируется, при этом из расшифровщика выделяются команды, реально отвечающие за алгоритм расшифровки. Затем на основе полученной информации строится и решается система уравнений для восстановления кода вируса и его детектирования.
Комбинация способов применяется также при кратном применении шифрования, когда вирус шифрует свое тело несколько раз, используя при этом различные алгоритмы шифрования. Комбинированный способ восстановления информации или "чистая" эмуляция кода расшифровщика часто применяются и по той причине, что каждый новый вирус должен быть проанализирован и подключен в антивирусную базу за минимальные сроки, в которые далеко не всегда укладывается необходимый математический анализ. И в результате приходится пользоваться более громоздкими методами детектирования вируса, несмотря на то, что вполне применимы методы математического анализа алгоритма расшифровщика.

Работа со "сложными" объектами

Антивирусные "движки" поддерживают работу с огромным числом форматов упаковки и архивирования. Разработчики достаточно редко публикуют полный (или хотя бы достаточно подробный) перечень поддерживаемых форматов. Далее представлена официально опубликованная информация о поддержке "сложных" форматов в Антивирусе Касперского. В других антивирусных продуктах список поддерживаемых форматов должен быть примерно таким же.
"Движок" Антивируса Касперского поддерживает работу с более чем 400 различными утилитами упаковки исполняемых файлов, инсталляторов и архиваторов (всего более 900 модификаций, по состоянию на май 2003). Среди них:

Упаковщики исполняемых файлов и системы шифрования. Самые популярные из них: Diet, AVPACK, COMPACK, Epack, ExeLock, ExePack, Expert, HackStop, Jam, LzExe, LzCom, PaquetBuilder, PGMPAK, PkLite, PackWin, Pksmart, Protect, ProtEXE, RelPack, Rerp, Rjcrush, Rucc, Scramb, SCRNCH, Shrink, Six-2-Four, Syspack, Trap, UCEXE, Univac, UPD, UPX (несколько версий), WWPACK, ASPack (несколько версий), ASProtect (несколько версий), Astrum, BitArts, BJFnt, Cexe, Cheaters, Dialect, DXPack, Gleam, CodeSafe, ELFCrypt, JDPack, JDProtect, INFTool, Krypton, Neolite, ExeLock, NFO, NoodleCrypt, OptLink, PCPEC, PEBundle, PECompact (несколько версий), PCShrink, PE-Crypt, PE-Diminisher, PELock, PEncrypt, PE-Pack (несколько версий), PE-Protect, PE-Shield, Petite, Pex, PKLite32, SuperCede, TeLock, VBox, WWPack32, XLok, Yoda.
Поддержка стольких упаковщиков и архиваторов позволяет сократить время анализа новых вирусов, что приводит к увеличению скорости реакции на появление нового вируса, и добиться высокого уровня обнаружения уже известных вирусов.

Архиваторы и инсталляторы (всего более 60). Самые популярные из них: CAB, ARJ, ZIP, GZIP, Tar, AIN, HA, LHA, RAR, ACE, BZIP2, WiseSFX (несколько версий), CreateInstall, Inno Installer, StarDust Installer, MS Expand, GKWare Setup, SetupFactory, SetupSpecialist, NSIS, Astrum, PCInstall, Effect Office.
Поддержка большого числа разновидностей архиваторов особенно важно для проверки почтовых систем, так как подавляющая часть вирусов пересылается по почте в архивированном виде. Распаковка объектов происходит вне зависимости от уровня вложенности архивов. Например, если зараженный файл упакован утилитой UPX, а затем файл упакован в архив ZIP, который упакован в архив CAB и т.д., то антивирусный "движок" все равно должен быть в состоянии достать исходный файл и обнаружить вирус.
Следует отметить, что подобные рассуждения носят отнюдь не теоретический характер. Так, широко известна троянская программа Backdoor.Rbot, которая распространялась упакованной множеством различных программ (Ezip, Exe32Pack, ExeStealth, PecBundle, PECompact, FSG, UPX, Morphine, ASPack, Petite, PE-Pack, PE-Diminisher, PELock, PESpin, TeLock, Molebox, Yoda, Ezip, Krypton и др.).
Алгоритм распаковки архивов обычно обладает достаточным интеллектом, чтобы не распаковывать всевозможные "архивные бомбы" - архивы небольшого размера, в которые упакованы огромные файлы (с очень высокой степенью сжатия) или несколько одинаковых файлов. Обычно для проверки такого архива требуется много времени, но современные антивирусные "движки" часто распознают подобные "бомбы".

Механизм обновления антивирусных баз и их размер

Обновления антивирусных баз обычно выходят по несколько раз в день. Некоторые в состоянии выпускать обновления раз в час, некоторые - раз в два часа. В любом случае, при современном высоком уровне опасности в Интернет такое частое обновление антивирусных баз вполне оправдано.
Размер обновлений указывает на продуманность архитектуры антивирусного "движка". Так, размер регулярных обновлений лидирующих в отрасли компаний, как правило, не превышает 30 Кб. При этом в антивирусные базы обычно заложено около 70% функциональности всего антивирусного "движка". В любом обновлении антивирусной базы может быть добавлена поддержка нового упаковщика или архиватора. Таким образом, ежедневно обновляя антивирусные базы, пользователь получает не только новые процедуры детектирования новых вредоносных программ, но и обновление всего антивируса. Это позволяет очень гибко реагировать на ситуацию и гарантировать пользователю максимальную защиту.

Эвристический анализатор

В эвристическом анализаторе, входящем в состав почти каждого антивируса, используются оба описанные выше методы анализа - криптоанализ и статистический анализ. Современный эвристический анализатор изначально разрабатывается так, чтобы быть расширяемым (в отличие от большинства эвристических анализаторов первого поколения, которые разрабатывались для обнаружения вредоносных программ только в исполняемых модулях).
В настоящее время эвристический анализатор позволяет обнаруживать вредоносные коды в исполняемых файлах, секторах и памяти, а также новые скрипт-вирусы и вредоносные программы для Microsoft Office (и других программ, использующих VBA), и, наконец, вредоносный код, написанный на языках высокого уровня, таких как Microsoft Visual Basic.
Гибкая архитектура и комбинация различных методов позволяет добиться достаточно высокого уровня детектирования новых вредоносных программ. При этом разработчики прилагают все усилия для того, чтобы количество ложных тревог свести к минимуму. Продукты, представляемые лидерами антивирусной индустрии, чрезвычайно редко ошибаются в детектировании вредоносных кодов.

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

Как было сказано выше, во время обновления антивирусной базы происходит также обновление и добавление модулей распаковки упакованных файлов и архивов, эвристического анализатора и других модулей антивирусного "движка".

Оригинальные технологии в антивирусных
"движках"

Почти каждый разработчик антивирусных продуктов реализует какие-то свои технологии, позволяющие сделать работу программы эффективнее и производительнее. Некоторые из этих технологий имеют прямое отношение к устройству "движка", так как именно от его работы часто зависит производительность всего решения. Далее будет рассмотрен ряд технологий, позволяющих значительно ускорить проверку объектов и при этом гарантировать сохранение высокого качества детектирования, а также улучшить детектирование и лечение вредоносного программного обеспечения в архивных файлах.
Начать следует с технологии iChecker. Эта технология и ее аналоги реализованы почти в каждом современном антивирусе. Следует отметить, что iChecker - название, предложенное специалистами "Лаборатории Касперского". Эксперты, например, Panda Software называют её UltraFast. Данная технология позволяет добиться разумного баланса между надежностью защиты рабочих станций (и особенно серверов), и использованием системных ресурсов защищаемого компьютера. Благодаря этой технологии значительно сокращается время загрузки (до 30-40%) операционной системы (по сравнению с традиционными антивирусными защитами) и время запуска приложений при активной антивирусной защите. При этом гарантируется, что все файлы на дисках компьютера были проверены и не инфицированы. Основная идея данной технологии - не надо проверять то, что не изменялось, и уже было проверено. Антивирусный "движок" ведет специальную базу данных, в которой хранятся контрольные суммы всех проверенных (и не инфицированных) файлов. Теперь, прежде чем отдать файл на проверку, "движок" подсчитывает и сравнивает контрольную сумму файла с данными, хранящимися в базе данных. Если данные совпадают, то это значит, что файл был проверен и повторная проверка не требуется. Стоит заметить что время, затрачиваемое на подсчет контрольных сумм файла - значительно меньше, чем время антивирусной проверки.
Особое место в работе антивируса занимает лечение заархивированных инфицированных объектов. Именно об этом пойдет речь далее. iCure - технология лечения инфицированных файлов в архивах. Благодаря этой технологии инфицированные объекты внутри архивных файлов будут успешно вылечены (или удалены, в зависимости от настроек антивируса) без использования внешних утилит архивации. На сегодняшний день большинство антивирусов поддерживают следующие типы архивов: ARJ, CAB, RAR, ZIP. Благодаря модульной архитектуре и технологиям обновления антивирусного "движка" пользователь, как правило, может легко обновлять и расширять список поддерживаемых типов архиваторов без перезагрузки антивируса.
iArc - еще одна технология работы с архивными файлами. Эта технология необходима для работы с многотомными архивами. iArc позволяет проверять многотомные архивы и обнаруживать вирусы даже, если они будут упакованы в многотомный архив, который, в свою очередь, также будет упакован в многотомный архив.
Многопоточность. Антивирусный "движок" является многопоточным модулем, и может одновременно обрабатывать (проверять на наличие вредоносных кодов) несколько объектов (файлы, сектора, скрипты и пр.).
Большинство из перечисленных выше технологий в том или ином виде реализовано в каждом современном антивирусном продукте.

Полиморфные вирусы

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

Основные определения: самошифрование и полиморфичность. Используются практически всеми типами вирусов для того, чтобы максимально усложнить процедуру детектирования вируса. Полиморфные вирусы (polymorphic) - это достаточно трудно обнаружимые вирусы, не имеющие сигнатур, то есть, не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфного вируса не будут иметь ни одного совпадения. Это достигается шифрованием основного тела вируса и модификациями программы-расшифровщика (декриптора). К полиморфным вирусам относятся те из них, детектирование которых невозможно (или крайне затруднительно) осуществить при помощи так называемых вирусных масок - участков постоянного кода, специфичных для конкретного вируса. Достигается это двумя основными способами - шифрованием основного кода вируса с непостоянным ключом и случайным набором команд расшифровщика или изменением самого выполняемого кода вируса. Существуют также другие, достаточно экзотические примеры полиморфизма: DOS-вирус "Bomber", например, не зашифрован, однако последовательность команд, которая передает управление коду вируса, является полностью полиморфной.
Полиморфизм различной степени сложности встречается в вирусах всех типов - от загрузочных и файловых DOS-вирусов до Windows-вирусов и даже макро-вирусов.

Полиморфные расшифровщики

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

MOV reg_1, count ; reg_1, reg_2, reg_3 выбираются из
MOV reg_2, key ; AX,BX,CX,DX,SI,DI,BP
MOV reg_3, _offset ; count, key, _offset также могут меняться
_loop:
xxx byte ptr , reg_2 ; xor, add или sub
DEC reg_1
Jxx _loop ; ja или jnc
; дальше следуют зашифрованные код и данные вируса

Cложные полиморфные вирусы используют значительно более сложные алгоритмы для генерации кода своих расшифровщиков: приведенные выше инструкции (или их эквиваленты) переставляются местами от заражения к заражению, разбавляются ничего не меняющими командами типа NOP, STI, CLI, STC, CLC и т.д.
Полноценные же полиморфные вирусы используют еще более сложные алгоритмы, в результате работы которых в расшифровщике вируса могут встретиться операции SUB, ADD, XOR, ROR, ROL и другие в произвольном количестве и порядке. Загрузка и изменение ключей и других параметров шифровки производится также произвольным набором операций, в котором могут встретиться практически все инструкции процессора Intel (ADD, SUB, TEST, XOR, OR, SHR, SHL, ROR, MOV, XCHG, JNZ, PUSH, POP ...) со всеми возможными режимами адресации. Появляются также полиморфные вирусы, расшифровщик которых использует инструкции вплоть до Intel386, а летом 1997 года обнаружен 32-битный полиморфный вирус, заражающий EXE-файлы Windows 95.
В результате, в начале файла, зараженного подобным вирусом, идет набор бессмысленных, на первый взгляд, инструкций. Интересно, что некоторые комбинации, которые вполне работоспособны, не берутся фирменными дизассемблерами (например, сочетание CS:CS: или CS:NOP). И среди этой "каши" из команд и данных изредка проскальзывают MOV, XOR, LOOP, JMP - инструкции, которые действительно являются "рабочими".

Уровни полиморфизма

Существует деление полиморфных вирусов на уровни в зависимости от сложности кода, который встречается в расшифровщиках этих вирусов. Такое деление впервые предложил доктор Алан Соломон, через некоторое время Весселин Бончев расширил его:

Уровень 1: Вирусы, имеющие некоторый набор расшифровщиков с постоянным кодом; при заражении выбирают один из них. Такие вирусы являются "полу-полиморфными" и носят также название "олигоморфных" (oligomorphic). Примеры: "Cheeba", "Slovakia", "Whale".

Уровень 2: Расшифровщик вируса содержит одну или несколько постоянных инструкций, основная же его часть непостоянна.

Уровень 3: Расшифровщик содержит неиспользуемые инструкции - "мусор" типа NOP, CLI, STI и т.д.

Уровень 4: В расшифровщике используются взаимозаменяемые инструкции и изменение порядка следование (перемешивание) инструкций. Алгоритм расшифровки при этом не изменяется.

Уровень 5: Используются все перечисленные выше приемы, алгоритм расшифровки непостоянен, возможно повторное шифрование кода вируса и даже частичное шифрование самого кода расшифровщика.

Уровень 6: Permutating-вирусы. Изменению подлежит основной код вируса - он делится на блоки, которые при заражении переставляются в произвольном порядке. Вирус при этом остается работоспособным. Подобные вирусы могут быть незашифрованны.

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

Уровень 1: для детектирования вируса достаточно иметь несколько масок;
Уровень 2: детектирование по маске с использованием "wildcards";
Уровень 3: детектирование по маске после удаления инструкций-"мусора";
Уровень 4: маска содержит несколько вариантов возможного кода, то есть становится алгоритмической;
Уровень 5: невозможность детектирования вируса по маске.

Недостаточность такого деления продемонстрирована в вирусе 3-го уровня полиморфизма, который так и называется - "Level3". Этот вирус, являясь одним из наиболее сложных полиморфных вирусов, по приведенному выше делению попадает в Уровень 3, поскольку имеет постоянный алгоритм расшифровки, перед которым стоит большое количество команд-"мусора". Однако в этом вирусе алгоритм генерирования "мусора" доведен до совершенства: в коде расшифровщика могут встретиться практически все инструкции процессора i8086.
Если произвести деление на уровни с точки зрения антивирусов, использующих системы автоматической расшифровки кода вируса (эмуляторы), то деление на уровни будет зависеть от сложности эмуляции кода вируса. Возможно детектирование вируса и другими приемами, например, расшифровка при помощи элементарных математических законов и т.д.
Более объективной будет классификация, в которой помимо критерия вирусных масок участвуют и другие параметры, например:
Степень сложности полиморфного кода (процент от всех инструкций процессора, которые могут встретиться в коде расшифровщика);
Использование специальных приемов, затрудняющих эмуляцию антивирусами;
Постоянство алгоритма расшифровщика;
Постоянство длины расшифровщика.

Изменение выполняемого кода

Наиболее часто подобный способ полиморфизма используется макро-вирусами, которые при создании своих новых копий случайным образом меняют имена своих переменных, вставляют пустые строки или меняют свой код каким-либо иным способом. Таким образом, алгоритм работы вируса остается без изменений, но код вируса практически полностью меняется от заражения к заражению.
Реже этот способ применяется сложными загрузочными вирусами. Такие вирусы внедряют в загрузочные сектора лишь достаточно короткую процедуру, которая считывает с диска основной код вируса и передает на него управление. Код этой процедуры выбирается из нескольких различных вариантов (которые также могут быть разбавлены "пустыми" командами), команды переставляются между собой и т.д.
Еще реже этот прием встречается у файловых вирусов - ведь им приходится полностью менять свой код, а для этого требуются достаточно сложные алгоритмы. На сегодняшний день известны всего два таких вируса, один из которых ("Ply") случайным образом перемещает свои команды по своему телу и заменяет их на команды JMP или CALL. Другой вирус ("TMC") использует более сложный способ - каждый раз при заражении вирус меняет местами блоки своего кода и данных, вставляет "мусор", в своих ассемблерных инструкциях устанавливает новые значения оффсетов на данные, меняет константы и т.д. В результате, хотя вирус и не шифрует свой код, он является полиморфным вирусом - в коде не присутствует постоянного набора команд. Более того, при создании своих новых копий вирус меняет свою длину.

(с) Фролов Александр Вячеславович, 2002
E-mail: [email protected]
Web: http://www.frolov.pp.ru, http://www.datarecovery.ru

Создание надежно работающей информационной системы любого уровня сложности невозможно без применения специальных средств защиты от компьютерных вирусов. Такая защита особенно актуальна сегодня, когда все больше компьютеров объединяются в сети, и подключаются к Интернету. Просчеты, допущенные при организации антивирусной защиты, могут привести не только к временному нарушению работоспособности компьютерных систем, но и к невосполнимым потерям данных.

Когда обычный антивирус бессилен

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

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

Помимо файловых антивирусов, существуют и специализированные антивирусные программы, способные фильтровать потоки данных, проходящие через серверы электронной почты, брандмауэры и прокси-серверы. Имеются антивирусные решения для таких систем документооборота, как IBM Lotus Notes и Microsoft Exchange.

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

Осознавая актуальность антивирусной защиты, создатели информационно-вычислительных систем и сервисов Интернета ищут различные пути решения проблемы с использованием обычных файловых антивирусов. Например, почтовый сервер Merak Mail Server (http://www.icewarp.com) может проверять проходящую через него почту с помощью практически любой внешней антивирусной программы, допускающей работу в пакетном режиме. При этом в процессе проверки файлы вложений (attachment) почтовых сообщений копируются во временные файлы, которые затем проверяются антивирусом.

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

Лицензирование антивирусного ядра

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

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

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

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

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

Примеры интеграции антивирусного ядра

Ниже мы приведем некоторые успешные примеры интеграции отечественных антивирусных "движков" на основе лицензирования в различные программы и системы.

На основе соглашения, достигнутого между ЗАО "ДиалогНаука" (http://www.dials.ru) и ФГУП "НПО машиностроения" ядро известного антивируса Doctor Web было использовано для защиты системы документооборота, созданной на базе собственной технологии Sapiens (http://www.npomit.ru). Вся информация, сохраняемая этой системой в базе данных, проверяется антивирусным ядром Doctor Web.

Одним из направлений деятельности ФГУП "НПО машиностроения" является создание информационных систем для федеральных органов власти, общественных организаций, государственных и частных компаний, а также оказание услуг на рынке информационных технологий. "НПО машиностроения" является головным разработчиком Интегрированной Информационно-Вычислительной Системы (ИИВС) Минпромнауки России и ИИВС ГУ Высшая школа экономики.

Как разработчики информационных систем для ответственного применения, "НПО машиностроения" снабдило антивирусной защитой такие свои разработки, как Sapiens Регистрация и Контроль Исполнения Документов, Sapiens Мониторинг Вычислительных Ресурсов, Sapiens Электронный Архив Конструкторской Документации.

Другой удачный пример лицензирования ядра антивируса Doctor Web - антивирусная проверка в системе электронной почты "ДИОНИС", созданной отечественной компанией "ФАКТОР" (http://www.rospac.ru/dion.htm). Эта система применяется, в частности, для обработки почтовой корреспонденции в рамках системы ГАС "Выборы", а также в Министерстве по налогам и сборам.

Если Вы занимаетесь разработкой Web-проекторв, то, владея лицензией на антивирусное ядро, сможете создать собственную антивирусную службу в Интернете. В качестве примера можно привести антивирус Defender, созданный американской компанией eAcceleration.com с использованием ядра Doctor Web. Этот антивирус предназначен для проверки файлов в режиме on-line (рис. 1).

Рис. 1. Антивирус Defender компании eAcceleration.com

Наверное, многим из Вас приходилось записывать компакт-диски CD-R или CD-RW. Эти диски очень удобны для создания резервных копий и архивов. Немецкая компания Ahead Software (http://www.nero.com) встроила антивирусное ядро Doctor Web в свою программу Nero Burning ROM (рис. 2). Это позволяет уберечь создаваемые архивы от компьютерных вирусов без установки дополнительных антивирусных программ. Программа Nero Burning ROM умеет обновлять антивирусную базу данных через Интернет, что необходимо для эффективно антивирусной защиты.

Рис. 2. Встроенная антивирусная проверка в программе Nero Burning ROM

На базе ядра Doctor Web китайская компания Kingsoft (http://www.iduba.net) создала собственный антивирус iDuba.net (рис. 3).

Рис. 3. Антивирус iDuba.net с китайским пользовательским интерфейсом

На базе ядра Doctor Web создан включаемый модуль (plugin) для популярной почтовой программы The Bat!. Он обеспечивает обработку каждого сообщения или вложения по результату антивирусной проверки и обеспечивает антивирусную защиту почтовой системы, даже если резидентный сторож выключен или не установлен. Антивирусный модуль проверяет входящую почту при ее получении, а также при открытии вложения.

Известный отечественный разработчик антивирусов "Лаборатория Касперского" также лицензирует антивирусное ядро Антивируса Касперского для использования сторонними производителями программного обеспечения.

В частности, ядро Антивируса Касперского интегрировано в программный комплекс Antigen компании Sybari Software. Этот комплекс обеспечивает полномасштабную защиту корпоративных почтовых шлюзов. Благодаря этому уникальные технологии поиска и нейтрализации вирусов "Лаборатории Касперского" стали доступны для тысяч предприятий по всему миру, использующих Antigen.

В результате соглашения, достигнутого между "Лабораторией Касперского" (http://www.kaspersky.ru) и компанией Ritlabs (http://www.ritlabs.com/ru) внедрены функции антивирусной фильтрации для упомянутой выше почтовой программы The Bat! Благодаря совместной работе с Антивирусом Касперского пользователи The Bat! обеспечиваются автоматической проверкой на вирусы всей входящей и исходящей почты непосредственно в момент ее доставки или отправки.

Компания Aladdin Knowledge Systems, один из мировых лидеров в области защиты компьютерных данных, интегрировала программное ядро Антивируса Касперского в свой комплекс eSafe. Тем самым пользователи Aladdin eSafe получают дополнительные преимущества в области поиска и лечения вредоносных программ, основанные на передовых разработках "Лаборатории Касперского".

Ядро Антивируса Касперского используется также в антивирусах F-Secure (Финляндия), G-Data (Германия) и Vintage Solutions (Япония). Были заключены лицензионные соглашения с компаниями Itamigo и Deerfield.com (Великобритания).

Среди других примеров можно упомянуть антивирусное ядро израильской компании КАРМЕЛЬ, которое было продано компании Microsoft, а также небезызвестную антивирусную утилиту MSAV, поставлявшуюся в составе операционной системы MS-DOS.

Что входит в комплект поставки

Компания ЗАО "ДиалогНаука" продает сторонним разработчикам программного обеспечения следующие компоненты своих антивирусных технологий:

  • антивирусное ядро Doctor Web в виде библиотеки динамической компоновки DRWEB32.DLL с комплектом антивирусных баз данных;
  • версии Doctor Web для операционной системы Microsoft Windows без пользовательского интерфейса (DrWeb32w и SpIDerGuard)

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

В комплекте поставляется подробное описание программного интерфейса антивирусного ядра Doctor Web, исходные тексты программы, демонстрирующей работу с этим интерфейсом, а также исходные тексты простой антивирусной программы DRW32EX.

При необходимости можно получить исходные тексты программы загрузки и выгрузки библиотеки DRWEB32.DLL, составленной на языке программирования С. Эта программа может потребоваться, если антивирусный "движок" предполагается использовать в системе, не поддерживающей формат загружаемых модулей Win32 PE (антивирусное ядро Doctor Web работоспособно на любой платформе IA-32 от Intel 386 и выше).

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