Научная статья на тему 'МЕТОДИКА ЭКСПЕРТИЗЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОСНОВЕ УСОВЕРШЕНСТВОВАННОГО АЛГОРИТМА РАСЧЕТА СКОЛЬЗЯЩЕЙ ЭНТРОПИИ ДВОИЧНЫХ ФАЙЛОВ'

МЕТОДИКА ЭКСПЕРТИЗЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОСНОВЕ УСОВЕРШЕНСТВОВАННОГО АЛГОРИТМА РАСЧЕТА СКОЛЬЗЯЩЕЙ ЭНТРОПИИ ДВОИЧНЫХ ФАЙЛОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
45
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭНТРОПИЙНЫЙ АНАЛИЗ / СКОЛЬЗЯЩАЯ ЭНТРОПИЯ / АНАЛИЗ АЛГОРИТМОВ / ОБРАТНОЕ ПРОЕКТИРОВАНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Карбовский Сергей Витальевич

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

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

METHODOLOGY OF SOFTWARE EXPERTISE BASED ON IMPROVED WINDOWED ENTROPY CALCULATION ALGORITHM

The article discusses an algorithm for calculating the sliding entropy of a binary file with an intersection between adjacent blocks. The relevance of the study is due to the widespread use of entropy analysis in software expertise. The currently used algorithm for calculating entropy with intersection between adjacent blocks has quadratic complexity in the worst case. As a result, the entropy calculation algorithm used in the analysis tools divides the input file into disjoint blocks, which reduces the accuracy of entropy analysis. The paper analyzes the changes in the information entropy of a message when one character changes in it. It is determined that calculations of entropy changes, regardless of the ratio of the frequency of occurrence of deleted and added characters in the message, can be carried out in constant time. As a result of the analysis of the revealed dependencies, a more productive algorithm for calculating the sliding entropy of binary files with intersecting blocks has been developed. It is shown that the developed algorithm makes it possible to calculate entropy with an arbitrary amount of displacement between adjacent blocks of the file. An experimental evaluation of the accuracy and performance of the algorithm was carried out. It is revealed that the performance gain when using the developed algorithm increases with a decrease in the offset between adjacent blocks. The study is intended for specialists in the field of system analysis of software, as well as in the field of reverse engineering of software.

Текст научной работы на тему «МЕТОДИКА ЭКСПЕРТИЗЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ОСНОВЕ УСОВЕРШЕНСТВОВАННОГО АЛГОРИТМА РАСЧЕТА СКОЛЬЗЯЩЕЙ ЭНТРОПИИ ДВОИЧНЫХ ФАЙЛОВ»

Методика экспертизы программного обеспечения

на основе усовершенствованного алгоритма расчета скользящей энтропии двоичных файлов

С.В. Карбовский

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

Ключевые слова— энтропийный анализ, скользящая энтропия, анализ алгоритмов, обратное проектирование.

I. Введение

Информационная энтропия по Шеннону (далее -энтропия) - численная мера, характеризующая разброс вероятности появления в сообщении символов алфавита данного сообщения. Как известно, энтропия не зависит от взаимного расположения символов в сообщении, а только от их количественного соотношения; иными словами, энтропия не учитывает синтаксические и семантические особенности сообщения. Например, сообщение размером 256 байт, которое содержит упорядоченную последовательность байт от 0x00 до 0xFF, обладает максимально возможной восьмибитной энтропией, хотя не является ни сжатым, ни

Статья получена 25 апреля 2023.

Сергей Витальевич Карбовский, ООО «Статус Комплайнс» (e-mail: kserx05@yandex.ru).

зашифрованным, ни случайным [1].

Значение энтропии также показывает среднее количество информации, передаваемой каждым символом сообщения. Данный факт объясняет высокую энтропию сжатого или зашифрованного сообщения [2]. Описанное выше свойство энтропии привело к широкому использованию энтропийного анализа в экспертизе программного обеспечения. Суть метода энтропийного анализа заключается в экспертной оценке динамики информационной энтропии двоичного файла, подвергаемого анализу. Автоматизированные инструменты анализа позволяют сделать предположение о содержимом исследуемого объекта по его информационной энтропии (метод сегментации файла [3], метод идентификации типа файла [4]). Наличие в исполняемом файле фрагмента с высокой энтропией используют как признак вредоносного файла [5, 6]. Энтропийный анализ используется и при анализе встроенного программного обеспечения (прошивок) телекоммуникационного оборудования, а также систем Интернета вещей [3, 7]. Поскольку структурированные данные могут обладать высокой энтропией [8], фрагменты прошивки с высокой энтропией имеют повышенный приоритет при проведении экспертизы. Такие фрагменты могут содержать в себе ценные сведения - ключи шифрования, данные аутентификации, конфигурационные файлы, и т.д.

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

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

0% 25% 50% 75% 100%

Относительное смешение в файле, %

Рис. 1 - График энтропии исполняемого файла

Анализ исходного кода инструментов [11-16] показал, что в настоящее время используются две равноправные методики расчета энтропии со скользящим окном:

1) При расчете используется прямоугольное окно с шириной, равной степени 2, окна не перекрываются;

2) Файл разбивается на некоторое число блоков равного размера, при расчете используется прямоугольное окно с шириной, соответствующей размеру блока, окна не перекрываются.

Для получения данных, представленных на рисунке 1 использован исполняемый файл cmd.exe, входящий в состав массива данных PackingData, собранного в рамках исследования [10]. Расчеты проведены по упомянутой выше методике 1) с размерами окна, равными 256, 512, 1024, 2048 и 4096 байт. На рисунке 1 отчетливо видны три сегмента, соответствующие сегментам исполняемого файла.

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

II. Материалы и методы

Информационная энтропия по Шеннону рассчитывается по формуле:

Н = - I р(х) 1од2р(х), хЕА,#(1)

х: р(х)>0

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

255

Н(Б) = - ^ р(г) 1од2 р(0 ,#(2)

1=0 р(х)>0

где р(€) - вероятность появления символа I в сообщении 5. Вероятность интерпретируется в классическом смысле и равна частоте появления данного символа:

п 255

*==!&?=1, п=Iе-

] = 1 1=0

где С1 - количество повторений символа I из алфавита сообщения , а - длина сообщения .

Далее приведен алгоритм расчета энтропии, использующего скользящее окно со смещением между соседними блоками, реализации которого используются в [11-16]. Из записи алгоритма видно, что символы, попадающие одновременно в соседние окна, участвуют в расчете энтропии более одного раза.

БИ (ИпдШтйошЕпЬгору Отд та1 (5, п, и/, р)

Вход:

сообщение 5 = (зп); ширина окна № (и/ < п); смещение между соседними окнами . Выход: массив значений энтропии Н со скользящим окном ширины .

Н[р] ^ 0 b oun di eft ^ 0 for kin[0, р) С[256] ^ 0

for i in [b ound ieft, b oun dieft + w)

С [5[ i]] ^ C[5[t]] + 1 end for

Tjrj.i T255 c[j]ln„ (C[J]\ H[k] = J=0 — log2{—)

C[j]>0

boundieft ^ boundieft + v end for

V V IV д

Рис. 2 - Иллюстрация метода скользящего окна

В приведенном алгоритме определено заполнение выходного массива значениями скользящей энтропии. Размер выходного массива равен \(п — № + 1)/р]. Данный факт определен в результате рассуждения, проиллюстрированного на рисунке 2.

Рассуждение состоит в следующем. Через каждые V байт входного массива начинается новый блок длины w. Тогда запишем:

п = ку + ж + q #(3) 0 <Ц<У- 1, ^£М0 Количество отрезков с в таком случае на единицу больше коэффициента к. Подставив неравенство для ц в формулу 3, получим:

п — ш+1 п — ш

<с <

■ +1

V V

Требование к Е Ш0 определяет количество блоков:

с =

■ w + 1

V

п — ш

+ lj #(4)

Из формулы 4 следует, что в процессе выполнения алгоритма операция доступа к символам сообщения 5 выполняется ш +1| раз. Таким образом,

(ш(п-ш)

вычислительная сложность алгоритма равна О I-

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

что символы, попадающие одновременно в соседние окна, участвуют в расчете энтропии до ßn/w раз. Для оптимизации данного алгоритма в худшем случае достаточно выполнить следующее условие: каждый символ сообщения обрабатывается алгоритмом 0(1) раз.

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

III. Результаты

Рассмотрим добавление к сообщению S одного символа, равного к. Энтропия полученного сообщения

рассчитывается по формуле:

/„„ \

1

H(S. к) = log2(n + 1) —

п + 1

^ 1од2 (С;) + (Ск + 1) 1од2(Ск + 1) 1=0

\<*к / Алгебраические преобразования дают формулы, представленные в таблице 2.

Таблица 2 - Изменение энтропии сообщения в результате добавления символа

Количество повторений добавляемого символа Энтропия сообщения

ск = 0 п . (n + 1)log2(n+1) — nlog2(n) H(s.k)=n + 1H(s)+ п + 1

ск >0 H(s.k)= + H(s) + (n + 1) 1ов2(п + 1) — п1оЯ2(п) ( Ск +1) 1 од2(Ск +1) —Ск 1од2( Ск) п + 1

Таблица 1 - Вычислительная сложность алгоритма расчета энтропии

Случай Условие Вычислительная сложность

Лучший п = w 0(1)

Средний w = const V = const 0(П)

Худший w = ßn, ß Е R: [0; 1) v = const 0(n2)

H(S/t)= 1од2(п — 1) — -

Рассмотрим удаление из сообщения 5 одного символа, равного t. Энтропия полученного сообщения рассчитывается по формуле:

\

^ Ъ 1од2(сд + (сь — 1) 1од2(с1 — 1) 1=0

\1*0 / \С1>0 /

Формулы для энтропии при удалении символа представлены в таблице 3.

Таблица 3 - Изменение энтропии сообщения в результате удаления символа

Количество повторений удаляемого символа Энтропия сообщения

1 = n nloq?(n) — (n — 1) loq7(n — 1) H(S\t) =-H(S)--^^----- n —1 n —1

Ct >1 n nloq?(n) — (n — 1) loq7(n — 1) H(S\t) =-H(S)--^^----- n —1 n —1 et iog2 Ы — (et —1) iog2 (et —1) n — 1

Из таблицы 1 видно, что в худшем случае сложность алгоритма является квадратичной. Данному случаю соответствует разделение входных данных на некоторое число блоков равного размера (например, в [11, 14]); при этом значения энтропии блоков сглажены за счет вычисления энтропии в промежуточных точках. Квадратичная сложность алгоритма объясняется тем,

Рассмотрим теперь случай замены в сообщении S

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

• £ = к (некоторый символ заменяется на такой же символ);

• с( = ск + 1 (вклад, который заменяемые символы суммарно вносят в энтропию, после замены не изменяется).

Формулы для энтропии при замене одного символа, полученные на основе таблиц 2 и 3, представлены в таблице 4.

Таблица 4 - Изменение энтропии сообщения в результате замены символа

Количество повторений добавляемого и удаляемого символов Энтропия сообщения

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

t II № H(S.k\t) = H(S)

t± к, t I k+1 H(S.k\t) = H(S)

t± к, Ck = 0, t>1 , ctl°g2( Ct) - (Ct- 1)l°g2(Ct- 1 H(S.k\t) = H(S) +-- n

t± к, Ck > 0, t I 1 H(S.k\t)= H(S) (Ck + 1)l"g2(Ck + V -Cklog2(Ck)

t± к, Ck > 0, t>1 „ГС- Ctl og2(c t) - (C t- 1) l og2 (C t- 1) H(S.k\t) =- (ck + 1) log2 (ck + 1 -ck log2 (ck) + п(Ь)

Формулы, приведенные в таблице 3, позволяют записать алгоритм расчета энтропии файла со скользящим окном. Алгоритм включает в себя следующие шаги:

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

2) Замена в блоке первого символа на следующий за блоком;

3) Расчет изменения энтропии;

4) Проверка конца файла;

5) Завершение алгоритма или переход к шагу 2.

Далее приведена запись алгоритма на псевдоязыке.

SlidingWindowEntropyModified (S, n, w, v)

Вход:

сообщение 5 = (зп); ширина окна № (ж < п); смещение между соседними окнами V. Выход: массив значений энтропии Н со скользящим окном ширины w.

Н[р] . 0

Ртах ^n-W + 1

С[256] . 0

for i in[0, w)

C[S[i]] . C[S[i]] + 1 end for

H . y255 C[j] i C[j ]J

HCur * h j=0 —l o g 2^—J

C[j ]>0 H [0] . HcUr q. 1

for к in [1, Рт ax) step V for j in [0, v)

ifS[к] Ф S[k + w] ct . С [5 [ к]] ck . С [5[k + w]] ifCt > 1

U .y, + Ct l032( Ct)-(.Ct-1) l Og2( Ct-1) **cur **Cur „

end if ifCk > 0

y, .y, - ( Ck + 1) 1 °32( C k+1)-Ck 1 °d2( Ck) **Cur **Cur „

end if

C[S[к]] . Ct- 1 c[s[k + w]] . ck + 1

endif end for

H [ q ] . H CUr q . q + 1 end for

Оценим вычислительную сложность представленного алгоритма с точки зрения количества операций доступа к символам сообщения 5. На первом шаге алгоритма данная операция выполняется раз. Далее, на каждом шаге внутреннего цикла происходит 2 обращения - к добавляемому и удаляемому символам. Таким образом, всего выполняется ж + 2((п — уу + 1) — 1) обращений. Иными словами, вычислительная сложность алгоритма равна ( ).

В целях валидации разработанного алгоритма проведена его экспериментальная оценка, направленная на сравнение производительности классического и разработанного алгоритмов. В качестве исходных данных экспериментов использованы выборки размером 512 байт из файлов различного типа, входящие в массив данных РБТ-75 [17]. Выборки были сгруппированы по

SlidingWindowEntropyModif ied (S, n, w, v)

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

Первый эксперимент направлен на оценку точности разработанного алгоритма путем определения значения средней квадратической ошибки (СКО) между результатами работы оригинального и разработанного алгоритмов. Усредненная величина СКО по всем файлам набора РБТ-75 с различными значениями ширины окна и смещением, равным одному символу, представлена в таблице 5. Видно, что значение СКО находится ниже уровня погрешности типа данных с плавающей запятой двойной точности, что свидетельствует в пользу высокой точности разработанного алгоритма.

Таблица 5 - Средняя квадратическая ошибка для различных значений ширины окна

В ходе эксперимента производился расчет динамики энтропии для файлов из РБТ-75 различного размера с измерением количества операций доступа к памяти. Результаты данного эксперимента представлены на рисунке 3.

Рис. 1 - График производительности алгоритмов для

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

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

Третий эксперимент направлен на установление зависимости производительности оригинального и разработанного алгоритмов от величины смещения в среднем случае для оригинального алгоритма. Параметры скользящего окна, выбранные для данного эксперимента, перечислены в таблице 7 (смещение изменяется от 32 до 256 байт).

Таблица 7 - Параметры скользящего окна

Параметр w п

Значение 256 байт Переменная 65536 байт

w 256 байт 512 байт 1024 байт 2048 байт 4096 байт

СКО 4.18*10-28 5.78 *10-27 1.51 *10-26 3.69*10-28 2.00*10-27

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

Таблица 6 - Параметры скользящего окна

Параметр w п

Значение п/2 128 байт Переменная

В ходе эксперимента производился расчет динамики энтропии для файлов из РБТ-75 различного размера с измерением количества операций доступа к памяти. Результаты данного эксперимента представлены на рисунке 4.

Рис. 2 - График производительности алгоритмов для

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

IV. Обсуждение

С целью определения условия выбора наиболее производительного алгоритма рассмотрим соотношение количества операций доступа к символам входного сообщения, выполняемых в оригинальном ( 0) и разработанном ^^ алгоритмах:

п — IV + 1

!М0 = ш * N1 = 2п — ш

Очевидно, что при М0 < Ы1 необходимо использовать оригинальный алгоритм, а при М0 > -

модифицированный. Пусть N 0 = N 1. Тогда:

п — IV + 1

w *

= 2п — w

w + 1

2

2п — ж п — ш + 1 2п -<-< —

( - + 1) ( - + 1)

--< V < —^-

2п 2п — ш

Рассуждения при М0 < и М0 > аналогичны. Соотношение производительности алгоритмов в зависимости от величины смещения проиллюстрировано рисунком 5.

Рис. 3 - Зависимость производительности алгоритмов

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

оригинальный, при V < —--; в противном случае

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

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

Рис. 4 - Зависимость производительности алгоритмов от длины сообщения

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

V. Заключение

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

Основное направление развития данного исследования состоит в обеспечении многомасштабной обработки сообщения алгоритмом - одновременного

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

Библиография

[1] Cortesi A. Visualizing entropy in binary files [Электронный ресурс] // Блог Aldo Cortesi. 2012. URL: https://corte.si/posts/visualisation/entropy/ (дата обращения: 16.11.2022).

[2] Нестерович С.А., Купцова Ю.И. О некоторых возможностях обнаружения скрытого вредоносного кода // Вестник Российского нового университета. Серия: Сложные системы: модели, анализ и управление. - 2021. - № 3. - С. 156-161. - DOI 10.25586/RNU.V9187.21.03.P.156.

[3] Benvenuto F. et al. Firmware Extraction from Real IoT Devices through Power Analysis of AES //ITASEC. - 2021. - C. 461-474.

[4] Hui T.X., Mohamad K.M., Rahman N.H.A. myEntropy: a file type identification tool using entropy scoring //International Journal of Electronic Security and Digital Forensics. - 2022. - T.14. - N° 1. - C. 76-95.

[5] Копыльцов А.В. Вейвлет-анализ структурной энтропии файлов //Известия Российского государственного педагогического университета им. А.И. Герцена. - 2011. - № 138. - С. 7-15.

[6] Сорокин И.В. Математические модели и алгоритмы распознавания упакованных вредоносных программ: дис. -Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, 2013.

[7] Югансон А.Н. Метод определения упакованных и зашифрованных данных во встроенном программном обеспечении //Научно-технический вестник информационных технологий, механики и оптики. - 2020. - Т. 20. - №. 5. - С. 708713.

[8] Lyda R., Hamrock J. Using entropy analysis to find encrypted and packed malware //IEEE Security & Privacy. - 2007. - T. 5. - № 2. -C. 40-45.

[9] Ugarte-Pedrero X. et al. Countering entropy measure attacks on packed software detection //2012 IEEE Consumer Communications and Networking Conference (CCNC). - IEEE, 2012. - С. 164-168.

[10] Choi M.J. et al. All-in-one framework for detection, unpacking and verification for malware analysis //Security and Communication Networks. - 2019. - T. 2019. - DOI: 10.1155/2019/5278137.

[11] BinGraph [Электронный ресурс] // Github. URL: https://github.com/geekscrapy/binGraph (дата обращения: 16.11.2022).

[12] Bintropy [Электронный ресурс] // Github. URL: https://github.com/packing-box/binropy (дата обращения: 16.11.2022).

[13] Binwalk [Электронный ресурс] // Github. URL: https://github.com/ReFirmLabs/binwalk (дата обращения: 16.11.2022).

[14] Detect-It-Easy [Электронный ресурс] // Github. URL: https://github.com/horsicq/Detect-It-Easy (дата обращения: 16.11.2022).

[15] EntroPy [Электронный ресурс] // Github. URL: https://github.com/gcmartinelli/entroPy (дата обращения: 16.11.2022).

[16] Ghidra [Электронный ресурс] // Github. URL: https://github.com/NationalSecurityAgency/ghidra (дата обращения: 16.11.2022).

[17] Mittal G., Korus P., Memon N. FiFTy: large-scale file fragment type identification using convolutional neural networks //IEEE Transactions on Information Forensics and Security. - 2020. - Т. 16. - С. 28-41.

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

Methodology of software expertise based on improved windowed entropy calculation algorithm

S.V. Karbovskiy

Abstract— The article discusses an algorithm for calculating the sliding entropy of a binary file with an intersection between adjacent blocks. The relevance of the study is due to the widespread use of entropy analysis in software expertise. The currently used algorithm for calculating entropy with intersection between adjacent blocks has quadratic complexity in the worst case. As a result, the entropy calculation algorithm used in the analysis tools divides the input file into disjoint blocks, which reduces the accuracy of entropy analysis. The paper analyzes the changes in the information entropy of a message when one character changes in it. It is determined that calculations of entropy changes, regardless of the ratio of the frequency of occurrence of deleted and added characters in the message, can be carried out in constant time. As a result of the analysis of the revealed dependencies, a more productive algorithm for calculating the sliding entropy of binary files with intersecting blocks has been developed. It is shown that the developed algorithm makes it possible to calculate entropy with an arbitrary amount of displacement between adjacent blocks of the file. An experimental evaluation of the accuracy and performance of the algorithm was carried out. It is revealed that the performance gain when using the developed algorithm increases with a decrease in the offset between adjacent blocks. The study is intended for specialists in the field of system analysis of software, as well as in the field of reverse engineering of software.

Keywords—entropy analysis, moving window entropy, algorithm analysis, reverse engineering.

References

[1] Cortesi A. Visualizing entropy in binary files // Aldo Cortesi. 2012. URL: https://corte.si/posts/visualisation/entropy/ (visited: 16.11.2022).

[2] Nesterovich S.A., Kuptsova Yu.I. On some possibilities of hidden malicious code detection //Proceedings of the Russian New University. Serie: Complex Systems: models, analysis and control. -2021. - № 3. - C. 156-161. - DOI 10.25586/RNU.V9187.21.03.P.156.

[3] Benvenuto F. et al. Firmware Extraction from Real IoT Devices through Power Analysis of AES //ITASEC. - 2021. - C. 461-474.

[4] Hui T.X., Mohamad K.M., Rahman N.H.A. myEntropy: a file type identification tool using entropy scoring //International Journal of Electronic Security and Digital Forensics. - 2022. - T.14. - N° 1. - C. 76-95.

[5] Kopyltsov A.V. Wavelet-analysis of the file structural entropy //Proceedings of Russian State Pedagogical University. - 2011. - № 138. - C. 7-15.

[6] Sorokin I.V. Mathematical models and algorithms of packed malicious program recognition: diss. - Saint-Petersburg National Research University of Information Technologies, Mechanics and Optics, 2013.

[7] Yuganson A.N. Method for determining packed and encrypted data inside of embedded software //Scientific and Technical Bulletin of Information Technologies, Mechanics and Optics. - 2020. - T. 20. -№. 5. - C. 708-713.

[8] Lyda R., Hamrock J. Using entropy analysis to find encrypted and packed malware //IEEE Security & Privacy. - 2007. - T. 5. - № 2. -C. 40-45.

[9] Ugarte-Pedrero X. et al. Countering entropy measure attacks on packed software detection //2012 IEEE Consumer Communications and Networking Conference (CCNC). - IEEE, 2012. - C. 164-168.

[10] Choi M.J. et al. All-in-one framework for detection, unpacking and verification for malware analysis //Security and Communication Networks. - 2019. - T. 2019. - DOI: 10.1155/2019/5278137.

[11] BinGraph // Github. URL: https://github.com/geekscrapy/binGraph (visited: 16.11.2022).

[12] Bintropy // Github. URL: https://github.com/packing-box/binropy (visited: 16.11.2022).

[13] Binwalk // Github. URL: https://github.com/ReFirmLabs/binwalk (visited: 16.11.2022).

[14] Detect-It-Easy // Github. URL: https://github.com/horsicq/Detect-It-Easy (visited: 16.11.2022).

[15] EntroPy // Github. URL: https://github.com/gcmartinelli/entroPy (visited: 16.11.2022).

[16] Ghidra // Github. URL: https://github.com/NSA/ghidra (visited: 16.11.2022).

[17] Mittal G., Korus P., Memon N. FiFTy: large-scale file fragment type identification using convolutional neural networks //IEEE Transactions on Information Forensics and Security. - 2020. - T. 16. - C. 28-41.

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