Основные алгоритмы работы антивирусов

Автор работы: Пользователь скрыл имя, 29 Января 2013 в 21:05, реферат

Описание

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

Содержание

Введение 3
Критерии качества работы антивируса 4
Алгоритмы работы антивирусов 6
Поиск по "сигнатурам" 7
Поиск по контрольным суммам (CRC) 8
Использование редуцированной маски 9
Криптоанализ 10
Статистический анализ 11
Эвристический анализ 12
Эмуляция 14
Оригинальные технологии в антивирусных "движках" 15
База данных антивирусного "движка" 17
Полиморфные вирусы 18
Заключение 21

Работа состоит из  1 файл

Основные алгоритмы работы антивирусов.doc

— 97.50 Кб (Скачать документ)

 

Эмуляция

 

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

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

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

 

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

 

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

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

Особое место в работе антивируса занимает лечение заархивированных инфицированных объектов. iCure - технология лечения инфицированных файлов в  архивах. Благодаря этой технологии инфицированные объекты внутри архивных файлов будут успешно вылечены (или удалены, в зависимости от настроек антивируса) без использования внешних утилит архивации. На сегодняшний день большинство антивирусов поддерживают следующие типы архивов: ARJ, CAB, RAR, ZIP. Благодаря модульной архитектуре и технологиям обновления антивирусного "движка" пользователь, как правило, может легко обновлять и расширять список поддерживаемых типов архиваторов без перезагрузки антивируса.

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

Многопоточность. Антивирусный "движок" является многопоточным модулем, и может одновременно обрабатывать (проверять на наличие вредоносных кодов) несколько объектов (файлы, сектора, скрипты и пр.).

Большинство из перечисленных выше технологий в том или ином виде реализовано в каждом современном антивирусном продукте.

 

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

 

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

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

Обновления антивирусных баз обычно выходят по несколько раз в день. Некоторые в состоянии выпускать обновления раз в час, некоторые - раз в два часа. В любом случае, при современном высоком уровне опасности в Интернет такое частое обновление антивирусных баз вполне оправдано.

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

 

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

 

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

Полиморфизм различной степени  сложности встречается в вирусах  всех типов - от загрузочных и файловых DOS-вирусов до Windows-вирусов и даже макро-вирусов.

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

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

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

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

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

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

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

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

 Уровень 1: для детектирования  вируса достаточно иметь несколько масок;

Уровень 2: детектирование по маске  с использованием "wildcards";

Уровень 3: детектирование по маске  после удаления инструкций-"мусора";

Уровень 4: маска содержит несколько  вариантов возможного кода, то есть становится алгоритмической;

Уровень 5: невозможность детектирования вируса по маске.

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

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

Более объективной будет классификация, в которой помимо критерия вирусных масок участвуют и другие параметры, например:

  • Степень сложности полиморфного кода (процент от всех инструкций процессора, которые могут встретиться в коде расшифровщика);
  • Использование специальных приемов, затрудняющих эмуляцию антивирусами;
  • Постоянство алгоритма расшифровщика;
  • Постоянство длины расшифровщика.

 

Заключение

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

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

 

Список использованных источников

  1. Вильям Столлингс, Основы защиты сетей. Приложения и стандарты, Вильямс, 2002 г., 432 стр.
  2. Клиффорд Столл, Яйцо кукушки, или преследуя шпиона в компьютерном лабиринте, «ИЦ-Гарант», М., 1996, 348 стр.
  3. Крис Касперски, Записки исследователя компьютерных вирусов, Питер, 2006, 316 стр.
  4. URL: http://www.securelist.com/
  5. http://www.kaspersky.ru/

Информация о работе Основные алгоритмы работы антивирусов