Метод анализа программного обеспечения на основе частотной характеристики символов в коде для обнаружения угроз информационной безопасности
Метод анализа программного обеспечения на основе частотной характеристики символов в коде для обнаружения угроз информационной безопасности
Аннотация
В данной статье представляется новый подход к оценке кода на основании частотной характеристики символов, который позволяет определять наличие вредоносных частей. Для этого строится таблица частотности символов на основе некоторого количества примеров вредоносных программ, и используется для анализа исследуемых кодов. Таким образом, предлагается новая методика оценки кода на наличие вредоносных частей, которая может быть эффективна в случае, если вредоносный код является новым и неизвестным. Данная работа вносит научную новизну в область информационной безопасности и может быть полезна для специалистов в области информационной безопасности, а также для разработки новых методов защиты от вредоносного программного обеспечения.
1. Введение
Информационная безопасность является одной из наиболее важных задач в настоящее время. Вместе с ростом объемов информации, передаваемой и хранимой в электронной форме, возрастает и угроза ее утечки или несанкционированного доступа. Каждый день мы сталкиваемся с новыми видами кибератак, которые могут привести к серьезным последствиям, таким как потеря конфиденциальной информации, финансовые потери, и нарушение работоспособности систем , , , .
В данной работе предлагается метод оценки кода на основе частотности символов. Для этого создается таблица частотности для вредоносного кода и на ее основе проводится анализ исследуемых кодов, чтобы определить, содержат ли они в себе вредоносные элементы.
Научная новизна данного исследования заключается в разработке нового метода анализа вредоносного ПО. Использование частотной характеристики символов в коде является нестандартным подходом к оценке кода и может помочь в улучшении эффективности методов обнаружения и защиты от вредоносного ПО. Таким образом, данное исследование имеет высокую актуальность в сфере информационной безопасности и может быть использовано для развития более эффективных методов обнаружения и защиты от вредоносного ПО.
2. Современные методы анализа ПО
Современные методы анализа ПО широко применяются для обеспечения безопасности и качества ПО. Некоторые из современных методов анализа ПО включают в себя , , , :
1. Статический анализ кода. Это метод анализа, при котором программный код анализируется без его выполнения. В этом методе анализаторы проверяют код на наличие ошибок, уязвимостей и других потенциальных проблем.
2. Динамический анализ кода. Этот метод включает выполнение кода в контролируемой среде и анализ его поведения. Динамический анализ используется для обнаружения уязвимостей, скрытого поведения и других проблем, которые могут быть пропущены статическим анализом.
3. Fuzz-тестирование. Этот метод включает создание случайных входных данных для программы с целью проверки ее устойчивости и безопасности. Fuzz-тестирование используется для обнаружения уязвимостей, которые могут быть использованы злоумышленниками для атак на ПО.
4. Обратная разработка. Этот метод включает анализ скомпилированного кода с целью получения информации о его структуре и функциональности. Обратная разработка используется для анализа вредоносных программ и уязвимостей в ПО.
5. Анализ бинарного кода. Этот метод включает анализ скомпилированного кода без доступа к исходному коду. Анализ бинарного кода используется для обнаружения уязвимостей, анализа вредоносных программ и оптимизации кода.
6. Исследование угроз. Этот метод включает анализ потенциальных угроз и рисков для ПО. Исследование угроз используется для разработки стратегий защиты ПО и уменьшения рисков для организации.
3. Проблемы современных методов анализа ПО
Исследователи в области обнаружения вредоносного ПО сталкиваются с множеством проблем, которые могут затруднять точное определение наличия вредоносной программы в системе. Некоторые из этих проблем включают в себя:
- изменение кода вредоносной программы: злоумышленники могут изменять код вредоносных программ, чтобы обойти существующие системы обнаружения вредоносного ПО (это делает обнаружение вредоносных программ более сложным);
- использование новых методов атаки: злоумышленники постоянно разрабатывают новые методы атаки, которые могут быть трудными для обнаружения существующими системами безопасности;
- высокое количество ложных срабатываний: традиционные системы обнаружения вредоносного ПО могут давать высокий процент ложных срабатываний, что означает, что система может считать некоторые безвредные программы вредоносными;
- сложность обработки большого объема данных: системы обнаружения вредоносного ПО могут столкнуться с проблемой обработки большого объема данных, что может привести к недостаточной скорости обнаружения вредоносных программ.
Метод анализа ПО на основе частотной характеристики символов в коде может решить некоторые из этих проблем. Данный подход позволяет создавать таблицу частотности для заранее известных вредоносных кодов и анализировать коды исследуемых программ на основе этой таблицы, что может помочь точно определить наличие вредоносной программы в системе. Этот подход может также помочь в решении проблемы высокого процента ложных срабатываний, так как он анализирует код, а не поведение программы, что может дать более точные результаты. Кроме того, этот подход может обрабатывать большие объемы данных быстро, что помогает в улучшении скорости обнаружения вредоносных программ.
4. Суть предлагаемого метода
Предлагаемый метод основан на том, что в различных типах программ (включая вредоносный код) используются различные символы с разной частотой. Например, во вредоносном коде могут быть часто встречающиеся символы «x90» (опкод для инструкции NOP в ассемблере). Подобный метод анализа можно наблюдать в криптографии – частотный анализ , .
Для начала из базы данных вирусов необходимо взять большое количество примеров вредоносного ПО конкретного семейства. Затем для удобства каждый символ преобразовать в соответствующее число по таблице символов ASCII (т.е. от 0 до 255). Далее для каждого из 256 чисел найти процент его содержания относительно длинны всех анализируемых кодов. Данное значение можно назвать весом числа, которое рассчитывается по следующему правилу:
где – суммарный листинг всех анализируемых кодов, – количество чисел во всем коде , – вес числа , где = 0, 1, 2, …, 255.
После того как для каждого числа 0-255 были определены соответствующие веса, необходимо построить частотную таблицу. Приведем пример части такой таблицы – таблица 1.
Таблица 1 - Веса некоторых чисел вредоносных кодов типа троянов
i | Значение вредоносного ПО, % |
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%).
Для того чтобы иметь возможность оценить вредоносность анализируемого ПО, введем следующую метрику:
где значение рассчитывается для каждого значения по следующему правилу:
здесь – вес числа из таблицы 1, – вес числа относительно анализируемого кода, – максимальное значение между и , – минимальное значение между и , 0,0001 – самое минимальное значение весов чисел, полученное в результате большого количества опытов (введение данного числа обусловлено тем, что для некоторых кодов значение может быть ноль).
Далее возьмем большое количество тестовых кодов – обычных и вредоносных (семейства троянов). Для каждого из данных кодов вычислим значения метрики 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 и т.д.
Исследования, связанные с защитой: можно исследовать методы защиты от вредоносного кода на основе частотной характеристики символов, такие как обнаружение и удаление вредоносных элементов, защита от атак, связанных с изменением частотной характеристики символов и т.д.
Расширение области исследований: можно расширить область исследований, включив в них не только вредоносный код, но и другие виды кода, например, код, используемый в различных областях, таких как банковское дело, медицина и т.д.