Вирусы и средства борьбы с ними

       

Производительность


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

Если нет смысла проверять один и тот же объект два раза подряд (что очевидно), то возникает вопрос: каков допустимый интервал между двумя последовательными проверками одного и того же объекта? Ответ лежит на поверхности: до тех пор, пока состояние системы с точки зрения проверки этого объекта не изменилось. Важными параметрами в данном случае будут:

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

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

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


Пример. В Антивирусе Касперского для Windows Workstations (и в других версиях Антивируса Касперского под Windows) применяются уникальные технологии iStreams и iChecker. Обе они основываются на вычислении контрольных сумм проверенных объектов и отличаются только в том, где хранятся контрольные суммы.

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

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

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

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

Пример. В Антивирусе Касперского пользователю на выбор предлагается три подхода к определению проверяемых объектов:

  • Проверять все объекты
  • Проверять заражаемые объекты по формату
  • Проверять заражаемые объекты по расширению


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


Например, EXE-файл, переименованный в файл с расширением TXT, будет корректно опознан как исполняемый и проверен.

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

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

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

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

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

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

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

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


Содержание  Назад  Вперед