Главная / О компании / Новости / Как включить безопасность в жизненный цикл разработки ПО (SDLC)

Как включить безопасность в жизненный цикл разработки ПО (SDLC)

« Назад

Как включить безопасность в жизненный цикл разработки ПО (SDLC)  17.01.2020 10:57

Постоянная эволюция угроз в экосистеме разработки ПО требует от нас внимания к средствам контроля безопасности,  которые мы используем для защиты наших данных от негодяев. Вот здесь на сцену и выходит безопасный жизненный цикл разработки ПО (SDLC). Компании должны убедить клиентов, что наряду с инновационными продуктами, опережающими своих конкурентов, они обеспечивают и полноценную безопасность жизненного цикла разработки ПО на каждом шагу. А для обеспечения защиты необходимо принять несколько важных мер, которые часто упускаются из виду, и использовать для работы подходящие инструменты.

Угрозы для безопасности приложений

В последние годы усилились атаки на уровне приложений. По оценке OWASP почти треть всех веб-приложений содержит серьезные уязвимости. В отчете Micro Focus 2019 Application Security Risk Report  указано, что практически все веб-приложения имеют проблемы с безопасностью. Правонарушители пользуются этой ситуацией, с легкостью получают доступ к сети компании, где сеют хаос.

Несмотря на негативные последствия, многие компании недостаточно активно внедряют у себя стратегию безопасного жизненного цикла разработки ПО.

Как мы можем сделать разработку ПО безопасной? 

Один из базовых принципов безопасного жизненного цикла разработки ПО – «shift left» (сдвиг влево), то есть обнаружение проблем на наиболее ранней стадии.

Этот принцип предполагает использование соответствующих практик и методологий на всем жизненном цикле разработки ПО, начиная с самых ранних стадий. Такой сдвиг поможет впоследствии сэкономить много времени и денег, так как цена устранения уязвимости после релиза намного выше, чем на этапе его создания.

itemeditorimage_5e04b4aaed3a4

Включаем безопасность на всех стадиях разработки

Каждая стадия разработки ПО требует собственных правил и инструментов безопасности. Автоматическое обнаружение, приоритизация и инструменты исправления могут быть использованы в интегрированных средах разработки, репозиториях кода, на серверах сборки и в инструментах отслеживания ошибок на всех стадиях разработки. Это позволяет быстрее выявлять серьезные проблемы с безопасностью.

№ 1 Планирование: 

На первой стадии, во время планирования, разработчики и специалисты по кибербезопасности должны продумать, какие риски обычно встречаются во время разработки, и подготовиться к ним.

№2 Требования и анализ

На второй стадии разработки необходимо определить требования, провести анализ и принять решения об используемых технологиях, средах разработки и языках. Именно на этой стадии эксперты должны проанализировать, какие уязвимости могут угрожать выбранным инструментам. На основе этого анализа будут приниматься решения на стадиях проектирования и разработки.

№3 Архитектура и дизайн

На стадии разработки архитектуры и дизайна команды должны следовать руководствам по архитектуре и дизайну, чтобы реагировать на риски, которые были идентифицированы и проанализированы на предыдущих стадиях. Если на уязвимости реагировать на стадии дизайна, то можно успешно избежать ущерба на стадии разработки. Такие процедуры как моделирование угроз и анализ рисков архитектуры способны сделать процесс разработки намного проще и безопаснее.

№4 Разработка 

Во время разработки команды должны следовать стандартам безопасного кодирования. При проведении обычного анализа кода, который используется для проверки соответствия проекта заданным возможностям и функционалу, разработчики также должны обращать внимание на наличие уязвимостей безопасности в коде.

№5 Тестирование

Стадия тестирования должна включать проверку безопасности приложения, в том числе с использованием автоматизированных инструментов DevSecOps.

Важно помнить, что подход DevOps предполагает непрерывное тестирование на всех стадиях жизненного цикла разработки ПО. Более раннее и частое тестирование является наилучшим способом гарантировать безопасность продукта с самого начала. Это означает, что команды, во-первых, должны начать тестирование на самых ранних стадиях разработки и во-вторых, не прекращать тестирование на безопасность на стадиях развертывания и внедрения.

№6 Обслуживание

При тестировании невозможно учесть все особенности реальной эксплуатации. Будьте готовы к тому, что придется решать проблемы с ошибками и рисками, которые раньше не возникали.

Не следует забывать о безопасности после развертывания и внедрения. Продукты должны постоянно обновляться, чтобы обеспечить их защиту от новых уязвимостей и совместимость с новыми инструментами, которые вы можете внедрить в будущем.

Отслеживайте безопасность Open Source

Есть еще один важный момент, который необходимо иметь в виду при создании безопасного жизненного цикла разработки ПО – управление open source компонентами с учетом особенностей обнаружения в них уязвимостей. В сегодняшних программных продуктах open source код составляет приблизительно 60%-80%, поэтому важно обращать внимание на управление безопасностью открытого кода во время жизненного цикла разработки. Инструменты анализа композиции программного кода (Software Composition Analysis (SCA)) – это технологии, которые специально предназначены для отслеживания использования открытого кода. Эти инструменты в реальном времени предупреждают разработчиков о рисках в использованных компонентах с открытым кодом, предоставляют приоритизацию проблем и практические способы исправления.

«Сдвиг влево» для безопасного жизненного цикла разработки

Подход DevSecOps предполагает, что команды используют правильные инструменты и практики безопасности, начиная с самых ранних стадий жизненного цикла разработки ПО. Безопасный жизненный цикл разработки ПО помогает разработать для клиентов безопасные продукты и услуги в установленные сжатые сроки.

Так как число атак на уровне приложения растет, а вместе с ним и потребность в более безопасных приложениях для усиления защиты клиентов, то безопасность жизненного цикла разработки ПО становится основным приоритетом. От нас зависит, сделаем ли мы то, что нужно, чтобы получить полную прозрачность и полный контроль над всем процессом разработки.

Источник ►