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

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

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Диасамидзе С.В.

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

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

The Method and Technique of Identifi cation of Undeclared Software Possibilities by Means of the Structured Complexity Metrics

This article presents the use of topological and information complexity metrics in the static analysis system to provide logic assessment of the level of development and identifi cation of undeclared possibilities of programs during the assessment and compliance with the quality and security requirements confi rmation. Structuring of complexity metrics is carried out, and the metric basis for the assessment of structure and properties of program computability is developed. The method and technique of identifi cation of undeclared possibilities of programs with the use of structured topological and information complexity metrics are developed and described.

Текст научной работы на тему «Метод и методика выявления недекларированных возможностей программ с использованием структурированных метрик сложности»

Информационные технологии

29

УДК 004.056.53

С. В. Диасамидзе

Петербургский государственный университет путей сообщения

МЕТОД И МЕТОДИКА ВЫЯВЛЕНИЯ НЕДЕКЛАРИРОВАННЫХ ВОЗМОЖНОСТЕЙ ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ СТРУКТУРИРОВАННЫХ МЕТРИК СЛОЖНОСТИ

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

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

Введение

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

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

1 Метрические оценки

в системе статического анализа программного средства

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

Модульная структура представляется в виде графа вызовов, списка путей вызовов,

ISSN 1815-588Х. Известия ПГУПС

2012/3

30

Информационные технологии

матрицы вызовов и достижимости и точек вызовов.

Логическая структура представляется в виде графа управления и путей тестирования.

Характеристики текста программ включают в себя статистические данные о ком-ментированности программы.

Исследования, описанные в работах [3-5], показали недостаточность вышеназванных характеристик и, как следствие, необходимость использования метрик сложности для оценки соответствия программ требованиям качества и безопасности, в том числе выявления НДВ. В частности, автор данной статьи предлагает использование структурированных метрик топологической и информационной сложности в системе статического анализа (рис. 1).

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

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

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

- ранжирование функций и процедур по отклонению от доверенных интервалов;

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

2012/3

Proceedings of Petersburg Transport University

Информационные технологии

31

- разбиение процедур и функций на содержащие дефекты и классифицируемые как НДВ.

2 Анализ возможностей использования

метрик сложности для выявления

НДВ программ

Направлениями обеспечения целостности и обнаружения НДВ программных средств могут быть контроль и анализ метрического базиса, отражающего такие важнейшие характеристики, как структура и свойства вычислимости программ [6-8]. В аспекте исследования структурной сложности программы можно ограничиться мерами, основанными на топологических характеристиках граф-моделей программ, которые удовлетворяют подавляющему большинству требований, предъявляемых к метрическим показателям, рассмотренным ранее. Именно топологические и информационные меры сложности наиболее подходят для построения метрического базиса программы, учитывающего ее структурные модификации и изменения свойств вычислимости, в котором видится решение задачи выявления участков кода программ, имеющих аномальные значения показателей качества и безопасности.

Вначале целесообразно провести экспресс-исследование структурной правильности программы. Оно осуществляется сверткой управляющего графа программы, состоящего из конструкций базиса {Последовательность, Развилка, Цикл}, которые могут объединяться и вкладываться одна в другую так, что граф программы остаётся правильной конструкцией. Минимальный уровень топологической сложности при этом должен быть равен единице, а более высокий показатель свидетельствует о структурных несовершенствах программы. Названная процедура применяется в современных компиляторах при оптимизации программ.

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

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

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

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

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

Базис конструкций охватывает все возможные типовые структуры, которые могут существовать в исполняемом коде программы. Наличие пересечений стандартных типовых конструкций («Цикл - Цикл» - «Вложение», «Разветвление - Разветвление» -«Ветвление», «Последовательность - Последовательность» - «Составление») указывает на ключевые точки управляющего

ISSN 1815-588Х. Известия ПГУПС

2012/3

32

Информационные технологии

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

В результате исследований проведена структуризация и предложен базис конструкций языка Ассемблер, который включает в себя все возможные комбинации основных алгоритмических структур {Последовательность; Разветвление; Цикл}.

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

3 Метод выявления дефектов

и НДВ программ с использованием структурированных метрик сложности

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

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

Это требует построения метрического базиса M = {M1, M2}, где M1, М2 - множества показателей, описывающих соответственно метрические базисы топологической и информационной сложности. «Доверенные» характеристики, полученные опытным путем, образуют так называемые эталоны структуры и свойств вычислимости программ и в целом метрический эталон процесса вычислений.

Анализ всех топологических метрик выявил набор метрик, которые могут быть спроецированы на структурированный базис конструкций языка Ассемблер и позволяют создать метрический базис структуры программы M Базис структуры процесса вычислений M = {mn, m12, ..., m19} в виде метрик представлен в табл. 1, это набор соответствующих показателей m , j = 1, ., 9.

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

ТАБЛИЦА 1. Метрический базис структуры программы

Показа- тель Конструкции языка Ассемблер Метрика

m mii Последовательность Последовательностей Метрика Джилба Логическая сложность программы определяется как насыщенность выражениями типа IF-THEN-ELSE: f = N4/L b, J SV SUb где Luub - число связей между подпрограммами.

m ml2 Последовательность Разветвлений Метрика Чена Выражает сложность программы числом пересечений границ между областями, образуемыми блок-схемой программы: M(G) = (n(G)NQ), где n(G) - цикломатическое число; N - число операторов; Q0 - число пересечений.

m W13 Последовательность Циклов Метрика Вудворда Узловая мера (число узлов передач управления) Y(X)

2012/3

Proceedings of Petersburg Transport University

Информационные технологии

33

Окончание табл. 1

Показа- тель Конструкции языка Ассемблер Метрика

m ГП14 Разветвление Последовательностей Метрика Пивоварского N(G) = V х (G) + где Vх (G) - модифицированная цикломатическая сложность; P. - глубина вложенности i-й предикатной вершины.

m ГП15 Разветвление Разветвлений Метрика точек пересечения Количество точек пересечения дуг графа программы дает характеристику неструктурированности программы: min (a, b) < min (p, q) < max (a, b) & max (p, q) > max (a, b) | min (a, b) < max (p, q) < max (a, b) & min (p, q) < min (a, b)

m fn16 Разветвление Циклов Функциональная метрика f = YCi - сумма приведенных сложностей всех вершин управляющего графа; f* = Nc1/f1 - отношение числа вершин графа к функциональному числу.

m ГП17 Цикл Последовательностей Метрика регулярных выражений P(G) = N + L + Dk, где N - число операндов; L - число операторов; I k - число скобок в регулярном выражении управляющего графа программы.

m m18 Цикл Разветвлений Метрика Пратта 1. Мера сложности простого оператора равна единице. 2. M(F, F2, ..., Fn}) = Хм(Ft). i=1 3. M(IF P THEN F1 ELSE F2) = 2 MAX(M(F1), M (F2)). 4. M (WHILEPDOF) = 2M(F).

m rn19 Цикл Циклов Метрика Мак-Клура M(P) = fp хX(P) + gp х Y(P), где fp и gp - соответственно число модулей, непосредственно предшествующих и следующих за модулем P; X(P) - сложность обращения к модулю P; Y(P) - сложность управления вызовом из модуля P других модулей.

процесса вычислений -M2 = {m21, m22, m23}, приведена табл. 2 (m2i, i = 1, 2, 3 - численные показатели свойств).

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

граммы является метрика m22, характеризующая информационное содержание.

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

ISSN 1815-588Х. Известия ПГУПС

2012/3

34

Информационные технологии

ТАБЛИЦА 2. Метрический базис информационной сложности программ

Показатель Свойство Метрика

m m21 Эквивалентность Информационная энтропия H (x) = -£ P(i)log2 P(i) i=1

m m22 Частичность Информационное содержание (П П ] I = -А Х-А X (log2 ЦХ (T|ilog2 П1 +n2log2 Й2)) ^1 N2 )

m m23 Завершаемость Информационная мера Берлингера I(R) = m(F х (R) х F (R))2

построенная на основе предложенного метрического базиса.

4 Методика выявления НДВ программ

с использованием структурированных

метрик сложности

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

Методика включает этапы копирования дампа памяти исследуемого процесса, автоматическое формирование заключения о его полноте, расчете группы метрик, формирование заключения о наличии или отсутствии НДВ и дефектов программного обеспечения.

Предложенный подход к анализу дампа памяти позволяет:

- получить полную функциональную спецификацию копии дампа памяти;

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

Найденные дефекты, вредоносные изменения и НДВ исполняемого кода после проведённых исследований используются для уточнения классификации признаков дефектов и принятия предупредительных

мер, необходимых для обеспечения информационной безопасности.

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

ШАГ 1. Выполняется анализ оперативной памяти, адресного пространства процесса на предмет уточнения следующих параметров:

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

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

- исследование флагов и свойств участков памяти;

- уточнение количества реализованных потоков в процессе вычислений;

- отбрасывание лишних участков исполняемого кода процесса вычислений (системных библиотек).

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

- типа файла (исполняемый, библиотечный, хранилище данных);

- параметров его исполнения, констант выделения памяти - необходимо для контроля расходования ресурсов;

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

2012/3

Proceedings of Petersburg Transport University

Информационные технологии

35

Рис. 2. Методика выявления НДВ исполняемого кода программ

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

ШАГ 2. Дизассемблирование дампа памяти (блок 2 на рис. 2) реализуется с целью подготовки формы представления программы для дальнейших преобразований в управляющем графе и применения канонической продуктивной схемы Янова. Оценивается полнота копии дампа памяти.

ШАГ 3. Включает в себя блоки 5 и 6 (рис. 2), т. е. на этом шаге происходит смена формы представления процесса вычислений от ассемблерного кода через управляющий граф к канонической продуктивной схеме Янова.

По мере этого преобразования устраняется избыточность программного кода и обнаруживаются дефекты.

ШАГ 4. Расчет метрических показателей (блок 7, рис. 2) процесса вычислений по канонической продуктивной схеме (рис. 3).

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

ISSN 1815-588Х. Известия ПГУПС

2012/3

36

Информационные технологии

ПОКАЗАТЕЛЬ 1 2

МЕТРИКА ДЖИЛБА 2,84277 2,825

3 МАТЕМАТИЧЕСКОЕ ОЖИДАНИЕ СКО

2,828 2,831 0,041

МЕТРИКА ТОЧЕК ПЕРЕСЕЧЕНИЯ

5585

5583

5585

5

Рис. 3. Рассчитанные показатели в метрическом базисе структуры программ

ШАГ 5. Непосредственно уже в момент функционирования системы контроля осуществляется выявление метрических нарушений процесса вычислений и применение решающего правила и решающей функции (блок 8). Применение этого правила представлено на рис. 4.

Для повышения оперативности на первоначальном этапе (в рамках предварительного вывода) вычисляются только три ключевых показателя программы.

ШАГ 6. В случае отклонения метрик от «эталонных» значений формируется список участков, требующих дополнительного исследования.

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

ШАГ 7. Эксперт делает вывод о вредоносном или случайном характере дефекта, наличии/отсутствии НДВ или наличии потенциально опасных конструкций, подозреваемых в наличии НДВ.

Заключение

Предложенные в работе метод и методика выявления НДВ программ с использованием структурированных метрик сложности

Рис. 4. Выявление метрического нарушения процесса вычислений

2012/3

Proceedings of Petersburg Transport University

Информационные технологии

37

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

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

1. Проблемы сертификационных испытаний программных средств связи / С. В. Диасамид-зе // Автоматика, связь, информатика. - 2009. -№ 2.- С. 31-32.

2. Принцип сертификационных испытаний программных средств / С. В. Диасамидзе // Автоматика, связь, информатика. - 2009. - № 7. -С. 29-30.

3. Использование метрик сложности для оценивания качества программ / С. В. Диасамидзе,

А. А. Платонов // Сборник докладов XII Международной научно-практической конференции «Информационные технологии на железнодорожном транспорте». - СПб. : Петербургский гос. ун-т путей сообщения, 2007. - С. 70-72.

УДК 004.4

С. С. Захарченко, М. А. Поляничко

Петербургский государственный университет путей сообщения

АНАЛИЗ ДОСТИЖИМОСТИ СОСТОЯНИЙ РАСПРЕДЕЛЕННЫХ СИСТЕМ И СИСТЕМ С МОДУЛЬНОЙ АРХИТЕКТУРОЙ *

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

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

4. Использование метрик сложности для распознавания недекларированных возможностей и оценивания качества программного обеспечения / С. В. Диасамидзе, А. А. Корниенко // Сборник докладов VI Международной научно-практической конференции «Телекоммуникационные и информационные технологии на транспорте России». - Ростов н/Д : Ростовский гос. ун-т путей сообщения, 2008. - С. 147-152.

5. Использование метрик сложности для логической оценки качества разработки программных средств / С. В. Диасамидзе // Сборник материалов I Международной научно-практической конференции «Интеллектуальные системы на транспорте». - СПб. : Петербургский гос. ун-т путей сообщения, 2011. - С. 130-134.

6. Начала науки о программах / М. Х. Хол -стед ; пер. с англ. В. М. Юфы. - М. : Финансы и статистика, 1981. - 128 с.

7. Искусство тестирования программ / Г. Майерс. - М. : Финансы и статистика, 1982. - 176 с.

8. Стандартизация жизненного цикла и качества программных средств : учеб. пособие / Д. В. Богданов, В. В. Фильчаков. - СПб. : ГУАП, 2000. - 210 с.

* Работа выполнена в рамках гранта РФФИ 11-07-13150.

ISSN 1815-588Х. Известия ПГУПС

2012/3

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