DevSecOps: акцент на безопасность вашего цифрового продукта

Привет, меня зовут Андрей Коненко, я девопс-инженер RDN Group

Наша команда специализируется на разработке сложных и высоконагруженных решений для промышленных компаний: личных кабинетах, торговых площадках, порталах и интеграционных проектах. RDN Group один из 30 партнеров 1С-Битрикс с расширенной компетенцией крупные корпоративные внедрения Enterprise. 

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

DevSecOps — это относительно новая практика, тесно связанная с DevOps, но с акцентом на безопасность цифрового продукта. DevOps, как известно, направлен на оптимизацию процессов разработки, эксплуатацию и сопровождение программного обеспечения, снижение времени решения инцидентов и упрощение выпуска релизов, что позволяет компаниям сократить Time to market при запуске новых продуктов или нового функционала в уже имеющемся продукте. 

Представьте себе, что методология DevOps — это оркестр, где каждый инструмент играет свою роль: разработчики пишут код, тестировщики проверяют его на ошибки, а DevOps-инженеры обеспечивают бесперебойную работу всей системы. В DevSecOps к этому оркестру добавляется дирижёр, который следит за тем, чтобы все ноты были безопасными.

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

Почему же безопасность цифрового продукта так важна? 

Исследование, проведенное Positive Technologies, выявило тревожную тенденцию: количество инцидентов в сфере кибербезопасности выросло на 15% по сравнению с третьим кварталом 2023 года, хотя и немного снизилось на 4% по сравнению с предыдущим периодом. Вредоносное ПО продолжает оставаться главным инструментом злоумышленников, при помощи которого осуществляется порядка 65% успешных атак на организации и 72% — на частных лиц. 

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

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

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

Польза для бизнеса

Снижение затрат 

Внедрение практики DevOps Security (DevSecOps) приносит ощутимые преимущества для бизнеса. Она позволяет на этапе сборки продукта, когда он еще не выпущен в продакшен, тщательно проверить его на наличие распространенных уязвимостей. Это позволяет значительно повысить уровень безопасности и защитить данные, с которыми работает компания, а также сэкономить средства и устранить проблему по мере ее возникновения, а не когда проект будет сдан. 

Безопасность данных 

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

Подходы DevSecOps помогают добиться гарантий, что типичные операции DevOps, такие как CI/CD, поддерживают высокий уровень безопасности на каждом этапе жизненного цикла разработки системы. Это достигается за счет внедрения дополнительных инструментов, практик и мероприятий, которые помогают своевременно выявлять и устранять уязвимости.

Своевременная оценка рисков и ускоренный запуск цифрового продукта 

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

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

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

Методики DevSecOps

Статический анализ 

Статический анализ — это процесс, при котором мы передаем исходный код нашего продукта внешнему инструменту. Этот инструмент проверяет каждую строчку кода, сравнивает её с собственными шаблонами и предоставляет обратную связь. Например, он может указать, что данный фрагмент кода не рекомендуется использовать.

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

Кроме того, существуют сканеры уязвимостей, которые мы активно применяем для проверки веб-приложений. Эти инструменты автоматически сканируют программные продукты, пытаясь выявить различные уязвимости. Они могут перебирать пароли, исследовать “хитрые” URL, перехватывать сессии и выполнять другие действия для проверки безопасности. 

Пример инструмента: SonarQube. 

Динамический анализ 

Динамический анализ — это метод, который позволяет глубже понять поведение программного обеспечения. В отличие от статического анализа, где код изучается без его выполнения, динамический анализ происходит в виртуальной среде. 

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

Пример инструментов: Acunetix или инструменты для моделирования угроз и выполнение анализа на этапе сборки.

Для себя я выделил базовые действия для сохранения безопасности продукта. 

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

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

Отметим, что крупные проекты не обходятся без внешних зависимостей. Мы используем библиотеки и модули, которые уже разработаны кем-то, что позволяет создавать сложные технические продукты. Например, нельзя создать сложный технический продукт, используя только детали, произведенные на одном заводе. Мы не всегда можем создать собственные библиотеки, поэтому используем внешние зависимости, в том числе дополнительные модули PHP. Методология DevSecOps помогает нам в процессе аудита этих внешних зависимостей. 

Внедрение микросервисной архитектуры также  желательно, но не обязательно. До внедрения DevSecOps  рекомендуется начать с Application Performance Management. Это позволит выявить и устранить узкие места в производительности, обеспечивая оптимальную работу системы. Однако, не стоит забывать о стандартных антивирусных программах, которые остаются важным элементом безопасности.

Инструменты DevSecOps 

Рассмотрим инструменты DevSecOps подробнее, на конкретных примерах. 

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

Существуют как проприетарные, так и открытые инструменты. Чаще всего используются первые. Одним из самых известных инструментов в области DevOps является GitHub Actions — это командная строка, которая обеспечивает контроль доступа к каждому проекту. С её помощью можно управлять задачами, отслеживать ошибки и так далее.

Среди бесплатных решений можно выделить, например, OWAPS Zap — сканер безопасности для веб-приложений. Мы активно используем его в своих проектах.

Ещё один популярный инструмент для анализа кода без его выполнения — SonarCube. Он проверяет код на наличие угроз безопасности и обнаруживает две категории проблем: горячие точки, которые представляют потенциальные риски и требуют ручной оценки и прямые уязвимости — распространенные паттерны, которые могут быть распознаны автоматически и требуют немедленного устранения. 

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

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

Проблемы при внедрении 

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

Из-за методологии обеспечения безопасности нам пришлось немного изменить релизный процесс. Это привело к небольшому сдвигу в сроках релиза. У нас есть план-график и внутренние задачи, которые изменились в соответствии с новыми временными рамками. 

Мы рекомендуем запланировать дополнительное время заранее, так как продукт проходит определенные стадии, и у нас появились дополнительные сутки для проверки всего кода в приложении.

В ходе проверок мы обнаружили в том числе тривиальные проблемы в исходном коде. Их можно было решить только путем переписывания кода. Мы приняли соответствующие меры, и следующее окно релиза прошло более безопасно. Методология DevSecOps помогает на каждом этапе проверить не только безопасность продукта, но и его корректность.

Под безопасностью обычно понимают различные уязвимости, когда люди пытаются взломать сервер, чтобы получить доступ к данным. Но на самом деле безопасность — это не только защита от хакерских атак, но и защита данных от повреждения из-за ошибок в исходном коде. Эти задачи тоже решаются с помощью методологии DevSecOps, которая помогает минимизировать риск ошибок, вызванных человеческим фактором.

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

DevSecOps помогает достичь наибольшей уверенности в том, что цифровые продукты не будут подвержены взлому. Вместе с тем, мы периодически используем инструменты не только статического анализа, но и проводим тестирование продукта. Способы внедрения такие же, как и для DevOps. Технически это означает переработку процессов CI/CD с использованием новых программных продуктов, для которых выделяются отдельные мощности в инфраструктуре. Я не вижу специфических методов внедрения, кроме организационного подхода и технических мероприятий по корректировке пайплайнов, развертыванию наших инструментов и, соответственно, изменению организации в планировании и взаимодействии команды.

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

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

Андрей Коненко

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас