Научная статья на тему 'Идентификация типа содержимого участков сегментов программ методами математической статистики'

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

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

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

Рассматривается методика статистического распознавания исполнимого кода программ. Описаны полученные результаты, планируемые исследования и прогнозируемые результаты.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Лемке Е. А., Лубкин И. А.

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

Текст научной работы на тему «Идентификация типа содержимого участков сегментов программ методами математической статистики»

Актуальные проблемы авиации и космонавтики. Информационные технологии

Рис. 1. Обобщенная схема генерации детекторов

Рис. 2. Обобщенная схема работы системы защиты информации

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

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

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

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

Библиографические ссылки

1. Искусственные иммунные системы и их применение / под ред. Д. Дасгупты ; пер. с англ. под ред. А. А. Романюхи. М. : Физматлит, 2006.

2. Жуков В. Г., Жукова М. Н., Коромыслов Н. А. О применении искусственных иммунных систем в задаче обнаружения инцидентов информационной безопасности // Решетневские чтения : материалы XIV Междунар. науч. конф. ; Сиб. гос. аэрокосмич. ун-т. Красноярск, 2010. С. 548-549.

© Коромыслов Н. А., Жуков В. Г., 2011

УДК 004.056

Е. А. Лемке Научный руководитель - И. А. Лубкин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск

ИДЕНТИФИКАЦИЯ ТИПА СОДЕРЖИМОГО УЧАСТКОВ СЕГМЕНТОВ ПРОГРАММ МЕТОДАМИ МАТЕМАТИЧЕСКОЙ СТАТИСТИКИ

Рассматривается методика статистического распознавания исполнимого кода программ. Описаны полученные результаты, планируемые исследования и прогнозируемые результаты.

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

мы. Но не всегда возможно корректно произвести эти операции. Существуют такие участки программ, для которых нельзя однозначно сказать, что в них содержится: код или данные. Методика решения этой проблемы существует, и она описана в статье [1]. Однако она сложноприменима (не всегда дает однозначный

Секция «Методы и средства зашиты информации»

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

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

Задачами настоящей работы являются:

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

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

3) накопление эталонного распределения частот с использованием написанного программного средства.

В [1] основным математическим методом является аппарат линейной регрессии. Во-первых, каждый язык программирования обладает ограниченным и сравнительно небольшим набором ключевых слов (например, if, else, for, class и т. д.). Во-вторых, каждый компилятор, преобразующий высокоуровневый код в низкоуровневый, имеет определенный и не обладающий большим количеством ветвлений алгоритм работы. В-третьих, в ходе создания программного обеспечения большинство, программистов используют достаточно небольшой стандартный набор языковых конструкций (например, if, else, for, class). Основываясь на этом, можно говорить о наличии статистической линейной связи в работе компилятора, а значит и о применимости линейных методов математической статистики.

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

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

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

1) побайтовый разбор exe-файла;

2) подсчет массива частот для данного ехе-файла;

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

В качестве компиляторов были выбраны Visual C++, Borland C++ и Pascal. В ходе накопления эталонной статистики использовалась априорная информация о типе содержимого участка кода ехе-файла. Результатом данного этапа являются эталонные наборы частот байт для кода и данных следующих компиляторов: Visual C++, Borland C++ и Pascal.

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

В дальнейшем планируется решить следующие задачи:

1) Для более точной идентификации типа содержимого участка исполнимого кода необходимо произвести математически обоснованный подбор весовых коэффициентов для каждой частоты. Т. е. фактически определить, частота какого байта вносит наибольший или наименьший вклад в «отпечаток пальцев» компилятора;

2) При отнесении участка исполнимого кода к тому или иному типу или компилятору производится расчет его корреляции со значением эталонного набора частот. Необходимо определить значения доверительного интервала коэффициента корреляции.

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

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

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

Библиографическая ссылка

1. Методика статистического распознавания исполнимого кода программ // Актуальные проблемы безопасности информационных технологий : материалы II Междунар. науч.-практ. конф. (9-12 сент. 2008 г., Красноярск) / под общ. ред. О. Н. Жданова, В. В. Золотарева ; Сиб. гос. аэрокосмич. ут-т. Красноярск, 2008.

© Лемке Е. А., Лубкин И. А., 2011

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