Как создаются антивирусы: обновления, базы, тестирование

Всё об антивирусах. Часть III: особенности разработки и тестирования

Всё об антивирусах. Часть III: особенности разработки и тестирования

Эксперты Positive Technologies рассказывали ранее на нашей площадке об устройстве антивирусных движков и методах обнаружения вредоносного кода. В продолжение цикла публикаций об антивирусах они делятся знаниями об особенностях разработки антивирусных решений, процессе их обновления и видах тестирования антивирусных баз.

 

 

 

 

 

  1. Введение
  2. Особый подход к разработке антивирусов
  3. Движок и антивирусные базы: разделение ответственности
  4. Процесс выпуска и тестирования антивирусных баз
  5. Выводы

Введение

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

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

Особый подход к разработке антивирусов

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

 

Рисунок 1. Этапы разработки: от запроса до тестирования

 

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

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

Движок и антивирусные базы: разделение ответственности

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

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

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

Процесс выпуска и тестирования антивирусных баз

Подготовка к выпуску новой версии антивирусного продукта включает стандартный набор шагов: автоматизированное и ручное тестирование, проверки производительности, тесты на сбои (fuzzing), оценку покрытия кода и тесты на проникновение. Однако для антивирусных баз процесс тестирования имеет свою специфику.

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

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

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

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

Выводы

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

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

Статья подготовлена при участии Валерия Слезкинцева, руководителя направления реагирования на конечных устройствах PT Expert Security Center (PT ESC).

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

RSS: Новые статьи на Anti-Malware.ru