В классическом жизненном цикле программного обеспечения (SDLC) не предусмотрен анализ безопасности разрабатываемого продукта. В результате о безопасности начинают задумываться только на этапе тестирования или уже после релиза. Это значительно увеличивает стоимость обнаружения и устранения уязвимостей. Для исправления данного упущения была разработана расширенная версия SDLC — SSDLC.
Суть SSDLC заключается в дополнении этапов жизненного цикла ПО процессами, направленными на выявление и устранение уязвимостей. Благодаря этому проблемы безопасности могут быть обнаружены и решены задолго до развёртывания ПО. Далее приведено краткое описание этих модификаций для соответствующих этапов.
Помимо основных требований к разработке ПО, на данном этапе также собираются требования к безопасности путём анализа потенциальных угроз. Примерами таких требований могут служить:
В дополнение ко всему прочему, на данном этапе выполняется анализ рисков угроз безопасности и поверхности атак, составляется модель угроз на основе требований к безопасности, собранных на предыдущем этапе.
Проектирование системы выполняется с учётом модели угроз, составленной на предыдущем этапе.
На этом этапе разработчики уделяют значительное внимание качеству кода с точки зрения безопасности. Для этого они:
Примечание. Статический анализатор кода PVS-Studio способен находить в коде не только обычные ошибки, но и уязвимости безопасности, выполняя роль как SCA-решения, так и SAST-решения.
На данном этапе внедряются дополнительные виды тестирования, такие как:
Развёртывание
Непосредственно перед развёртыванием выполняется оценка уровня безопасности и аудит безопасности ПО.
Даже если ответственно подходить к безопасности на предыдущих этапах, часть уязвимостей всё равно может ускользнуть от вашего внимания и попасть в релиз. Кроме того, уже после выпуска ранее неизвестные уязвимости могут обнаружиться не только в вашем коде, но и в коде зависимостей вашего ПО. Такие уязвимости называются "уязвимостями нулевого дня". Поэтому необходимо продолжать отслеживать и оперативно устранять новые уязвимости на протяжении всего периода поддержки ПО.
0