Как успешно внедрить DevSecOps?

Безопасность на протяжении всего жизненного цикла разработки ПО важна, но иногда это сложно.

DevOps помогает преобразовать и ускорить доставку, тестирование и развертывание ПО в производственной среде. Это то самое “обещание DevOps”, которое делает его востребованным. А сейчас оборотов популярности набирает DevSecOps.

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

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

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

Процесс DevSecOps

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

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

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

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

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

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

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

Препятствия для DevSecOps

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

Какие у вас могут быть препятствия?

  • DevSecOps определяет поставщик: это означает, что принципы и процессы сосредоточены на уже готовых решениях, и организация не сможет разработать свой подход. Вместо этого они будут ограничены тем, что предоставляет поставщик.
  • Нервные менеджеры: страх потерять контроль — настоящая проблема. Часто тревога влияет на принятие решений менеджерами.
  • “Работает — не трогай”: это нормальное мышление, и вы действительно не можете обвинять людей за такую позицию. Но эту идею стоит оспорить: всегда появляются новые и лучшие методы чего угодно. Чтобы адаптироваться к гибкому жизненному циклу приложения, вам нужно изменить процессы для поддержки необходимой скорости и гибкости.
  • Эффект Netflix и Uber: обе компании успешно внедрили DevSecOps, поэтому многие организации хотят им подражать. Тут следует задать себе два вопроса: 1) нужно ли это вам и 2) хотите ли вы именно так? Часто ответы будут негативными.
  • Отсутствие метрик: трансформация DevSecOps должна оцениваться с точки зрения поставленных целей. Метрики могут включать производительность доставки программного обеспечения или общую производительность организации с течением времени.
  • Безопасность на основе контрольных списков: если вы так делаете — вы используете старый подход. Это бесполезно для современных технологий, которые разработчики используют для упрощения и гибкости доставки. Внедрение подхода “Security as Code” требует, чтобы специалисты по безопасности научились программировать.
  • Отдельная команда безопасников: это особенно актуально в организациях, переходящих от старых способов доставки ПО. Часто в таких компаниях есть команда безопасности и команда DevOps отдельно. Из-за разделения доверие между разработчиками, администраторами и безопасниками низкое. Это приведёт к тому, что безопасники будут тратить ненужное время на анализ и управление процессами DevOps + строить конвейеры вместо того, чтобы сотрудничать с разработчиками и администраторами для улучшения потока поставки ПО.

Как успешно внедрить DevSecOps

Внедрить DevSecOps непросто, но знание подводных камней — ключ к вашему успеху.

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

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

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

Следующий шаг — метрики. Внедрение DevSecOps нужно измерять по таким параметрам:

  • время для изменения;
  • частота развёртывания;
  • среднее время на восстановление;
  • ошибки изменений.

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

Вывод

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

Приходим к выводу, что для внедрения DevSecOps нужны:

  • культурные изменения;
  • поддержка руководства;
  • лидеры и энтузиасты;
  • многофункциональные команды;
  • измеримые показатели.

И помните, что в первую очередь здесь важна культура.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *