Жизненный цикл безопасности


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

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

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

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

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

Затем следует «нормальная» модель процесса с особым вниманием к проверке (проверке, тестированию и т. д.) системы. Частью этой валидации должна быть явная деятельность по валидации безопасности.