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

Принципы использования сигнатурного анализа для обнаружения вредоносных программ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
909
113
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБНАРУЖЕНИЕ ВИРУСОВ / СИГНАТУРНЫЙ АНАЛИЗ / СИГНАТУРА ВИРУСА / ВРЕДОНОСНАЯ ПРОГРАММА / VIRUS DETECTION / SIGNATURE ANALYSIS / VIRUS SIGNATURE / MALWARE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Горбунов А. Н., Емельяненко Т. Г.

Статья посвящена описанию принципов обнаружения вредоносных программ методом сигнатурного анализа и его применению в работе антивирусных систем.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Принципы использования сигнатурного анализа для обнаружения вредоносных программ»

Горбунов А.Н.1, Емельяненко Т.Г.2 ©

1Кандидат технических наук, доцент кафедры информатики и прикладной математики;

2магистрант, кафедра информатики и прикладной математики, Брянский государственный университет им. ак. И.Г. Петровского

ПРИНЦИПЫ ИСПОЛЬЗОВАНИЯ СИГНАТУРНОГО АНАЛИЗА ДЛЯ ОБНАРУЖЕНИЯ ВРЕДОНОСНЫХ ПРОГРАММ

Аннотация

Статья посвящена описанию принципов обнаружения вредоносных программ методом сигнатурного анализа и его применению в работе антивирусных систем.

Ключевые слова: обнаружение вирусов, сигнатурный анализ, сигнатура вируса, вредоносная программа.

Keywords: virus detection, signature analysis, virus signature, malware.

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

Для проведения проверки АВС необходим набор сигнатур вредоносных программ -далее по тексту вирусов, который хранится в антивирусной базе системы.

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

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

В общем случае метод, основанный на анализе сигнатур, реализуется следующим образом [1]. Поддерживается база данных сигнатур для известных атак с возможностью пополнения без потерь в производительности. В результате анализа происходит сопоставление регистрируемой последовательности событий известным сигнатурам атак. В случае соответствия выдается сигнал о попытке вторжения. Дальнейшие действия определяются алгоритмами модуля реакции: удаление вируса или оповещение. Рассмотрим принцип сигнатурного анализа на следующем примере. Пусть поток входных данных (событий) имеет вид:

ABCDDABACCBC.

Пусть теперь распознавание происходит относительно сигнатуры:

ADAC.

Тогда, в случае работы алгоритма по правилам дискретной аппроксимации получим:

A xx^DxA xxCxxxх.

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

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

© Горбунов А.Н., Емельяненко Т.Г., 2013 г.

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

Эти определения проиллюстрированы на рисунке 1. В примере, представленном на рисунке, предлагается найти все вхождения образца Р=аЬаа в тексте Т=аЬсаЬааЬсаЬас. Образец встречается в тексте только один раз, со сдвигом s=3. Говорят, что сдвиг s является допустимым. Каждый символ образца соединен вертикальной линией с соответствующим символом в тексте.

Рис. 1. Задача поиска подстрок

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

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

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

Литература

1. Корт С.С. Теоретические основы защиты информации. - М.: Гелиос-АРВ, 2004 (печатное издание).

2. Хижняк: П.Л. Пишем вирус и... антивирус. / Под общей редакцией И.М.Овсянниковой. - М: ИНТО, 1991. - 90 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.