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

Беляков И. А., Еремеев М. А. Применение интеллектуальных технологий в процессе сертификации программного обеспечения // Молодой ученый. — 2011. — №11. Т.1. — С. 23-31.

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

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

Ключевые слова: Информационная безопасность, программное обеспечение, сертификация, уязвимости, статический анализ, искусственный интеллект, нейронная сеть.

Введение

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

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

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

1 Существующий подход к статическому анализу

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

(1)

Значение функции равное 0 показывает, что по результатам анализа представленной информации можно сделать заключение, не соответствует заявленным требованиям безопасности, а если функция принимает значение равное 1, то можно сделать вывод, что ПО в полной мере соответствует заявленным требованиям безопасности.

В общем виде, процесс выявления уязвимостей можно разделить на пять стадий:

  • Сбор и подготовка исходных данных.

  • Анализ. На стадии анализа исходные данные обрабатываются специализированными автоматизированными средствами.

  • Обработка результатов анализа.

  • Принятие решения.

  • Формирование отчета.

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

Рисунок 1 Распределение затрат времени
на этапы сертификационных испытаний

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

Рассмотрим перспективы применения интеллектуальных технологий на примере автоматизированной системы поддержки принятия решения по результатам статического анализа исходных текстов. Основным недостатком существующей системы (рисунок 2) является высокая нагрузка на эксперта. Относительный объем данных анализа может на порядок превышать объем исходных данных [3]. Также следует отметить увеличивающуюся структурную сложность, анализируемой экспертом информации.

Рисунок 2 Существующая модель проведения сертификационных испытаний


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

  • контроль полноты и отсутствия избыточности исходных текстов;

  • контроль соответствия исходных текстов ПО его объектному коду;

  • контроль связей функциональных объектов (модулей, процедур, функций) по управлению и информации;

  • контроль информационных объектов различных типов (например, локальных переменных, глобальных переменных, внешних переменных и т.п.);

  • формирование перечня маршрутов выполнения функциональных объектов (процедур, функций);

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

  • формирование перечня маршрутов выполнения функциональных объектов (ветвей) и анализ критических маршрутов;

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

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

Рисунок 3 Функциональная модель эксперта и решаемых им задач


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

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

2 Систематизация оцениваемых характеристик

Важнейшим этапом при построении системы поддержки принятия решения, вне зависимости от используемых методов, является систематизация характеристик оцениваемого объекта [4, 5].

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

Таблица 1 Информационное представление требований РД НДВ

Наименование требования

Информационное представление

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

Контроль полноты и отсутствия избыточности исходных текстов

Множество файлов

Контроль соответствия исходных текстов ПО его объектному (загрузочному) коду

Множество контрольных сумм
файлов

Контроль связей функциональных объектов по управлению

Матрица передачи управления

Контроль связей функциональных объектов по информации

Матрица передачи информационных объектов

Контроль информационных объектов

Матрица передачи информационных объектов

Контроль наличия заданных конструкций в исходных текстах

Список опасных конструкций

Формирование перечня маршрутов выполнения функциональных объектов

Матрица маршрутов

Анализ критических маршрутов выполнения функциональных объектов

Список критических маршрутов


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

Рисунок 4 Система уровней оценивания безопасности ПО


При выборе оцениваемых характеристик необходимо обеспечить их представление в едином формате. Это позволит провести автоматизированное оценивание соответствия, используя систему поддержки принятия решения [5].


3 Расчет ключевых характеристик безопасности ПО

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

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

(1)

где с – эталонное количество файлов в исходных текстах, с` – действительное количество файлов в исходных текстах. Расчет Sсф (рисунок 5) позволяет дать оценку и, в дальнейшем, произвести ее оценивание в рамках заданных критериев.

Рисунок 5 График функции характеризующей полноту исходных текстов


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

(2)

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

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

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

Рисунок 6 Связь ФО по управлению
а - в виде графа, б - в виде матрицы

Следовательно, к основным характеристикам графа следует отнести:

  • Отсутствие ФО, не передающих управление. Исключением является только последний.

  • Отсутствие ФО, не получающих управление. Исключением является инициирующий ФО.

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

(3)

Полученная, таким образом, характеристика позволяет оценить безопасность использования функциональных объектов (рисунок 7).

Рисунок 7 Расчет характеристики оценивающей безопасность
использования функциональных объектов


Формирование перечня маршрутов и анализ критических маршрутов

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

(4)

При оценивании полученной характеристики, значение которой находится в пределах
[0; 100], необходимо руководствоваться требованиями РД НДВ. Значение «0» показывает полное отсутствие критических маршрутов, а «100» – характеризует анализируемое программное обеспечение как небезопасное. С учетом критичности, при принятии решения, можно задать небольшой допуск. Дальнейшее оценивание в рамках указанного допуска показывает соответствие ПО приемлемому уровню защищенности. На практике значение характеристики меньшее «20» является достаточным.

Контроль связей функциональных объектов по информации

Анализируется в соответствии с документацией и базовыми правилами по использованию переменных. Например: Запрещается передача информации по сети и др. Контроль связей функциональных объектов (модулей, процедур, функций) по информации проводится на основании расширенной матрицы вызова ФО, отражающей использование информационных объектов (рисунок 7.а). Составляется расширенная матрица вызова функциональных объектов, отражающая использование и передачу информационных объектов (Рисунок 8).

Рисунок 8 Граф вызова и расширенная матрица передачи информационных объектов

К основным характеристикам, по которым осуществляется оценивание безопасности использования ИО, относятся:

  • Наличие неиспользуемых ИО.

  • Наличие недекларированной передачи и обращения к ИО.

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

  • 0 – отсутствуют невызываемые ИО;

  • 1 – показывает факт наличия в ПО невызываемых ИО.

При оценивании отсутствия недекларированных в документации связей функциональных объектов по информации необходимо учитывать их количество и степень критичности. Расчет характеристики осуществляется на подобии расчета наличия заданных конструкций в исходных текстах и принимает значения в интервале [0; 100], что позволяет, при необходимости, установить предельно допустимый уровень соответствия. На практике предлагается сделать допуск в 5%, при выявление отношений по использованию информационных объектов различными функциональными объектами. При этом перечень информационных объектов, подлежащих контролю, формируется экспертом. Анализируются все участки кода, в которых осуществляется обращение к указанным в перечне информационным объектам.

Контроль наличия заданных конструкций в исходных текстах

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

(5)

где x – количество выявленных уязвимостей, а ks – осредненное значение критичности выявленных уязвимостей.

Расчет характеристики (рисунок 9) показывает дает общую зависимость от количества выявленных уязвимостей и их критичности.

Рисунок 9 График функции наличия ЗК

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

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

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

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

4 Методика применения ИНС в процессе сертификации

Полученные в ходе расчетов характеристики являются базовым вектором, на основании которого проводится дальнейшее оценивание соответствия контролируемого программного обеспечения требованиям РД НДВ. Для проведения оценивания предлагается использовать интеллектуальную систему поддержки принятия решения (ИСППР). Главными преимуществами использования интеллектуальных технологий являются возможность принятия решения в условиях сложности и разнородности исходных данных, высокая скорость и надежность при принятии решения [7, 8, 9, 10].

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

Рисунок 10 Модель применения ИНС при сертификационных испытаниях


Результатом работы ИСППР будет решение, которое представленной двумя значениями: «соответствует» и «не соответствует». Этого достаточно для определения соответствия анализируемого ПО требованиям безопасности в соответствии с РД НДВ. Не смотря на то, что в системе проведения сертификационных испытаний добавляются дополнительные подсистемы, время затрачиваемое на проведение сертификационных испытаний сокращается за полной автоматизации работы эксперта на этапах обработки данных анализа и принятия решения. Теоретически, исходя из распределения временных затрат, возможно добиться 27% сокращения времени, необходимого на проведение сертификационных испытаний. На практике был проведен ряд экспериментов, в ходе которого среднее время проведения сертификационных испытаний сократилось на 18%, при этом достоверность не ухудшилась.

Заключение

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

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



Литература:

  1. IBM X-Force Threat Analysis / Аналитический отчет корпорации IBM за 2010 г. - http://www-935.ibm.com/services/us/index.wss/offering/iss/a1026943

  2. OWASP Top 10 – 2010 rc1 / Аналитический отчет консорциума OWASP за 2010 г. – 21 с. – http://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project

  3. Secure programming with static analysis / Chess, Brian – Addison-Wesley 2007 – 588 с – 0-321-42477-8

  4. Тестирование объектно-ориентированного программного обеспечения. Практическое пособие / Макгрегор Джон, Сайкс Девид - К.: ООО "ТИД "ДС" 2002 – 432 c. – ISBN 432 966-7992-12-8

  5. Безопасность программного обеспечения компьютерных систем / Казарин О.В. – Москва, МГУЛ, 2003. – 213с. - ISBN 5-283-01667

  6. Выбор и оценивание характеристик качества программных средств. Методы и стандарты / Липаев В.В. – М.:СИНТЕГ, 2001 – 228 с. – ISBN 1-58720-163-1

  7. Интеллектуальные системы поддержки принятия решений в нештатных ситуацях с использованием информации о состоянии природной среды / Геловани В.А., Башлыков А.А., Бритков В.Б., Вязилов Е.Д. - М.: Эдиториал УРСС 2001 – 304 с – ISBN 304 5-8360-0298-3

  8. Ларичев О.И., Петровский А.В. Системы поддержки принятия решений. Современное состояние и перспективы их развития. // Итоги науки и техники. Сер. Техническая кибернетика. — Т.21. М.: ВИНИТИ, 1987, с. 131—164

  9. Основные концепции нейронных сетей / Роберт Калан – Москва, издательский дом Вильямс, 2001 – 291 с. - ISBN 5-8459-0210-Х

  10. Нейронные сети для обработки информации / Осоровский С. – Москва, Финансы и статистика, 2002 – 344 с –ISBN 5-279-02567-4

Обсуждение

Социальные комментарии Cackle