

В данной статье представлен подход к созданию контура разработки безопасного программного обеспечения, который применяется для создания инфраструктуры по разработке программного обеспечения, предусматривающей предотвращение появления проблем безопасности информации, а также их эффективное обнаружение и устранение. На текущий момент разработка безопасного программного обеспечения в Российской Федерации осуществляется в соответствии с требованиями национального стандарта ГОСТ Р 56939-2024.
Введение
В настоящее время разработка безопасного ПО становится всё более актуальной задачей. Это связано с тем, что всё больше разработчиков обращают внимание не только на оптимизацию и функциональные возможности продуктов, но и на их безопасность.
Эта проблема широко освещается в различных источниках. Например, в источниках подробно расписываются конкретные методики внедрения процессов разработки безопасного ПО. В работах специалистов отмечается необходимость минимизации различных проблем безопасности, которые возникают на этапе разработки.
Жизненный цикл разработки программного обеспечения (SDLC) и безопасный жизненный цикл разработки ПО (SSDLC)
SDLC (Software Development Life Cycle) — это процесс разработки программного обеспечения, который включает в себя последовательность этапов, начиная от первоначального предъявления требований и заканчивая поддержкой и обслуживанием готового продукта.
Цикл SDLC состоит из следующих этапов:
Анализ требований подразумевает процесс выявления, определения и документирования требований к разрабатываемому продукту.
Планирование подразумевает процесс составления плана разработки безопасного программного обеспечения (далее — РБПО), определения требуемых ресурсов для реализации плана РБПО и подготовки бюджета.
Проектирование и дизайн подразумевает процесс продумывания всей архитектуры продукта в детализированном виде, а также анализ рисков и угроз.
Разработка программного обеспечения подразумевает процесс написания исходного кода, создания системы на основе требований и архитектуры, а также проверки исходного кода на предмет безопасности.
Тестирование подразумевает процесс проверки продукта на предмет несоответствий заявленным требованиям.
Развёртывание подразумевает процесс установки и настройки программного обеспечения, создание баз данных, конфигурирование сетевых настроек и других действий, необходимых для работы ПО.
Эксплуатация подразумевает процесс технической поддержки ПО, а также процесс обновления ПО в случае внесения изменений или нахождения проблем безопасности информации.
Как можно заметить, в данном цикле основное внимание уделяется процессу разработки, который является ключевой задачей. Вопросы информационной безопасности не рассматриваются отдельно. Следовательно, для разработки безопасного программного обеспечения необходимо доработать этот цикл, интегрировав в него аспекты, связанные с безопасностью. Таким образом, цикл SSDLC (Secure Software Development Life Cycle) представляет собой модификацию цикла SDLC, в которую включены специфические методы, направленные на обеспечение безопасности. Более подробно данные методы, а также сопоставление с текущими требованиями национального стандарта ГОСТ Р 56939-2024 указаны в таблице ниже (таблица 1).
Таблица 1. Дополнительные меры в цикле SSDLC
Стоит принять во внимание, что некоторые из приведённых процессов невозможно отнести к конкретному этапу, поскольку они являются итеративными и могут пересекаться сразу с несколькими этапами жизненного цикла. Это связано с тем, что разработка программного обеспечения является цикличным процессом, где результаты одного этапа могут быть использованы для пересмотра предыдущих этапов.
Так, процесс «обучение сотрудников» по вопросам безопасности должен быть непрерывным процессом, охватывающим все стадии разработки ПО, который встраивается в корпоративную культуру. Это требует регулярных обновлений и пересмотров программ обучения, что выходит за рамки определённого этапа жизненного цикла. Поскольку первичное создание обучающих мероприятий осуществляется на ранних стадиях жизненного цикла ПО, данное требование было отнесено к этапу планирования.
Аналогично процесс «управление недостатками и запросами на изменение программного обеспечения» может возникать на разных этапах жизненного цикла ПО. Он включает в себя выявление, анализ и обработку недостатков, которые могут быть обнаружены как в процессе разработки (тестировщиками, разработчиками), так и в процессе эксплуатации (конечными пользователями).
Инструменты, используемые в процессе разработки безопасного ПО
Выполнение требований к разработке безопасного ПО подразумевает под собой комплекс организационных и технических мер. Помимо регламентов, которые необходимы для каждой из внедряемых мер, контур разработки подразумевает внедрение в инфраструктуру разработки инструментов, позволяющих эффективно бороться с различными проблемами безопасности, возникающих по вине разработчика на этапе создания продукта. В таблице ниже (таблица 2) представлен перечень инструментов, требуемых для успешной реализации процессов РБПО.
Таблица 2. Используемые инструменты в цикле SSDLC
Состав команд, необходимых на каждом этапе жизненного цикла программного обеспечения
Для успешной реализации процессов разработки безопасного программного обеспечения в соответствии с ГОСТ Р 56939-2024 организациям необходимо сформировать команду, включающую различные роли, способные эффективно выполнять свои функции на каждом этапе жизненного цикла программного обеспечения. В процессе построения конвейера безопасной разработки крайне важно соблюдать принцип разделения полномочий и чётко определить для каждого члена команды конкретные элементы конфигурации, находящиеся в их зоне ответственности. Количество специалистов и их роли, представленные в таблице далее по тексту, являются усреднёнными значениями для компании и могут варьироваться в зависимости от специфики организации, масштаба разрабатываемого продукта и прочих факторов (таблица 3).
Таблица 3. Кадровый подбор для реализации требований ГОСТ Р 56939-2024
Вывод
В статье рассматриваются особенности построения контура разработки безопасного программного обеспечения, который включает в себя интеграцию процессов, направленных на обеспечение безопасности, внедрение инструментария, применяемого в процессе разработки, а также вовлечение в выстроенные процессы команд, необходимых на каждом этапе жизненного цикла программного обеспечения. Подобный системный подход к организации всех указанных элементов является ключевым фактором для достижения высокого уровня безопасности программного обеспечения в организации.
Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных
Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных