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

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

CC BY
744
164
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
Информационная безопасность / методы разработки безопасного программного обеспечения / характеристики качества программного обеспечения / оценка качества программного обеспечения / оптимальный выбор / Information security / methods of developing secure software / the characteristics of software quality / quality assessment software / the optimal selection

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Зефиров Сергей Львович, Колобанов Александр Юрьевич

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

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

Considered methods for evaluating software quality. Describes the process of selecting optimal methods for developing secure software in terms of ensuring effective protection, the consistency of the methods development and quality of software.

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

УДК 004.056

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

Зефиров Сергей Львович, Колобанов Александр Юрьевич.

Zefirov Sergei Lvovich, Kolobanov Alexandr Yurevich.

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

Considered methods for evaluating software quality. Describes the process of selecting optimal methods for developing secure software in terms of ensuring effective protection, the consistency of the methods development and quality of software.

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

Information security; methods of developing secure software; the characteristics of software quality; quality assessment software; the optimal selection.

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

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

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

1 Необходимые условия для применения процесса выбора оптимальных методов разработки.

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

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

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

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

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

На первом этапе производится анализ угроз и оценка рисков для разрабатываемого ПО. На основе полученных оценок производится ранжирование угроз ИБ и выделение множества U актуальных угроз u. Далее, путем экспертного оценивания определяется необходимый минимум эффективности защиты, обеспечиваемый методом разработки, от каждой из актуальных угроз безопасности. Таким образом, каждой из актуальных угроз ИБ в рамках процесса разработки, ставится в соответствие требуемая минимальная эффективность защиты, которую должен обеспечивать какой-либо из применяемых методов безопасной разработки. На втором этапе для каждой из угроз uk из множества исследуемых методов разработки M формируется множество Nk методов n разработки, противостоящих данной угрозе,

n є Nk,

где k - количество актуальных угроз для объекта защиты (ОЗ).

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

анализируемых методов e разработки защищенного ПО е:

е є E, E = N1 n N2 n ... n Nk,

где Nk - множество методов разработки противостоящих угрозе uk.

Для каждого из методов о формируется множество Ye угроз у

У є Ye,

которой противостоит данный метод е.

Для каждого метода из множества оцениваемых методов разработки e є E производится оценка эффективности по противодействию подмножеству угроз і є I, определяемому пересечением множества угроз Ye , которым противостоит данный метод и множества актуальных угроз U:

I = Ye n U

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

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

2 Выбор оптимальных методов разработки безопасного ПО

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

Функциональная модель процесса выбора оптимальных методов разработки изображена на рисунке 1.

Рисунок 1. Функциональная модель процесса выбора оптимальных методов

разработки.

Процесс выбора оптимальных методов разработки состоит из трех процессов:

1) Процесс формирования наборов применимых методов безопасной разработки;

2) Процесс оценки качества разрабатываемого ПО;

3) Процесс выбора оптимального набора методов разработки.

2.1 Процесс формирования наборов применимых методов безопасной разработки

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

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

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

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

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

Выбор методов разработки, которые могут быть использованы для конкретного проекта осуществляется руководителями проекта и ведущими разработчиками. Так же могут привлекаться эксперты в области ИБ и разработки ПО.

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

Далее, для того, чтобы выяснить, относится ли метод разработки о из множества O анализируемых методов разработки к множеству U потенциальных методов разработки u (u є U) необходимо выяснить удовлетворяет ли данный метод двум условиям.

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

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

Для выбора из множества P применимых методов тех, которые удовлетворяют требованиям безопасности используется следующее условие. Метод безопасной разработки должен хотя бы для одной из актуальных угроз ИБ обеспечивать минимальный требуемый уровень эффективности защиты. Все методы из множества P, удовлетворяющие данному условию, включаются в множество T потенциальных методов разработки t, ІєТ.

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

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

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

• все методы разработки из одного набора в совокупности должны противостоять актуальным угрозам ИБ с эффективностью не менее заданной. Другими словами, не должно быть ни одной актуальной угрозы ИБ, для противодействия которой в наборе не было бы метода разработки, обеспечивающего защиту от данной угрозы с эффективностью не менее, чем минимальная требуемая;

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

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

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

2.2 Процесс оценки качества разрабатываемого ПО

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

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

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

Существует несколько определений качества, которые в целом совместимы друг с другом.

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

- определение ISO: качество - это полнота свойств и характеристик продукта, процесса или услуги, которые обеспечивают способность удовлетворять заявленным или подразумеваемым потребностям [3];

- определение IEEE: Качество программного обеспечения - это степень, в которой оно обладает требуемой комбинацией свойств [4].

Согласно стандартам ISO серии 9000, посвященных управлению качеством, общее качество программной системы включает в себя на верхнем уровне ряд составляющих, которые должны быть приняты во внимание при управлении и оценке качества ПО [5].

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

Оценка качества ПО производится по одной из существующих методологий. К ним относятся:

• оценка качества ПО с использованием международных стандартов ISO[6,7];

• оценка качества ПО с использованием ГОСТ 28195-89[8];

• методология анализа качества согласно стандарту IEEE 1061 [4]. Для оценки качества ПО в процессе выбора оптимальных методов

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

Функциональная модель процесса оценки качества ПО изображена на рисунке 3.

Рисунок 3. Функциональная модель процесса оценки качества ПО.

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

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

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

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

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

Результатом процесса являются оценки качества ПО в зависимости от используемого набора методов разработки.

2.3 Процесс выбора оптимального набора методов разработки

После завершения процесса оценки качества ПО выполняется процесс выбора набора методов разработки. Целью этого процесса является выбор оптимального набора из множества наборов методов разработки. Функциональная модель процесса выбора оптимального набора методов разработки приведена на рисунке 4.

Рисунок 4. Функциональная модель процесса выбора оптимального набора методов разработки.

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

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

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

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

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

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

Список использованных источников

1 Лаврищева Е.М., Петрухин В.А. Методы и средства инженерии программного обеспечения. - М.: Московский физико-технический институт (государственный университет), 2006. - 304 с.

2 G.E. McGraw. DIMACS Workshop on Software Security, IEEE Security & Privacy, vol. 1, no. 2, 2003.

3 ISO 8402:1994 Quality management and quality assurance - Vocabulary

4 1061-1998 IEEE Standard for Software Quality Metrics Methodology

5 Stylianou A.C., Kumar R. L., An Integrative Framework for IS Quality Management, - COMMUNICATIONS OF THE ACM, Sept. 2000/V l. 43, N 9

6 ISO/IEC 9126:1991. Information technology - Software product evaluation - Quality characteristics and guidelines for their use.

7 ISO/IEC, ISO/IEC 25000: Software Engineering — Software Product Quality Requirements and Evaluation (SQuaRE) — Guide to SQuaRE. Geneva: International Organization for Standardization, 2005.

8 ГОСТ 28195 - 89. Оценка качества программных средств. Общие положения.

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