Что такое безопасный SDLC
4 января 2023 г.Прежде чем мы начнем тему безопасного SDLC, давайте немного поговорим о том, как следует понимать термин "жизненный цикл разработки программного обеспечения" в целом. Это структура, описывающая жизненный цикл программного обеспечения. Его цель — помочь предприятиям создать качественные процессы разработки приложений.
Сам фреймворк состоит из обычного набора шагов — проектирование, развертывание, тестирование, поддержка и другие. Однако различные модели диктуют порядок прохождения этих шагов. Возможно, самой известной из них является модель водопада, в которой каждый шаг начинается после завершения предыдущего. В связи с этим цена ошибки в начале проекта довольно высока, поэтому модель используется на компактных и типизированных задачах с четким техническим заданием.
Противоположностью водопадной модели является итеративная модель. В этом случае разработка проекта начинается с MVP, который сразу же выпускается на рынок. Затем вносятся изменения на основе обратной связи, и процесс повторяется. Итерационная модель подходит для больших задач с неопределенными требованиями. Его используют стартапы и команды, разрабатывающие инновационные проекты, способные изменить привычное положение дел в той или иной сфере.
Модификацией итеративной модели является спиральная модель. Шаги разработки идут по спирали, но с каждым новым витком процессы усложняются и расширяются, поэтому модель подходит для рискованных исследовательских инициатив.
Конечно, есть и другие подходы к разработке — на эту тему написано много публикаций и литературы. Но в последнее время в контексте построения жизненного цикла приложения все больше внимания уделяется информационной безопасности и соответствию требованиям.
От SDLC к безопасному SDLC
Согласно статистике strong> от Национального института стандартов и технологий, количество уязвимостей в программном обеспечении за последние пять лет увеличилось на 50%. Значительная часть проблем возникает из-за низкой эффективности процесса разработки, поэтому повышенный интерес к циклу разработки Secure SDLC понятен.
Безопасные процессы не только снижают риск взлома, но и буквально экономят деньги. Исправление ошибки на этапе реализации стоит в несколько раз больше, чем уязвимость, обнаруженная при проектировании. По многим оценкам, стоимость исправления ошибок после выпуска продукта возрастает более чем в тридцать раз.
Существует несколько моделей Secure SDLC, но, возможно, одной из самых известных является MS SDL. Основы концепции были сформулированы двадцать лет назад Биллом Гейтсом, но с тех пор она была скорректирована с учетом новых подходов и технологий. В частности, разработка программного обеспечения MS SDL подразумевает моделирование угроз на уровне компонентов, динамический анализ кода и поэтапное тестирование. Все члены команды разработчиков проходят обучение по информационной безопасности и изучают передовой опыт в этой области.
По имеющимся данным, инициатива Билла Гейтса повысила конкурентоспособность корпорации с точки зрения информационной безопасности — с 2004 по 2010 год количество уязвимостей в ее приложениях уменьшилось почти на три порядка по сравнению с другими организациями. Сразу после этого компания решила выпустить свою работу под лицензией Creative Commons, и модель MS SDL стала своего рода каноном, от которого произошли другие подходы Secure SDLC.
Одним из них является OpenSAMM. Его можно использовать для оценки текущего уровня зрелости цикла разработки программного обеспечения и описания изменений в контексте безопасности. Согласно концепции, процесс разработки приложения включает в себя двенадцать компонентов, таких как проверка кода и тестирование безопасности, а также грамотность сотрудников и кибергигиена. Каждый компонент оценивается по шкале от нуля до трех, где число три означает полное владение методами информационной безопасности в этой области.
Другая модель построения безопасного SDLC называется BSIMM. Это учебное пособие с примерами передового опыта и механизмов. Предприятия могут сравнивать свои процессы с процессами сотен компаний и корректировать цели и задачи на основе этого. В целом платформа включает более 120 различных методов, охватывающих двенадцать этапов жизненного цикла разработки и развертывания приложения.
Особенности этих моделей
Каждая из представленных методологий описывает только общие шаги, которые стоит предпринять для создания безопасного цикла разработки приложений. Однако на этот счет есть свои тонкости — например, классическая методология MS DLC может плохо работать в agile-средах, потому что накладывает жесткие сроки на процессы внутри компании. Также ясно, что выбор того или иного инструментария будет зависеть от потребностей организации. В список входят службы DevSecOps, решения для пентеста, антивирусы и брандмауэры, такие как Anti-DoS + WAF.
Внедрение такого инструментария с нуля — довольно затратное мероприятие. По оценкам специалистов, переход только на первый уровень в координатах OpenSAMM будет стоить в районе $90 000. И это все же консервативная оценка, так как подразумевает, что компания проводит code review не чаще 5-9 дней в году. Этого может быть достаточно для небольшого проекта, но в рамках корпорации неприемлемо, плюс — увеличится стоимость поддержки Secure SDLC.
В общем, можно самостоятельно внедрить инструменты и следовать рекомендациям по безопасной разработке приложений — документация по этому вопросу исчерпывающая, а недостающие факты можно узнать у участников сообщества. Но для этого все равно потребуются специальные знания и опыт в области безопасности приложений.
SSDLC должен заменить SDLC, потому что безопасность данных является одним из основных требований компаний и правил. В этом случае нет необходимости нанимать отдельную команду сотрудников, на рынке информационной безопасности есть компании, которые предоставляют услуги в том числе по добавлению слоя безопасности в жизненный цикл ПО.
Поставщики услуг могут помочь внедрить Secure SDLC и сэкономить на этом деньги. Облако будет предлагать системы статического (SAST) и динамического анализа кода (DAST), защиту от веб-атак DDoS и соблюдение правил информационной безопасности.
В результате облачные решения дают возможность сосредоточиться на бизнес-задачах, повысить безопасность приложений и реализовать принцип безопасности Zero Trust для разработчиков.
Оригинал