— Как давно существует методология DevSecOps?
— Вопрос довольно сложный, потому что точной даты ее создания никто не знает, но эта методология появилось сравнительно недавно. Методология DevSecOps была разработана в связи с тем, что в последние несколько лет вопрос безопасности разработки ПО становится все более актуальным. В нынешних реалиях DevOps в большей степени преследует цель обеспечения стабильности работы приложения, а DevSecOps сосредоточена на безопасности его работы.
— Существуют ли альтернативные технологии безопасной разработки приложений? В чем преимущества DevSecOps перед другими, в чем недостатки?
— Все известные методологии разработки приложений, — а их немало, и ни одна из них не является универсальной, — могут быть как «безопасными», так и «опасными», — тут все зависит от архитектуры продукта. Однако применение техник DevSecOps вместе с DevOps позволяет быстрее реагировать на найденные уязвимости, а часто и просто предотвращать потенциальные ошибки по части безопасности. В этом — несомненное преимущество DevSecOps.
— На какой результат можно рассчитывать, внедрив DevSecOps? Насколько это оправдано экономически?
— Наиболее зримым результатом станет успешное внедрение политик информационной безопасности в культуру разработки программного обеспечения в каждой отдельно взятой компании, принявшей решение об использовании методологии DevSecOps. Оправданность внедрения DevSecOps зависит от стоимости разрабатываемого продукта, его объективной ценности, потенциальных потерь в случае взлома или хищения данных, преждевременного попадания программного кода продукта в широкий доступ.
— Насколько трудоемко и дорого внедрение DevSecOps?
— Индивидуально и зависит как от размеров и сложности структуры компании, внедряющей эту методологию, так и от сложности разрабатываемого проекта. Если это маленькие клиент-серверные приложения, вопросы обеспечения безопасности вполне можно решить в рамках DevOps-задач. Важно, чтобы архитектор понимал не только потенциальные точки отказа, но и потенциальные точки взлома.
— Какой инструментарий применяется для автоматизации процессов?
— Вопрос достаточно широк по своей постановке, ведь автоматизировать можно на разных стадиях разработки. Например, существует статический анализ кода (SAST). В этом случае проверяется код на наличие некоторых паттернов, что помогает найти некоторые уязвимости. Есть динамические тесты (DAST). В этом случае тесты уже сложнее, и их написание требует знаний особенностей продукта. IAST, например, это уже следующее поколение тестов, местами объединяет SAST и DAST методологии. Также можно проверять и среду окружения на безопасность (RASP). В этом случае анализируется окружение для работы ПО. Список инструментов, если интересно вникнуть глубже:
DAST — Dynamic Application Security Testing Netsparker, Acunetix, AppScan и много других
IAST — Interactive Application Security Testing Hdiv, Contrast Assess, Fortify WebInspect
SAST — Static Application Security Testing SonarQube, ESLint, Fortify SCA
RASP — Runtime Application Self Protection. Dynatrace, Immuno
Один из сегодняшних лидеров в автоматизации процессов разработки — Gitlab enterprise edition, удобный и хорошо проработанный универсальный веб-инструмент для разработки программного обеспечения.
— Как показывают опросы, лишь менее трети российских компаний использует DevSecOps. Почему с их внедрением не спешат? В мире та же ситуация?
— Могу предположить, что внедрению мешают стоимость внедрения и нецелесообразность использования DevSecOps в разработке небольших проектов, а также отсутствие необходимости во внедрении этой методологии в некрупных компаниях, которых в отрасли большинство.
В мире дела обстоят по-разному. В крупнейших компаниях — особенно в финтехе — это по умолчанию внедрено. В менее финансово интересных проектах степень внедрения, разумеется, ниже. И, разумеется, все сильно зависит от страны, в которой работает та, или иная компания.
В целом же можно заметить явный тренд на внедрение DevSecOps, все больше компаний начинает применять эту методологию, появляется все больше различных сервисов, упрощающих интеграцию. Я бы сказал, что внедрять DevSecOps сегодня стало модно.