П. П. Горошко московский инженерно-физический институт (государственный университет) современные методы борьбы с компьютерными вирусами вданной статье рассказ

Вид материалаРассказ

Содержание


Анализ структуры исполняемого файла.
Анализ по плавающим сигнатурам.
Эмуляция кода.
Двойной эвристический анализ.
Подобный материал:

УДК 004.056:378(06) Проблемы информационной безопасности в системе высшей школы

А.С. САННИКОВ, А.П. АНАНЬЕВ, П.П. ГОРОШКО

Московский инженерно-физический институт (государственный университет)


СОВРЕМЕННЫЕ МЕТОДЫ БОРЬБЫ

С КОМПЬЮТЕРНЫМИ ВИРУСАМИ


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


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

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

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

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

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

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

Поскольку полноценный эмулятор – чрезвычайно ресурсоемкий компонент, можно предложить реализацию т.н. псевдоэмулятора. Т.е. отказаться от динамического эмулирования команд процессора, а обойтись лишь дизассемблированием кода от точки входа, но, при этом, учитывать изменение маршрута дизассемблирования командами переходов: call, jmp, jcc.

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


Список литературы

  1. К. Касперски. Записки исследователя компьютерных вирусов. – СПб.: Издательский Дом “Питер”, 2005. – 320 с.
  2. D. Gryaznov. Scanners of The Year 2000: Heuristics // Proc. of the Fifth International Virus Bulletin Conference, 225-234, 1999.
  3. П. Семьянов. Разработка интеллектуальной системы поиска неизвестных разрушающих программных средств в исполняемом коде, Дипломная работа, Санкт-Петербург. – tu.neva.ru/psw/virus/sublva.php




ISBN 978-5-7262-0886-2. XV Всероссийская научная конференция