Введение
Жизненный цикл безопасности — это последовательность этапов, начиная с определения и спецификации требований безопасности, охватывающая проектирование и разработку функций безопасности в системе, критически важной для безопасности, и заканчивающаяся выводом этой системы из эксплуатации. В данной статье в качестве примера рассматривается программное обеспечение, однако жизненный цикл безопасности применим и к другим областям, например, к строительству зданий. В разработке программного обеспечения используется процесс (жизненный цикл программного обеспечения), который состоит из нескольких фаз, обычно включающих инициацию, анализ, проектирование, программирование, тестирование и внедрение. Основная цель – создание программного обеспечения. Некоторые программные продукты связаны с вопросами безопасности, а другие – нет. Например, система подачи заявок на отпуск не имеет требований безопасности. Однако, если программное обеспечение, используемое для управления компонентами самолета, выйдет из строя, это вызовет серьезные опасения. Поэтому для таких систем возникает вопрос о том, как эффективно управлять безопасностью на протяжении всего жизненного цикла программного обеспечения.
Что такое жизненный цикл безопасности?
Основная концепция обеспечения безопасности программного обеспечения, то есть внедрения функций безопасности в программное обеспечение, заключается в том, что характеристики и поведение программного обеспечения и системы с точки зрения безопасности должны быть определены и заложены при проектировании системы. Задача любого разработчика систем состоит в снижении риска до приемлемого уровня, при этом допустимый уровень риска будет различаться в зависимости от области применения. Если программное приложение предназначено для использования в системе, связанной с безопасностью, это необходимо учитывать на всех этапах жизненного цикла разработки программного обеспечения. Процесс определения требований к безопасности и обеспечения этих требований на протяжении этапов разработки и эксплуатации иногда называют «жизненным циклом безопасности».
Фазы жизненного цикла безопасности
Первые этапы жизненного цикла включают в себя оценку потенциальных системных опасностей и определение связанных с ними рисков. Одним из таких методов является анализ дерева отказов. Далее следует разработка спецификации требований безопасности, которая охватывает идентификацию функций, критичных для безопасности (спецификация функциональных требований), и уровня целостности безопасности для каждой из этих функций. Спецификация может описывать, каким образом программное обеспечение должно функционировать для минимизации риска, или требовать, чтобы возникновение опасности было исключено. После этого применяется стандартная модель процесса, с особым вниманием к валидации (инспекции, тестированию и т.п.) системы. Важной частью этой валидации должна быть отдельная процедура валидации безопасности.