A Software Analysis Method based on Frequency Characterization of Characters in Code for Information Security Threat Detection

Research article
DOI:
https://doi.org/10.23670/IRJ.2023.132.39
Issue: № 6 (132), 2023
Suggested:
02.04.2023
Accepted:
29.05.2023
Published:
16.06.2023
682
6
XML
PDF

Abstract

This article presents a new approach to code evaluation based on character frequency response, which allows to determine the presence of malicious parts. For this aim, a character frequency table is constructed based on a number of malware samples and used to analyse the studied codes. Thus, a new methodology is proposed to evaluate the code for the presence of malicious parts, which can be effective if the malicious code is new and unknown. This work brings scientific novelty to the field of information security and can be useful for information security professionals and for the development of new methods of protection against malicious software.

1. Введение

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

,
,
,
.

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

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

2. Современные методы анализа ПО

Современные методы анализа ПО широко применяются для обеспечения безопасности и качества ПО. Некоторые из современных методов анализа ПО включают в себя

,
,
,
:

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

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

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

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

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

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

3. Проблемы современных методов анализа ПО

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

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

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

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

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

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

4. Суть предлагаемого метода

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

,
.

Для начала из базы данных вирусов необходимо взять большое количество примеров вредоносного ПО конкретного семейства. Затем для удобства каждый символ преобразовать в соответствующее число по таблице символов ASCII (т.е. от 0 до 255). Далее для каждого из 256 чисел найти процент его содержания относительно длинны всех анализируемых кодов. Данное значение можно назвать весом числа, которое рассчитывается по следующему правилу:

img
(1)

где img – суммарный листинг всех анализируемых кодов, img – количество чисел img во всем коде img, img – вес числа img, где img = 0, 1, 2, …, 255.

После того как для каждого числа 0-255 были определены соответствующие веса, необходимо построить частотную таблицу. Приведем пример части такой таблицы – таблица 1.

Таблица 1 - Веса некоторых чисел вредоносных кодов типа троянов

i

Значение img вредоносного ПО, %

6

0,41

13

0,99

19

0,34

139

0,95

192

0,49

224

0,29

238

0,25

255

2,85

Таблица 1 показывает процент содержания каждого значения символа в коде, преобразованного в десятичную систему счисления. Например, символ с кодом 255 встречается в данном коде в 2,85% случаев, а символ с кодом 238 практически ни разу (0,25%).

Для того чтобы иметь возможность оценить вредоносность анализируемого ПО, введем следующую метрику:

img
(2)

где значение img рассчитывается для каждого значения img по следующему правилу:

img
(3)

здесь img  вес числа img из таблицы 1, img  вес числа img относительно анализируемого кода, img  максимальное значение между img и img, img  минимальное значение между img и img, 0,0001  самое минимальное значение весов чисел, полученное в результате большого количества опытов (введение данного числа обусловлено тем, что для некоторых кодов значение img может быть ноль).

Далее возьмем большое количество тестовых кодов – обычных и вредоносных (семейства троянов). Для каждого из данных кодов вычислим значения метрики P и возьмем среднее значение. В результате чего можно сформировать таблицу 2.

Таблица 2 - Значение метрики P в зависимости от типа и от размерности ПО

Тип ПО

Размерность, КБ

Значения метрики P

Вредоносное

4000

369

2000

365

500

444

100

1212

Обычное

4000

118397

2000

128691

500

146748

100

36355

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

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

Предложенный метод имеет несколько преимуществ по сравнению со стандартными методами анализа вредоносного ПО:

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

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

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

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

Существует несколько направлений, в которых можно проводить будущие исследования:

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

Анализ других аспектов кода: помимо частотной характеристики символов, можно проводить исследования, направленные на анализ других аспектов кода, таких как синтаксическая структура, использование API и т.д.

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

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

Article metrics

Views:682
Downloads:6
Views
Total:
Views:682