Для антивирусных программ характерно использование двух методов для борьбы с вредоносными программами:
· проверка (сканирование) файлов на наличие известных вирусов, сопоставляя определения со словарем вирусов
· определение подозрительной работы любой компьютерной программы, которая может говорить о заражении. Такой анализ может включать сбор данных, сканирование порта и другие методы.
Большинство коммерческих антивирусных программ используют обе эти технологии, но делая при этом акцент на методе сопоставления со словарем вирусов.
2. Классификация антивирусных программ.Данные программы можно классифицировать по пяти основным группам:
фильтры, детекторы, ревизоры, доктора и вакцинаторы.
Антивирусы-фильтры — это резидентные программы, которые оповещают
пользователя обо всех попытках какой-либо программы записаться на диск, а
уж тем более отформатировать его, а также о других подозрительных действиях.
При этом выводится запрос о разрешении или запрещении данного действия. Принцип работы этих программ основан на перехвате соответствующих векторов прерываний. К преимуществу программ этого класса по сравнению с программами-детекторами можно отнести универсальность по отношению как к известным, так и неизвестным вирусам, тогда как детекторы пишутся под конкретные, известные на данный момент программисту виды. Это особенно актуально сейчас, когда появилось множество вирусов-мутантов, не имеющих постоянного кода. Однако, программы-фильтры не могут отслеживать вирусы, обращающиеся непосредственно к BIOS, а также BOOT-вирусы, активизирующиеся ещё до запуска антивируса, в начальной стадии загрузки DOS, К недостаткам также можно отнести частую выдачу запросов на осуществление какой-либо операции: ответы на вопросы отнимают у пользователя много времени и действуют ему на нервы. При установке некоторых антивирусов-фильтров могут возникать конфликты с другими резидентными программами, использующими те же прерывания, которые просто перестают работать.
Наибольшее распространение в нашей стране получили программы-детекторы, а вернее программы, объединяющие в себе детектор и доктор.
Наиболее известные представители этого класса — Aidstest, Doctor Web и
MicroSoft AntiVirus. Антивирусы-детекторы рассчитаны на конкретные вирусы и основаны на сравнении последовательности кодов содержащихся в теле вируса с кодами проверяемых программ. Многие программы-детекторы позволяют также «лечить» зараженные файлы или диски, удаляя из них вирусы (разумеется, лечение поддерживается только для вирусов, известных программе-детектору). Такие программы нужно регулярно обновлять, так как они быстро устаревают и не могут обнаруживать новые виды вирусов.
Ревизоры — это программы, которые анализируют текущее состояние файлов и системных областей диска и сравнивают его с информацией, сохранённой ранее в одном из файлов данных ревизора. При этом проверяется состояние BOOT-сектора, таблицы FAT, а также длина файлов, их время создания, атрибуты, контрольная сумма. Анализируя сообщения программы-ревизора, пользователь может решить, чем вызваны изменения: вирусом или нет. При выдаче такого рода сообщений не следует предаваться панике, так как причиной изменений, например, длины программы может быть вовсе и не вирус.
К последней группе относятся самые неэффективные антивирусы -вакцинаторы. Они записывают в вакцинируемую программу признаки конкретного вируса так, что вирус считает ее уже зараженной.
В методе сопоставления со словарем, антивирусная программа проверяет файл и ссылается на словарь известных вирусов, которые определили разработчики этой антивирусной программы. Если часть кода в файле совпадает с каким-либо вирусом в словаре, антивирусная программа предпринимает следующие действия:
1. пытается вылечить файл, удаляя из него вирус
2. заносит файл в карантин (в этом случае файл становится недоступным для других программ, а вирус, находящийся в нем, не может распространяться).
3. удаляет зараженный файл
Для того, чтобы такая антивирусная программа успешно работала на протяжении долгого времени, в словарь вирусов нужно периодически загружать (обычно, через Интернет) обновленные данные. Если бдительные и имеющие склонность к технике пользователи определят вирус по горячим следам, они могут послать зараженные файлы разработчикам антивирусной программы, а они затем добавят информацию о новых вирусах в свой словарь.
Для антивирусных программ со словарем характерна проверка файлов в тот момент, когда операционная система создает, открывает, закрывает или посылает их по почте. Таким образом, программа может обнаружить известный вирус сразу после его получения. Заметьте, также, что системный администратор может установить в антивирусной программе расписание для регулярной проверки (сканирования) всех файлов на жестком диске компьютера.
Несмотря на то, что антивирусные программы со словарем при правильном использовании могут эффективно ограничить массовое вторжение вирусов, разработчики вирусов пытаются быть на шаг впереди таких программ и создают «олигоморфические», «полиморфические», а недавно и «метаморфические» вирусы. Такие вирусы, чтобы не совпадать с сигнатурами вирусов в словаре, либо шифруются, либо определяются как метод маскировки.
Подозрительная работа программы.
Антивирусная программа, которая использует метод определения подозрительной работы программы, наоборот, не пытается обнаружить известные вирусы, а вместо этого следит за работой всех программ. Например, если программа пытается записать информацию на исполняемую программу, антивирусная программа отметит этот подозрительный процесс, предупредит пользователя и спросит, что делать.
В отличие от антивирусных программ, которые использует словарь, антивирусные программы этого типа обеспечивают защиту против совершенно новых вирусов, которых еще нет ни в одном словаре. Тем не менее, такие программы могут многократно срабатывать по ошибке, и пользователи, вероятнее всего, уже не будут обращать особого внимания на их предупреждения. Если каждый раз, когда возникает предупреждение, пользователь кликает «Принять», то от этой антивирусной программы не будет никакой пользы. Эта проблема обострилась с 1997 года, так как создавались все больше не-вредоносных программ для того, чтобы видоизменять другие файлы .exe, не принимая во внимание эти ошибочные срабатывания. Таким образом, большинство современных антивирусных программ все меньше и меньше используют этот метод.
Другие методы работы антивирусных программ.
Некоторые антивирусные программы используют другие виды эвристического анализа. Например, программа может имитировать начало кода каждого нового exe-файла так, что система запускается прежде, чем передает управление этому exe-файлу. Если кажется, что программа использует самомодифицируемый код или похожа на вирус (например, если она сразу пытается найти другие exe-файлы), можно сделать вывод, что exe-файл заражен вирусом. Тем не менее, в программе этого типа может быть много срабатываний по ошибке.
Еще один метод выявления вирусов использует "песочницу". "Песочница" имитирует операционную систему и в этой симуляции запускает exe-файл. После окончания программы, антивирусная программа анализирует "песочницу" на наличие каких-либо изменений, которые могут указать на вирус. Из-за выполнения этих действий, этот метод определения вирусов обычно происходит во время сканирования по запросу. Также во время работы программы этот метод может не сработать для каких-то действий либо полного бездействия из-за того, что вирусы могут быть неопределяемыми. Именно поэтому вирус невозможно определить после первого запуска программы.
Некоторые сканеры вирусов также предупреждают пользователей о файле, который, вероятно, содержит вирус, основой которого является тип этого файла. Общая технология по борьбе с вредоносными программами - это «белый список». Вместо того, чтобы искать только известные вредоносные программы, это технология предотвращает выполнение всех компьютерных кодов за исключением тех, которые были ранее обозначены системным администратором как безопасные. Выбрав этот параметр отказа по умолчанию, можно избежать ограничений, характерных для обновления сигнатур вирусов. К тому же, те приложения на компьютере, которые системный администратор не хочет устанавливать, не выполняются, так как их нет в «белом списке». Так как у современных предприятий есть множество надежных приложений, ответственность за ограничения в использовании этой технологии возлагается на системных администраторов и соответствующим образом составленные ими «белые списки» надежных приложений. Работа антивирусных программ с такой технологией включает инструменты для автоматизации перечня и эксплуатации действий с «белым списком».
4. Сравнение антивирусных программ.
Обратимся к независимым экспертам, а именно: к самому авторитетному международному британскому изданию по тестированию антивирусных программ Virus Bulletin. Последний на момент написания этой статьи «чемпионат мира» VB100% среди антивирусов был проведен в феврале 2005 года. Все известные антивирусы состязались в «боевых условиях» на платформе Windows NT. Каждому антивирусу противостояла огромнейшая база вирусов и прочей нечисти. Все программы, которые на 100% смогли обнаружить и обезвредить "врагов" - получают награду VB 100% award. Но разве можно полагаться на единственное тестирование антивирусов, тем более что VB проводит их примерно каждый 2 месяца – чередую платформы на которых проводиться испытание. Всего в тестировании в разное время принимали участие 37 разных антивирусных программ. А последние 5 тестов были проведены на следующих платформах: