Этапы жизненного цикла разработки безопасного программного обеспечения SDLC
Опубликовано: 2021-02-26Умный подход к созданию безопасного программного обеспечения — безопасный SDLC или жизненный цикл разработки программного обеспечения. Вместо того, чтобы создавать программное обеспечение, а затем тестировать его на наличие уязвимостей, лучше создавать его с упором на безопасность.
Что такое безопасный SDLC?
В более широком смысле Secure SDLC — это процесс интеграции тестирования безопасности и других мер в существующий жизненный цикл разработки программного обеспечения. Это может включать:
- Написание требований безопасности наряду с функциональными требованиями.
- Проведение анализа архитектуры.
- Использование компонентов с открытым исходным кодом без известных уязвимостей безопасности.
- Тестирование программного обеспечения на каждом этапе и предотвращение переноса уязвимостей/угроз.
Почему безопасный SDLC важен?
Внедрение безопасных практик жизненного цикла разработки программного обеспечения важно, потому что разработчики не могут позволить себе выпускать продукт с уязвимостями безопасности. Чтобы защитить программное обеспечение и данные от угроз и атак, они должны быть разработаны таким образом, чтобы обеспечить безопасность.
Другая причина этого заключается в том, что это неэффективный подход к разработке программного обеспечения без сосредоточения внимания на безопасности, а затем на его тестировании и исправлении.
Этапы безопасного SDLC
Вся концепция безопасного SDLC вращается вокруг пресечения зла в зародыше. Этот процесс предотвращает перенос дефектов на следующую фазу жизненного цикла разработки программного обеспечения. Вот набросок этапов, связанных с Secure SDLC, и мер безопасности, реализованных на каждом из них.
Фаза требований безопасного SDLC
Наряду с функциональными требованиями к программному обеспечению требования безопасности также описаны в начале безопасного SDLC. Эти требования подробно описывают, что требуется от разработчиков, чтобы сделать программное обеспечение безопасным по своей природе.
Перед началом разработки составляется подробный список всех вариантов использования и сценариев, связанных с безопасностью. Затем это используется для создания функций безопасности и разработки сценариев тестирования безопасности.
Эти требования могут выглядеть примерно так:
- Все шлюзы и точки входа должны иметь меры аутентификации.
- Система должна реализовать аутентификацию через защищенный экран входа в систему.
- Все личные данные всегда должны быть зашифрованы.
- Для передачи конфиденциальных данных следует использовать более одного канала аутентификации.
Этап планирования безопасного SDLC
Фаза планирования — ключевой шаг в Secure SDLC. Планирование может отличаться от случая к случаю, но вот некоторые из наиболее важных вещей, о которых необходимо позаботиться:
- Должна быть сформирована опытная специальная группа безопасности, которая беспристрастно просматривает и управляет всеми мерами, связанными с безопасностью программного обеспечения. Эта команда, предпочтительно размещенная за пределами офиса управления проектом, должна состоять из офицера безопасности, архитекторов безопасности и тестировщиков безопасности. Все члены команды должны иметь четко определенные роли и обязанности.
- Любые неясности или эскалации, связанные с проблемами безопасности проекта, должны решаться ответственным за безопасность продукта. Служба безопасности должна консультировать его, чтобы убедиться, что приняты правильные решения.
- Должен быть установлен контактный пункт безопасности, чтобы гарантировать, что любые изменения, внесенные в безопасность продукта, не останутся незамеченными группой безопасности.
Этап архитектуры и проектирования SDLC
Подробная оценка рисков безопасности продукта должна быть выполнена на этапе проектирования. Это включает проверку программы с точки зрения безопасности, пока она еще не вступила в стадию кодирования. Любые риски безопасности должны быть устранены до перехода к следующему этапу. Для обеспечения безопасности все оценки должны проводиться в соответствии с отраслевыми стандартами.

Вещи, о которых необходимо позаботиться на этом этапе, включают, но не ограничиваются:
- Проверка всех функций, требований, пользовательских историй и проектных документов в соответствии с деталями, предоставленными командой проекта. В случае отсутствия какого-либо из требуемых документов, все должно быть четко обговорено участниками проектной команды.
- Любые пробелы в требованиях безопасности программы должны быть выявлены и оценены в соответствии с используемыми отраслевыми стандартами. При необходимости модели угроз могут быть созданы в соответствии с выявленными пробелами.
- Должны быть перечислены пробелы с достаточными рисками безопасности и предложены действенные меры по их устранению.
Этап разработки SDLC
Это фактическая «разработка» программного обеспечения. После того, как подготовлен безопасный макет приложения, разработчики должны написать код в соответствии с рекомендациями по безопасности. Это включает в себя:
- Использование компонентов с открытым исходным кодом без известных уязвимостей.
- Использование согласованных мер безопасности при разработке программного обеспечения.
- Холодное тестирование кода для выявления и устранения любых уязвимостей в коде.
Некоторое тестирование также проводится на этапе. Это может включать в себя такие вещи, как обеспечение того, чтобы конфиденциальные данные не передавались в виде обычного текста.
Этап реализации SDLC
После разработки программного обеспечения следующим шагом является динамический анализ кода. Это форма тестирования безопасности приложений, также известная как тестирование Open Web Application Project (OWASP).
Прежде чем решение будет реализовано в реальной жизни, проводится анализ уязвимостей и тестирование на проникновение. Версии программного обеспечения, на которых выполняется эта проверка, называются тестовыми сборками. Основные моменты, которые следует отметить по этому поводу, включают:
- Такие инструменты, как HP WebInspect, ZAP, Burp Suite и SOAP, используются для проверки уязвимостей программного обеспечения в различных базах данных уязвимостей.
- Весь этот этап представляет собой смесь автоматизации и ручного тестирования.
- Этот процесс выполняется в независимой среде, не связанной со средой разработки, чтобы обеспечить сценарии тестирования, близкие к реальным.
- Любая уязвимость, обнаруженная на этом этапе, устраняется перед выпуском программного обеспечения.
- На этом этапе выявляются распространенные и типичные угрозы и предпринимаются шаги для их предотвращения.
Заключение
Поскольку наша зависимость от программного обеспечения продолжает расти, важно сделать его безопасным для пользователей. Чтобы убедиться, что программное обеспечение и приложения соответствуют требованиям безопасности, применяются методы безопасного SDLC. Конечной целью всегда является создание неуязвимых программных решений.
Процесс безопасного SDLC состоит из пяти этапов, начиная от сбора требований и заканчивая тестированием перед развертыванием. Основное внимание уделяется смягчению угроз и уязвимостей на каждом этапе, чтобы они не переносились на следующий этап.
