Модель, получившая имя DevSecOps, подразумевает обеспечение безопасности на всех этапах разработки приложений. Иными словами, контроль безопасности и разработка осуществляются параллельно, причем безопасность стараются внедрить в каждую часть процесса разработки. Почему модель DevSecOps так важна? Какие у нее преимущества? Что ее отличает от DevOps? Рассмотрим эти вопросы.
- Введение
- Почему модель DevSecOps важна
- Преимущества DevSecOps
- DevOps против DevSecOps: интеграция
- На пути DevSecOps будут определенные проблемы
- Выводы
Введение
В случае с DevSecOps речь идет о попытке автоматизировать основные задачи безопасности, внедряя контроль этих процессов на раннем этапе DevOps. Этот подход выгодно отличается от того, что было принято до DevSecOps — контроль безопасности являлся заключительным процессом и осуществлялся в конце разработки.
DevSecOps может использоваться, например, при переходе на микросервисы, в процессах Непрерывной интеграции (Continuous Integration, CI) и Непрерывного развертывания (Continuous Deployment, CD), или просто для тестирования облачной инфраструктуры.
Почему модель DevSecOps важна
В последние годы ИТ-инфраструктура претерпела значительные изменения. Переход к динамической модели создания оценочных резервов, общим ресурсам и облачным вычислениям — все эти ключевые моменты помогли усовершенствовать разработку приложений. Возможность деплоя приложений в облаке позволила улучшить масштаб и скорость.
В частности, набор практик DevOps, нацеленных на активное взаимодействие специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их рабочих процессов друг в друга, очень помог организациям быстрее создавать и обновлять программные продукты и услуги.
Тем не менее, многие средства мониторинга безопасности не смогли соответствовать этому темпу, так как попросту не были созданы для тестирования кода на той скорости, которую требует DevOps. Также укрепилось мнение, что безопасность является самым серьезным препятствием на пути быстрой разработки приложений и ИТ-инноваций.
«DevOps стал родным для высокопроизводительных предприятий и основой успеха их онлайн-бизнеса», — говорит Паскаль Джиненс, исследователь из Radware. — «Постоянный процесс изменения технологий и потребительского спроса подразумевает, что существует непрерывный цикл обновлений, который будет поддерживать набор разнообразных функций (от времени загрузки страниц до функций поиска и шоппинга) в актуальном состоянии».
Тем не менее, безопасность приложений часто отстает, что подвергает предприятия неоправданному риску. Любая DDoS-атака может привести к сбою в работе таких организаций. За примером далеко идти не надо — достаточно взглянуть, к чему привела неспособность кредитного бюро Equifax обновить фреймворк Apache Struts. DevSecOps призвана предотвратить такие инциденты.
Преимущества DevSecOps
Преимущества DevSecOps выделить просто — автоматизация процессов с самого начала позволяет снизить вероятность неправильного администрирования и ошибок, которые часто приводят к простоям или открывают поверхность для атак. Также автоматизация избавляет ИБ-специалистов от необходимости настраивать консоли вручную.
Таким образом, функции безопасности вроде управления учетными данными и доступом (IAM), работа брандмауэров и сканирование уязвимостей активируются программно, в процессе DevOps. В результате такого подхода команды безопасников могут сосредоточиться на установке политик. Специалисты считают, что 80 % команд разработчиков будут использовать DevSecOps к 2021 году.
Картинка 1. Как DevSecOps интегрируется в разработку приложений
Эксперты отмечают, что одно из основных преимуществ DevSecOps заключается в том, что за безопасность отвечает каждая команда, участвующая в разработке. Такой подход привел к созданию специальных инструментов, направленных на повышение безопасности на разных этапах цепочки DevOps.
Главный ИБ-специалист в Red Hat Майк Берселл, например, считает, что разделения между DevOps и DevSecOps быть вообще не должно:
«Если вы правильно реализуете DevOps, безопасность там просто обязана присутствовать. DevSecOps как раз является пониманием того, как это работает».
DevOps против DevSecOps: интеграция
Интеграция безопасности в DevOps требует новых подходов, процессов и инструментов. ИБ-руководителям необходимо придерживаться универсального и гибкого похода к DevOps, позволяющего сохранить прозрачность процесса разработки и уделяющего внимание целостности безопасности. Однако это довольно сложная задача.
Проблема здесь в том, что вопрос безопасности редко обсуждается, инфраструктура рассматривается как код. На данный момент существуют два лагеря: одни выбирают DevOps, другие считают DevSecOps единственно правильным подходом. Специалисты полагают, что эти два лагеря необходимо объединить, что позволит обеспечить интеграцию безопасности в каждый из аспектов процесса.
Однако реализовать это не так просто, как кажется — разработчикам нужно четко понимать весь процесс от начала до конца. А процесс этот может строиться по-разному — например, при написании кода есть ли у разработчиков инструмент, осуществляющий проверку на уязвимости в процессе локальной сборки или это реализуется внутри CI/CD с использованием Jenkins?
Или же эти два подхода применяются одновременно, что помогает убедиться, что в каждом процессе сборки присутствует элемент безопасности, проверяющий степень защищенности кода.
Майк Берселл из Red Hat подчеркивает, что бизнес редко рассматривает безопасность как отдельную категорию, которой должно быть уделено максимум внимания, ИБ рассматривается, скорее, в разрезе минимизации рисков. Берселл убежден, что безопасность является «ответственностью каждого», следовательно, компаниям стоит распределить соответствующие роли.
«Например, одна группа может отвечать за то, какие контейнеры и образы могут быть использованы, другая — выбирать и одобрять библиотеки связующего программного обеспечения (будь то черный или белый список). Однако наиболее важно связать все это с вашими политиками безопасности».
На пути DevSecOps будут определенные проблемы
Некоторые предприятия уже смогли добиться положительных результатов, объединяя команды разработчиков и безопасников, сокращая циклы обратной связи, минимизируя киберинциденты и повышая безопасность посредством совместной ответственности. Райан О’Лири, главный специалист по исследованиям в области безопасности в White Hat, утверждает, что такой подход помогает все большему количеству организаций быстро выпускать безопасный код.
«Одним из основных показателей того, насколько хорошо реализована ваша система безопасности приложений, является время, необходимое на устранение уязвимости после ее обнаружения. Это наглядно показывает, насколько гибко ваша команда справляется с различными ситуациями и как она расставляет приоритеты», — говорит О’Лири.
По данным О’Лири, средний срок, требуемый для устранения уязвимости при использовании динамического анализа в производстве, составляет для компаний 174 дня. Однако организации, которые внедрили DevSecOps, устраняют бреши за 92 дня. Что касается статического анализа — средняя компания патчит бреши за 113 дней; те, что внедрили DevSecOps — всего 51 день.
Довольно серьезная разница. Еще из статистики — обычная компания имеет 15 % уязвимостей от общего числа обнаруженных проблем безопасности, устраненных в течение 10 дней, компании, использующие DevSecOps — 53 % устраненных в течение 10 дней дыр. В недавно опубликованном отчете DigiCert утверждается, что 98 % из 300 опрошенных компаний США заявили, что планируют интегрировать безопасность в DevOps, либо уже сделали это.
Однако для подобной интеграции существует препятствие. Специалисты обращают внимание на то, что DevOps и DevSecOps имеют разные операционные модели и задачи, на данном этапе существуют разногласия относительно ответственности разработчиков и недостатков навыков для решения задач.
«Количество специалистов в области безопасности, хорошо осведомленных в DevSecOps, по-прежнему остается удручающе малым. Вендоры сосредоточены на защите конечных точек, следовательно, не особо заинтересованы в DevSecOps», — говорит главный менеджер по продуктам Qualys Крис Карлсон. — «А небольшие стартапы предоставляют только ограниченый набор инструментов для внедрения защиты в DevOps».
Выводы
Специалисты предупреждают, что не существует какого-то однобокого подхода или инструмента. Не получится на лету создавать безопасный код, используя только один продукт. Тем не менее, эксперты убеждены, что все эти препятствия можно преодолеть, что позволит обеспечить безопасность приложений и уменьшить количество уязвимостей.