Идентификация типа файла на основе структурного анализа

№ 2 (44) 2013

А. Е. Антонов, ассистент филиала ФГБОУ ВПО «Национальный исследовательский

университет «МЭИ» в г. Смоленске

А. С. Федулов, докт. техн. наук, профессор, директор филиала ФГБОУ ВПО «Национальный

исследовательский университет «МЭИ» в г. Смоленске

идентификация типа файла на основе структурного анализа

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

введение

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

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

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

В данной работе предложен способ сравнения файлов на основе анализа их структуры.

обзор существующих подходов к сравнению файлов

Сравнение исполняемых вредоносных файлов рассматривается в работах ряда авторов. Анализ этих работ показал, что в качестве исходных данных для сравнения могут выступать следующие сущности исполняемого файла: набор и последовательность функций интерфейса операционной системы [1-3], строковые константы [4, 5], статистические свойства [5, 6], структура [7, 8]. Результатом сравнения является некоторая мера близости, подобия (similarity measure) файлов. Значения меры подобия лежат в промежутке [0, 1]. Малые значения меры соответствуют схожим файлам, большие — различным.

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

68 у

№ 2 (44) 2013

Выделяют два основных этапа, необходимых для сравнения файлов на основе анализа структуры:

1) разбиение файла на блоки, и представление каждого из блоков некоторым описанием;

2) сравнение полученных описаний блоков и их последовательности при помощи некоторой меры подобия.

На рисунке 1 приведен фрагмент некоторого исполняемого файла, полученный с помощью программы Hiew. Из рисунка видно, что файл обладает некоторой «структурой», под которой можно понимать совокупность и взаимное расположение участков (блоков) программного кода. Каждый из блоков внутри себя обладает, в некотором смысле, похожими свойствами, отличающимися от соседних участков. При автоматическом анализе структуры исполняемого файла обычно не рассматривают семантические аспекты программного кода, а используют другие, более формальные параметры и характеристики.

[0424IE2AB23aE7»IBDeDF5F491EC92AD0FF311ni пг

HHP 4G HiG DYP HP "WR ?кР t-ЯЕ iMG Hi*P uCP лвР !Ы? ВГР «РА TuG в ГР НьМ? rc?PG КъМЭ ябсЬ*!» hM яввПтв №>G яевШВ КьМ» a^eiBP №ьКО явв°1№ №>В яевй

> №ь*е яввТЯЯ №ьМЭ япс.аР ягсйЕО №>8 яввШНС НЬ»« явв4ЧВ КьМЗ явв XG Н Ю HBc'ftP КЬМ? яввши? №>G явв"Щ0 Kt>P neejuiG №ьМ? яввхоВ ИЬИ> яясНГЮ №>G IeDiG №ьМ? яВс ЙР НьН? айе*т lh>G я«в?кР НъМ? явс>-Я1? №>М» явсвИР №ьМ? я«вН

> аве:ье №>МЗ ябвВБе №i>P ябв«РЯ №>№ tire till3 Кь»е яв ий t?8 яяяя ««f <Х0 дхВ ♦ •  Х-4В яяяярхв ОРЙ

№ яяяя"СВ ,РЙ ИхВ 3 яя G?G иНЗ яяяя$'в ч?0 ТРИ *Ьй 4К8

pfCUjtRTIB JfwyMtjP IugEGvnTDBcjD ZDnxOnBEdQQ 9  UBfl6.DLL

S " ~ *—

p « •»« и

ir I SB»4

n

H

i Ф*А О

**f ]

IDMQOBIBte

«*Т$Й«>-(||В

• ев".

_ ____ka

У<рХЙ ЯЙtfeabi?'G e'MS яРяа О SetUindowC

_______________ ________ Я GBtUindBwlBXtfl Г0 T<G ♦ *Vfl

CallUiAdawPracfl :*G '<0 ♦ ШЙ У ТУЯ efltOflahpCG в'И? яРяа

4 яяяя О 4 < Ф В ' В

В '  О  -4:40« ? О ? «О яя ?Qi flfldft 1ЯмаО яяяя uBI V яяв&В 9* 8 яяяя* (V яяяя яяяя*

Т ♦ ХМ! яя I P2hpL79N73U . 9E50DC2E

Е  Fhupw2cB В 10572Е1С1Й04593Б2С94

BHNSQDC8 ♦ В 7 В 4 8 2 G 0 Е8Е176ЙЕР5

52543E9E3 1 Ри57бйц10 С C99E9RPD287E .Ч.Ч< ..Ч._I_ЧЧ1Ш111_J_I  .. ч • п <

Рис. 1. Фрагмент программы в редакторе Hiew

В тривиальных случаях модификации одного и того же файла могут отличаться несколькими байтами. Однако обычно разработчики вредоносного ПО используют подходы, значительно изменяющие код программы. Например, данные программы шифруются с использованием случайного ключа, а дешифрация затрудняется применяемыми разработчиками приемами антиотладки и антиэмуляции [9]. На рисунке 2 приведены две разновидности червя «Палево».

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

н1?|Щ '..'Й1 иЙштИЙЧюУЙштИЙ ¡ъЧЙитиЙя 1 ЙштиЙдхВЙштИЙШсhmrljf

В NR " В иВ KB ЮВ к В LR \ »1 «1 Г ?Г

^Д »Д (.Я J Я иц рД Dbj-.lpj Fco. likrtl D Lijxyq;,

pgnrTi. Yib Rqnejocy. Digqce. Pitlx Ckvdd Uohb. Nkyii ftbu Jj

К i rq. In 1 Jufnlpu, Onpli Nfud Uauvtto Uxnao, Mo "'Jidtr.p. у Gufyiy Toe Q'jkm, Caydcpybq Jaulu.i Vf P u с q i . E h с G d f p , N 9 1 Kcnqgya Iqrnji Gpcpjcp. Bd

tibrr * Ci pyi Cooqr I _.cucc Й i il V

NZP * ♦ ¡i P ,

S g||d -1 «"H. <UU|  оиня^эЧ} 014yIH4> ou4iill4. ""^ipInHJ01"»^^""11

tu^FBKBe « pQ ♦ IJB О >

>

'.data P u и В L.rsrc I

Г i" 0a « ,й >o Jo Ко fa zo Oo Ьо {¡о 4й

1« ЦЙ ий °Й *Ъ ТБ ОБ Rf igukgr G Ihifi

XibqFol* CnwlM Ukalc Jda Jhekld Xe. Bfiusr PhuimJ. Hqn № F n И p i i , U u с g v у d Bypnfcccb Nva Fgiuvi Xxjau.

1 Cvqcngraf Untug, R и p b g GJauhi1 ( Illy. Qiufs HHsaauiujn, Й и }i e j ft a e Gxi'l xlwughu HFida. К i t 1 а ИнЬЬ. Qsaln_U

Рис. 2. Разновидности червя «Палево»

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

Хеширование

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

В работе [7] для сравнения файлов используется контекстно-зависимое кусочное хеширование (Context Triggered Piecewise Hashing). Для определения границы блоков в данном подходе используется кольцевой хеш (Rolling Hash). Кольцевая хеш-функция Hc — это функция, позволяющая вычислять хеш-значение rp для массива данных

v , v н,

V p+i'

w с начальной позицией p

vp+w, находящихся в окне длиной

0

1

со §

£2

= Hc (Wi'..

1

69

№ 2 (44) 2013

s

I

lg «о

12

0

1 I

U

<u

со §

U

о

Ü t

i

а

t

£ §

При последовательном перемещении окна на один байт от начала файла к его концу новое значение хеш-функции гр+1 может вычисляться путем вычитания влияния данных X (Ьр), более не входящих в окно, и добавления влияния данных Y (Ьр+ш+1):

Гр+1 = гр -X(Ьр(Ьр+№+1).

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

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

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

Статистические профили

В качестве критерия близости файлов может использоваться взаимное расположение блоков, характеризуемых их статистическими свойствами [8, 10]. В работе [8] используется понятие статистического профиля файла. Статистический профиль — это вектор статистических описаний файла, полученный при движении скользящего окна от начала к концу файла с шагом в один байт, и расчета в каждом положении окна некоторой статистической величины. Ширина окна обычно подбирается экспериментально.

Сравнение статистических профилей часто превращается в трудоемкую задачу, поэтому для анализа используется упро-

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

Рассмотрим алгоритм получения статистического вектора, используемый в работе [8].

1. Файл представляется набором символов (байтов).

2. Формируется множество Z символов, присутствующих в файле: Z = {с1, c2, ..., c|Z|}, IZI — мощность Z.

3. Для каждого символа из Z вычисляется длина кода Хаффмана: e(c1), e(c2), ..., e(cIZI). Минимальную из полученных длин обозначим emin, максимальную — emax.

4. Файл разбивается некоторым образом на блоки.

5. Для описания блока с номерами начальной и конечной позиций в файле a и b, соответственно, вычисляется длина блока Lab, закодированная по методу Хаффмана:

b

Lab= X e ((_ ), s_j e Z,

j—a

где cpj — символ в j-й позиции файла.

6. Полученный результат Lab преобразуется следующим образом:

L . (b — a)—1 - e

i норм _ х /_^min

— .

e — e

max min

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

Вектор, описывающий статистический профиль, имеет размерность, зависящую от размера файла. Для сравнения двух фай-

70

№ 2 (44) 2013

лов в работе [8] предлагается использовать векторы одинаковой размерности, для чего исходный вектор, например, (0,1; 0,3; 0,4; 0,9; 0,8; 1; 0,6; 0,7; 0,2; 0,5) преобразуется в вектор меньшей размерности одним из следующих способов:

• вектор задается несколькими первыми координатами исходного вектора: (0,1; 0,3; 0,4; 0,9; 0,8; 1);

• вектор задается координатами с наименьшими значениями в исходном векторе в порядке возрастания их значений: (0,1; 0,2; 0,3; 0,4; 0,5; 0,6);

• вектор задается координатами с наименьшими значениями в порядке их расположения в исходном векторе: (0,1; 0,3; 0,4; 0,6; 0,2; 0,5);

• вектор задается несколькими начальными и конечными координатами исходного вектора: (0,1; 0,3; 0,4; 0,7; 0,2; 0,5).

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

Способы разбиения файлов

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

1. Разбиение файла на одинаковое количество блоков.

Файлы описываются векторами одинаковой размерности. Такое разбиение неустойчиво к модификациям файла, связанным с изменением размеров тех или иных частей файла, например, добавления или удаления данных.

2. Разбиение файла на блоки равной длины [8].

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

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

3. Разбиение файла на блоки переменной длины.

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

Разбиение файла

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

Рассмотрим алгоритм получения предлагаемого разбиения.

Файл будем считать одномерным массивом байтов. Для разбиения файла используем окно размером щ (в работе используется окно длиной в 1024 байта).

1. Зафиксируем позицию окна в файле. Под позицией (положением) окна будем понимать позицию левого края окна.

Двоичный код каждого байта в окне рассмотрим как его «значение»: Iе {0,1,..., 255}. Вычислим относительную частоту появления значений байта в окне:

р а )=сп,

где щ — длина окна в байтах, сп1 — количество байтов со значением I в окне.

Рассматривая величину Р(/), вычисленную по выражению (2), в качестве оценки вероятности появления двоичных комбинаций (значений байтов), вычислим меру неопределенности появления комбинаций в окне согласно определению информационной энтропии:

со

0

1

со §

¡5 %

71

№ 2 (44) 2013

н = -± р (( )• Щ2р ().

¡=0

2. Пункт 1 повторим для всех возможных позиций окна в файле. Полученный набор значений энтропии будем называть статистическим профилем файла.

Пример статистического профиля файла графически представлен на рис. 3.

3. Разобьем файл на блоки, таким образом, чтобы значение энтропии на протяжении каждого блока менялось незначительно. Для этого найдем разницу значений энтропии на границах окна междуу-й и (у + w)-й позицией статистического профиля для всех значений у на протяжении файла.

На рисунке 4 разница между значениями энтропии обозначена серым цветом.

Затем находим позиции, где разница между энтропией на границах окна превышает значение установленного порога h (в работе используется значение h = 0,1), т. е. наблюдается резкое изменение энтропии. Эти позиции и будут точками разбиения статистического профиля.

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

4. В результате получим набор блоков. Каждый из блоков описывается усредненным значением энтропии и его размером в байтах.

Разработаем способ сравнения файлов, используя полученное разбиение блоков.

Сравнение файлов

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

• вставка произвольных (в том числе и случайных) данных в файл;

• замена одних данных на другие.

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

Укажем недостатки существующих способов сравнения файлов, представленных векторами характеристик переменной размерности.

¡8

I §

«о

12

0

1 I

и <и

со §

и о

5 §

I

I

а ?

§

11

с

о

н X

о

О

1 1 1 ' -- 1

ьл 1 Г • V 1

О 20000 40000 60000 80000 100000

Рис. 3. Пример статистического профиля файла

Позиция окна

с

о

н X

О

0

Т--- -'- -- ---1-'- --- —г

. —-и 1 ( ' \ .. Г и X, и ц1*

0 20000 40000 60000 80000 100000

Рис. 4. Разбиение статистического профиля файла

Позиция окна

72

№ 2 (44) 2013

х

О

Г\

У

со

0

1

со §

£ %

10000 20000

30000 40000 50000

Позиция окна

к 1

X

О

ы

юооо 20000 зоооо 40000 боооо Позиция окна Рис. 5. Различия в начале статистических профилей

1. Использование начальных или конечных координат векторов неустойчиво к вставке хотя бы одного блока в начало или в конец файла. Например, на рис. 5 приведены статистические профили двух вредоносных объектов одного вида, отличающиеся различным количеством блоков в начале и конце файла.

2. Использование координат с наименьшими или наибольшими значениями (в том числе упорядоченное), входящих в вектор,

не отображает взаимное расположение всех блоков файла.

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

С точки зрения сравнения вредоносных объектов, пара файлов должна считаться

и А

1 1 -Л г/\

( 1 V 1 1-

I 4 I . + 1 I > . А А. .А. . * . f  1

с О н X

О

0,8

0 5000 10000 15000 20000 25000 30000 35000

Позиция окна

  | .... | ... . . . . . 1 . . . .

J м * 1

Г V у

4 II1 ж

0,8

с О н X

О

о

0 5000 10000 15000 20000 25000 30000 35000 40000 Позиция окна Рис. 6. Различия во второй половине статистических профилей

73

№ 2 (44) 2013

s

I

S

«о

е

0

1 I

(о

<и «

§ U

о

.il t

I

I

а ?

£ §

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

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

1. Нахождение всевозможных выравниваний блоков (аналогично выравниванию строк) для двух файлов.

Выравнивание двух строк получается вставкой пробелов между некоторыми символами (возможно и на концах строк) и размещением строк друг над другом так, чтобы каждый символ одной строки оказался напротив такого же символа другой строки [10].

Задача о выравнивании строк в общем случае имеет множество решений. Для уменьшения алгоритмической сложности используется выравнивание блоков, оптимальное с точки зрения редакционного расстояния [10]. Такое выравнивание может не быть оптимальным в смысле предложенной далее меры подобия, однако в большинстве случаев данное выравнивание близко к оптимальному.

В качестве критерия близости блоков в процессе выравнивания используется пороговая функция: блоки считаются похожими, если разница между значениями энтропии блоков меньше порога Etmax и отношение размеров блоков лежит в пределах допустимого промежутка [Т|(т~1; Т(т ].

Обозначим множество похожих пар блоков как М = {т1,т2, ..., тМ|},1М1 —размерность множества М. Для каждой пары выровненных блоков вычислим степень их различия В^т):

Bdf (m ) =

i-

min

max

где Т1(т1) и Т2(т() — размеры, а Et1(m) и Е12(т) — значение энтропии 1-й пары похожих блоков для первого и второго файла, соответственно.

Вм лежит в диапазоне действительных чисел [0, 1], где большим значениям соответствует большее различие между блоками.

2. Вычисление степени подобия файлов для полученного выравнивания на основе выражения:

Sstruc (f1,f2 ) = 1

t 1-BrJf

Nnear И ) 1

max (bc1bc2 ) '

Et

где Sstruc — показатель степени подобия пары файлов f1 и f2 на основе анализа их структуры (принимает малые значения для одинаковых файлов и значения, близкие к 1 для разных); bc1 и bc2 — количество блоков в первом и втором файлах соответственно; Nnear(m) — редакционное расстояние пары блоков mi до ближайшей из соседних пар (mh1 и mi+1): рассчитывается, как количество действий (вставка, замена, удаление), которое нужно совершить, прежде чем произойдет выравнивание следующей (или предыдущей) пары.

В качестве примера рассмотрим строки «abc» и «amnc». Редакционное расстояние от первого выравнивания («a») до следующего («с») составляет две единицы: замена элемента «b» на «m», вставка символа «n».

Экспериментальный анализ способов сравнения файлов

Выбор тестовых групп вредоносных файлов

Для экспериментальной проверки разработанного способа сравнения исполняемых файлов было отобрано 1500 вредоносных объектов. Далее их разобрали по группам согласно вердикту антивируса Касперского: в одну группу отнесены объекты, имеющие одинаковый вердикт. Для большей точности полученные группы были проанализированы вручную и из них удалены ошибочно класси-

74

№ 2 (44) 2013

фицированные объекты. Итоговое количество файлов — 1008, групп — 163.

Мера качества

С целью анализа различных способов сравнения была выбрана бикубическая (bcubed) мера качества кластеризации [12]. Ее преимущества рассмотрены в работе [13].

Для каждого объекта o рассчитываются величины точности (precision) и полноты (recall). Для этого выделяются два подмножества объектов: Ch — все объекты, степень подобия которых с объектом o меньше порога h, и Lh — все объекты того же класса, что и o:

Precision(o,h) =

Recall (o, h) =

I Ch П Lh I I ch I .

I Ch П Lh I I Lh I .

Графически понятия однородности и завершенности представлены на рис. 7. Объекты, расстояние от которых до объекта o меньше порога h, обведены. Объекты одного класса показаны одинаковыми геометрическими формами.

Precision (о, h)=4/5

Recall (о, h) = 4/6

F (o,h) = -

1

а-

Precision

+ (1-а)-

где коэффициент а е [0,1] позволяет взвешивать соотношение точности и полноты. Р-мера принимает большие значения, если точность и полнота сравнения для данного объекта о максимальны, и малые в противном случае.

Бикубическая мера для множества всех объектов {о1, о2, ..., ок} и фиксированного значения порога h рассчитывается как среднее значение Р-мер каждого из к объектов:

¿р М) 0 =—к—

Бикубическая мера принимает большие значения, если точность и полнота сравнения объектов максимальны, и малые в противном случае.

Бикубическая мера может рассчитываться для разных значений порогового расстояния. Для сравнения различных функций расстояния для каждой из них определим порог hQ-max, при котором значение бикубической меры максимально (Отах).

Поскольку бикубическая мера представляет собой среднее значение для измерений Р-меры /-го объекта, погрешность измерений АО для фиксированного порога рассчитаем следующим образом:

AQ (h) = ti

i,k-1

X

k-

Рис. 7. Расчет однородности и завершенности для бикубической меры

Меры однородности и завершенности для объекта о комбинируются в единую Р-меру, которая определяется как взвешенное гармоническое среднее точности и полноты.

Recall

где tY к-1 — значение коэффициента Стью-дента, для к - 1 степеней свободы и доверительной вероятности 1 - у.

Вычисление бикубической меры для способов сравнения файлов

При помощи бикубической меры сравним следующие способы для определения степени подобия файлов:

• способ, использующий контекстно-зависимую кусочную хеш-функцию [7];

• способ, использующий евклидово расстояние между векторами, полученными со-

0

1

со §

£2

75

I=1

№ 2 (44) 2013

Таблица 1

Максимальное значение бикубической меры для функций расстояния

Способ сравнения файлов Максимум бикубической меры Ожх Погрешность измерения А0тзх

Способ, использующий контекстно-зависимую кусочную хеш-функцию 0,29 0,059

Способ, использующий евклидово расстояние между векторами для блоков постоянного размера 0,55 0,099

Способ, использующий блоки переменной длины 0,69 0,123

гласно работе [8], и использующий в случае различной размерности векторов начальные позиции;

• способ, использующий блоки переменной длины, предлагаемый в настоящей работе.

Для оценки погрешности в работе используется доверительная вероятность 0,99.

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

ния h, при котором бикубическая мера принимает максимальное значение.

Результаты вычислений представлены в табл. 1.

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

Заключение

В работе рассмотрены различные способы сравнения исполняемых файлов на основе анализа их структуры.

¡8

I

§

«о

е

0

1 I

(о

<и

со §

и о

5

§

I

I

а

?

§

с

0

а <и

1 •5

О *

и <и

У

\о си

X

<и

У

л

X

со

0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0

0,1 0,2 0,3 0,4

0,5 0,6 0,7 0,8 0,9 1,0 Пороговое расстояние И

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

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

76

№ 2 (44) 2013

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

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

Экспериментально показано преимущество предложенного способа в сравнении с существующими.

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

В дальнейшем, для улучшения качества сравнения, планируется выявлять и не учитывать «стандартные» блоки данных, вставляемые компилятором.

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

1. Li P., Liu L., Gao D, Reiter M. K. On challenges in evaluating malware clustering // Recent Advances in Intrusion Detection 13th International Symposium. Ottawa, 2010. C. 238-255.

2. Lee T., Mody J. J. Behavioral Classification // Proceedings of EICAR. Budapest, Hungary, 2006. С. 201-217.

3. Bayer U, Comparetti P. M, Hlauschek C, Krue-gel C, Kirda E. Scalable, behavior-based malware clustering // Proceedings of the Network and Distributed System Security Symposium. San Diego, California: IEEE, 2009. С. 1-17.

4. Schultz M, Eskin E, Zadok E, Stolfo S. Data mining methods for detection of new malicious executables // Proceedings of the IEEE Symposium on Security and Privacy. Los Alamitos: IEEE Press, 2001. C. 38-49.

5. Sio-Iong A., Len G. Unknown Malicious Identifi- [2

cation // Advances in Electrical Engineering and ¡5

©

Computational Science. Berlin: Springer, 2009. cj C. 301-312. <

6. Santos I., Brezo F., Nieves J., Penya Y. K., Sanz B., |

о

Laorden C., Bringas P. G. Idea: Opcode-Se- ¡ё quence-Based Malware Detection // Engineering lu Security Software and Systems. Berlin: Springer, ^

2010. C. 35-43.

7. Kornblum J. D. Identifying almost identical files using context triggered piecewise hashing // Digital Investigation — 2006. Vol. 3. C. 91-97.

8. Ebringer T., Sun L., Boztas S. A Fast Randomness Test that Preserves Local Detail // Proceedings of the 18th Virus Bulletin International Conference — United Kingdom: Virus Bulletin Ltd. 2008. C. 34-42.

9. Антонов А. Е., Федулов А. С. Алгоритм обнаружения и обхода антиотладочных и антиэмуля-ционных приемов // Информационно-управляющие системы. 2011. № 2 (51). С. 50-54.

10. Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. СПб.: Невский диалект; БХВ-Петербург, 2003. — 654 с.

11. Lakhina A., Crovella M., Diot C. Mining Anomalies Using Traffic Feature Distributions // SIGCOMM '05 Proceedings of the 2005 conference on Application. 2005. C. 217-228.

12. Bagga A., Baldwin B. Cross-Document Event Coreference: Annotations, Experiments, and Observations // Proc. ACL-99 Workshop on Coreference and Its Applications. 1998. C. 1-8.

13. Amig' E., Gonzalo J., Artiles J., Verdejo F. A comparison of extrinsic clustering evaluation metrics based on formal constraints. Information Retrieval // Information. MA, USA: Retrieval Kluwer Academic Publishers Hingham. 2008. Vol. 12. Issue 4. C. 461-486.

14. Андреев Н. О. Перспективы развития антивирусных продуктов // Прикладная информатика. 2009. № 1 (19). С. 75-79.

15. Сильнов Д. С. Классификация средств защиты систем удаленного мониторинга вычислительных ресурсов // Прикладная информатика.

2011. № 3 (33). С. 79-82.