Мы в облачном провайдере T1 Cloud уделяем серьезное внимание защищенности клиентских сервисов, поэтому решили подготовить серию материалов о разработке приложений в облаке. Начнем с вводных и расскажем, что собой представляет процесс безопасной разработки программного обеспечения (Secure SDLC) и на какие нюансы стоит обратить внимание в этом контексте.
Краткий ликбез
Прежде чем перейти к теме Secure SDLC, немного поговорим о том, что вообще следует понимать под термином Software Development Life Cycle. Это — фреймворк, который описывает жизненный цикл программного обеспечения. Его задача — помочь бизнесу выстроить процессы разработки качественных приложений. Соответствующие рекомендации описаны в международном стандарте ISO/IEC 12207:2008 и российском ИСО/МЭК 12207–2010.
Сам по себе фреймворк состоит из привычного набора шагов — это проектирование, развертка, тестирование, поддержка и другие. Однако существуют различные модели, диктующие порядок прохождения по этим этапам. Пожалуй, наиболее известная из них — каскадная (водопадная) модель, когда каждый этап стартует по завершении предыдущего. В таком контексте стоимость ошибки в начале проекта достаточно высока, поэтому модель применяют на компактных и типизированных задачах с четким техзаданием (например, в космической промышленности).
Противоположность водопадной модели — модель итерационная. В этом случае разработка проекта начинается с MVP, который сразу выпускают на рынок. Далее, вносят изменения на основе фидбека, и процесс повторяется. Итерационная модель подходит для больших задач с неопределёнными требованиями. К ней прибегают стартапы и команды, разрабатывающие инновационные проекты, способные изменить привычное положение вещей в том или ином секторе.
Модификацией итерационной модели является спиральная модель. Движение по этапам разработки идет по спирали, но с каждым новым витком процессы усложняются и расширяются, поэтому модель подходит для рисковых исследовательских инициатив. Разумеется, существуют и другие подходы к разработке — по этой теме написано большое количество публикаций и литературы, её обсуждают на профильных площадках вроде Хабра. Но последнее время в контексте построения жизненного цикла приложений все чаще начинают уделять внимание информационной безопасности и комплаенсу.
От SDLC к Secure SDLC
За последние пять лет количество уязвимостей в программном обеспечении выросло на 30%. Существенная часть проблем возникает в силу низкой эффективности процесса разработки, поэтому понятен повышенный интерес к циклу разработки защищенных приложений — Secure SDLC.
Безопасные процессы не только сокращают риски взломов, но и буквально экономят деньги. Устранение бага на этапе реализации обходится в шесть раз дороже уязвимости, обнаруженной во время проектирования. По другим оценкам, затраты на устранение ошибок после релиза возрастают в тридцать раз.
Существует несколько моделей Secure SDLC, но, пожалуй, одной из наиболее известных является MS SDL. Основы концепции еще двадцать лет назад сформулировал Билл Гейтс, но с тех пор её скорректировали с учетом новых подходов и технологий. В частности, проектирование ПО в рамках MS SDL подразумевает моделирование угроз на уровне компонентов, динамический анализ кода и фаззинг-тестирование. Все члены команды разработки проходят тренинги по ИБ и изучают лучшие практики в этой области.
Согласно отчетам, инициатива Билла Гейтса повысила конкурентоспособность корпорации в плане информационной безопасности — в период с 2004 по 2010 год число уязвимостей в её приложениях сократилось почти на три порядка, по сравнению с другими организациями. Сразу после этого в компании решили выпустить наработки под лицензией Creative Commons, а модель MS SDL стала своеобразным каноном, от которого отталкиваются другие подходы Secure SDLC.
Среди них можно выделить OpenSAMM. С её помощью можно оценить текущий уровень зрелости цикла разработки ПО и наметить изменения в контексте безопасности. Согласно концепции, процесс разработки приложений включает двенадцать компонентов — например, код-ревью и тестирование безопасности, а также повышение грамотности и уровня кибергигиены сотрудников. Каждый компонент оценивают по шкале от нуля до трех, где цифра три подразумевает полное овладение практиками ИБ в этом направлении.
Еще одна модель для построения Secure SDLC называется BSIMM. Она представляет собой тематический справочник с примерами лучших практик и механизмов. Бизнес может сопоставить свои процессы с процессами сотен компаний и на основании этого скорректировать цели и задачи. Всего в состав фреймворка входят больше 120 различных методов, которые покрывают двенадцать этапов жизненного цикла разработки и развертки приложений.
Какие есть особенности
Каждая из представленных методологий описывает только общие шаги, которые стоит предпринять для построения защищенного цикла разработки приложений. Однако в связи с этим есть тонкости — например, классическая методология MS DLC может плохо проявлять себя в agile-средах, так как накладывает строгие дедлайны на процессы внутри компании. Также очевидно, что выбор конкретного инструментария будет зависеть от потребностей организации. В список входят сервисы DevSecOps, решения для проведения пентестов, антивирусы, а также файрволы вроде Anti-DDoS + WAF.
Внедрение такого инструментария с нуля — это довольно дорогая затея. По оценкам экспертов, переход только на первый уровень в координатах OpenSAMM будет стоить в районе $90 тыс. И это еще консервативная оценка, так как подразумевает, что компания проводит код-ревью не чаще 5–9 дней в год. Этого может быть достаточно для небольшого проекта, но в рамках корпорации неприемлемо, плюс — увеличит стоимость поддержки Secure SDLC.
В целом можно самостоятельно внедрить инструменты и следовать рекомендациям безопасной разработки приложений — документация по этому вопросу исчерпывающая, а недостающие факты можно узнать у участников сообщества. Но это все равно потребует специальных знаний и компетенций в области AppSec. Помочь с внедрением Secure SDLC и сэкономить на этом деньги способны сервис-провайдеры. Облако предложит системы статического (SAST) и динамического анализа (DAST) кода, защиту от DDoS-атак веб-атак, а также обеспечит соответствие законодательству в сфере ИБ.
В итоге облачные решения дают возможность сфокусироваться на бизнес-задачах, повысить защищенность приложений и реализовать принцип безопасности Zero Trust в отношении разработчиков. Подробнее о том, какие еще вопросы может взять на себя провайдер, расскажем в следующем материале — подписывайтесь на наш блог, чтобы не пропустить.
P.S. Пока вы ждете — пара материалов для дополнительного чтения: