Генезис дежопа исходит от необходимости разрушения бункеров и получить лучшую собственность на доставленный продукт и лучшее сотрудничество в командах. Он влечет за собой два основных компонента бизнес-пространства — разработка и операций.
Как правило, DEVOPS — это практика команд разработки и операций, работающих вместе с начала жизненного цикла разработки программного обеспечения (SDLC) и через развертывание и операции.
Это сделано для повышения скорости доставки Организации, а также иметь лучшую собственность (и соответствующее, лучшее качество) конечного продукта.
EvOps позволяет предприятиям лучше служить своим клиентам с помощью непрерывной доставки и расширенного качества результатов. Однако с множеством преимуществ, которые предлагают DEVOPS, есть также проблемы, которые вы можете столкнуться с тем, чтобы реализовать DEVOPS.
Будь то целя и приоритеты для продвижения поперечных функциональных командных сотрудниц или смещения более старых моделей инфраструктуры, DevOps представляет определенные проблемы предприятиям.
Прежде чем ваша организация принимает DEVOPS, важно понимать эти проблемы и как вы можете их обратиться.
1: Вопросы связи между командами безопасности и развития
Разработчики и команды безопасности преследуют, казалось бы, контрастные цели.
Разработчики нацелены на толкание программного обеспечения вне доставки трубопровода как можно быстрее.
Команды безопасности сосредоточены на безопасности над скоростью, где доставляют Безопасные приложения это их главный приоритет. Который часто означает проведение относительно значительных количеств просмотра приложений времени до каждого выпуска.
Отсутствие сотрудничества и надлежащего общения между командами безопасности и развития часто приводит к путанице, отсроченным поставкам и разочарованию обеих команд.
Дежол выступает за раннее участие групп безопасности в SDLC. Тем не менее, существует трение между командами развития и безопасности на начальном этапе, так как разработчики часто не знают о принципах безопасности, ни как устранить угрозы безопасности. Команды разработки хотят быстро раскрутить новые серверы и команды безопасности, которые хотят замедлить и убедиться, что каждый сервер достаточно закален, имеет правильное ведение журнала и так далее.
При доставке высококачественных услуг является одним из главных приоритетов DevOps, он также требует расширенных мер безопасности.
Зачастую команды безопасности не общаются должным образом с командой разработки, оставляя их непосредственным из правильных действий безопасности, которые необходимо предпринять. Точно так же команда безопасности часто не охватывают автоматическую природу подхода DevOps.
2: Трудным в том, что команда безопасности поддержала ногу с циклом DEVOPS
Дежол сосредотачивается на быстрой скорости доставки и коротких циклах развития. Команды безопасности стремятся быть очень тщательными в рассмотрении безопасности приложений и их среды, для нее часто требуется только одна уязвимость к серьезному компромиссу организации.
С этим надо быть тщательным, он может занять гораздо более длительное время для оценки кода и его среды, чем требуется для его разработки или изменения.
В то время как DevOps стремится к быстрой непрерывной доставке, организации часто подталкиваются, чтобы оставить безопасность ради быстрого поставок. Сначала положить скорость допускает неправильные устроения, потенциальные ошибки, безошибочные угрозы и уязвимости в приложении, подвергая его нарушениям безопасности и вредоносных атак.
3: культурное сопротивление безопасности
Традиционно тестирование безопасности произошло в конце SDLC, прямо перед этапом развертывания. Но с DevOps команда безопасности интегрированы по всему SDLC.
Эта ранняя интеграция может привести к раздоров, когда команды развития привыкли быстро работать самостоятельно на этапе развития жизненного цикла.
Команды разработчиков испытывают огромное давление от управления, чтобы доставлять обновления развития как можно быстрее, и часто просматривать любое взаимодействие с командой безопасности во время разработки в качестве помех для предоставления функциональности, которые руководствуются желания.
Хотя команда разработки работает над этой целью, безопасность приложения часто приносится в жертву в быстром процессе. Многие считают, что интеграция безопасности в начале процесса может производить отсроченные поставки и, следовательно, они избегают аспекта безопасности приложения.
Это часто культурный вопрос, особенно если команда безопасности рассматривается как «Naysayers», которые постоянно говорят, что вы не можете сделать что-то, а не сказать, как вы можете сделать что-то надежно.
Если команда безопасности разработала репутацию «Naysayer», то может быть трудно преодолеть это и построить тесные совместные отношения в среде DevOps.
4: Избегание рисков, связанных с контейнерами и другими инструментами
Окружающая среда DEVOPS часто опирается на облачную инфраструктуру и развертывание, которые часто оставляют приложение, подверженное воздействию потенциальных угроз безопасности, если правильные меры не установлены на свои места. Многие из открытых источников, незрелых и новых инструментов используются в среде DevOps.
В быстромноженном доставке трубопроводом DevOps простая ошибка или ошибка могут привести к захватывающим сбоям (таким, как организации, публично обнажив свои приставки администрации для их программного обеспечения для оркестрации, такие как Тесла).
Команда DEVOPS будет использовать различные инструменты, такие как Anisible, соль, шеф-повар, марионетка и т. Д. Наряду со многими другими. Одним из наиболее часто используемых инструментов/технологий, используемых «командами DevOps», являются контейнерами.
Контейнеры — ультрабожжевые портативные упаковочные платформы, которые позволяют простым развертыванию приложений. К сожалению, командам безопасности может быть сложно оценить безопасность этих контейнеров.
Используются ли использование безопасных библиотек, правильно закаленные услуги погружены? Секреты надежно хранятся и управляются?
Часто эти вопросы не полностью адресованы и ответы, и использование контейнеров может ввести новые риски в организацию.
Но проблема не только с контейнерами, все инструменты, связанные с развертыванием, должны быть адресованы и обеспечены, поскольку они важны для создания развернутого приложения и окружающей среды.
Слишком часто ключи царства связаны с программным обеспечением оркестрации, и их необходимо тщательно изучить, чтобы гарантировать, что они безопасны.
5: Плохое контроль доступа и управление секретами
Благодаря высокому автоматизированным сборкам и развертыванию, управление секретами и контроль жесткого доступа необходимы.
Секреты могут включать в себя API токены, SSH-ключи, учетные данные привилегированного счета и т. Д. Они могут использоваться контейнерами, услугами, сотрудниками и многими другими организациями. Слишком часто эти критические пароли и ключи плохо управляются (обнажены) и являются частыми целями злоумышленников.
Кроме того, для обеспечения плавного и быстрого рабочего процесса, команды DEVOPS часто позволяют практически неограниченному доступу к привилегированным счетам, таким как администратор, корня и т. Д.
Когда несколько физических лиц используют и делятся учетными данными конфиденциальных учетных записей, и когда процессы работают с повышенными привилегиями, вероятность того, что эти чрезмерные разрешения злоупотребляются значительно увеличиваются.
Лучшие практики для решения этих проблем
В то время как DevOps может вызвать некоторые уязвимости безопасности и вопросам совместимости в позе между различными командами в SDLC, есть способы решения этих проблем.
Укрепление безопасности DevOps, сохраняя сохранение баланса между различными командами, а также необходимость ловкости, рассмотрите возможность реализации следующих практик в вашей организации.
1: Обеспечить принудитель безопасности политики
Реализация управления и эффективного общения имеет решающее значение в создании целостных условий безопасности.
Вы должны определить краткую, легко понять, а также прозрачный набор процедур кибербезопасности и политики для областей, таких как контроль доступа, обзор кода, брандмауэры и управление конфигурацией.
Команды DEVOPS должны придерживаться этой политики безопасности и совместно работать совместно к обеспеченному применению.
Кроме того, концепция «инфраструктуры в качестве кода (IAC)» является краеугольным камнем DevOps.
IAC — это определение установки и конфигурации виртуальных машин, сетей, балансировщиков нагрузки и топологии подключения в качестве кода, в которой используются те же версию, что и команда DEVOPS, используемых для его приложений.
Хотя это может показаться страшным, он может быть чрезвычайно мощным, поскольку код (инфраструктура, серверы, маршрутизаторы, конфигурации и т. Д.) могут быть просмотрены и оценены проще, чтобы обеспечить, чтобы окружающую среду в правильной закаленной конфигурации.
Подобно принципу, когда тот же код генерирует ту же двоичный, модель IAC также генерирует одинаковую среду, когда она применяется.
Вы хотите убедиться, что у вас есть сервер в правильной конфигурации? Легкий. Разверните новый сервер из утвержденной версии с помощью закаленной конфигурации, которая хранится в виде кода.
IAC решает проблему дрейфа окружающей среды в доставке. Без IAC команд должны поддерживать настройки каждой среды развертывания.
Несоответствие между различными средами может привести к проблемам в этапе выпуска. С интеграцией IAC команд DEVOPS могут легко управлять и управлять безопасностью их приложений и сред.
Объединенные команды, которые объединяют работу IAC вместе с единым набором практики безопасности и инструментами для поддержки инфраструктуры и доставки приложений надежно, быстро и в масштабе.
2: принять модель Devsecops
Эффективные дежопты безопасности могут быть достигнуты путем поощрения кросс-функциональных сотрудничеров на протяжении всего жизненного цикла DevOps. Девельные команды не должны просто работать в синхронизации, но и активно участвуют в жизненном цикле развития для достижения распространенных целей расширенной безопасности.
Безопасность не должна быть единственной ответственностью одной команды, вместо этого должна быть культура глубоко укоренена в рамках организации. Когда безопасность культурно проникнет по всему предприятию, он известен как «Devsecops».
Это культура в организациях, где все берет на себя ответственность за соблюдение практики безопасности.
DEVSECOPS состоит из функций и управления кибербезопасности для снижения возможности нарушений безопасности посредством контроля на основе свободных учетных записей и других уязвимости безопасности. Это выходит за пределы технических инструментов и программного обеспечения, гарантируя, что безопасность является основным принципом организации.
Devsecops поощряет различные команды узнать о основных принципах безопасности. Все члены команды должны иметь некоторую основную тренировку безопасности.
В дополнение к обучению, разработчики должны научиться использовать автоматические инструменты и программное обеспечение для запуска быстрой проверки безопасности. Профессионалы безопасности также должны иметь возможность писать код и работать с API, чтобы они могли скрипт и автоматизировать проверки безопасности, особенно в отношении IAC.
Команды безопасности могут принять участие и развивать утвержденные и затвердевшие версии инфраструктуры для использования команды развития. Они также могут применять конфигурации путем мониторинга инфраструктурного кода через автоматические средства.
3: Используйте автоматизацию для скорости и масштабируемости
Автоматизация играет решающую роль, когда речь идет о создании Безопасные приложения и безопасная среда. Автоматизация помогает смягчить риски, возникающие из ручных ошибок, и уменьшает связанные с этим уязвимости и простоя.
Без автоматизированных инструментов и процессов безопасности становится сложно, чтобы команда безопасности становится трудным идти в ногу с командой DevOps. Автоматизированные инструменты могут использоваться для нескольких процессов, таких как управление конфигурацией, управление уязвимостями, привилегированные учетные данные/управление секретами и анализ кода среди других.
Наряду с реализацией автоматизированных инструментов и процессов в ваших дежопах, еще одна вещь, которая имеет важное значение, является выбор автоматизированных инструментов и процессов.
Автоматизированные инструменты, используемые для создания безопасного рабочего процесса DevOps, должны:
• Быть легко понимать и управлять • не требуют экспертизы безопасности • не дать высокой ложноположительной скорости вопросов. • Быть интегрированы в CI/CD-трубопровод
Цель состоит в том, чтобы помочь команде DevOps работать эффективно и легче, чтобы не перегружать их десятками инструментов или инопланетных процессов из их рабочей среды.
Чем меньше разрыв между скоростью безопасности и командой DevOps, тем легче будет встроить безопасность в качестве основного принципа в вашей организации.
4: эффективно управлять уязвимостями
Включение безопасности на начальной фазе SDLC помогает облегчить раннее обнаружение ошибок и уязвимостей.
С этими идентифицированными уязвимостями вам понадобится эффективная система управления уязвимостями, чтобы вы могли отслеживать и расставить приоритеты, как следует решать каждую уязвимость (восстановление, прием, передачу и т. Д.).
Существует 4 основных этапа программы управления уязвимостями:
• Определить критичность активов, владельцев активов, частота сканирования и установление достижимых временных швейной шкалы для восстановления. • Откройте для себя и инвентаризацию активов в сети. • Определите уязвимости на обнаруженных активах. • Отчитывайте и устраните определенные уязвимости.
Пока вы работаете с программой управления уязвимостями, вы можете заметить довольно высокую оценку уязвимости со временными циклами, потребляющимися в начале. Тем не менее, ключ заключается в том, чтобы показать квартал прогресса к кварталам, а в течение года.
Когда команды становятся более знакомыми и образованными в программе управления уязвимостями, время для оценки восстановления и уязвимости должно в конечном итоге уменьшаться.
Наиболее успешные программы управления уязвимостями постоянно принимают и соблюдают новейшие цели снижения риска руководящих принципов и политик в области кибербезопасности в рамках Организации.
5: принять эффективные дежопты управления секретами
Секреты — это пароли, ключи и другая конфиденциальная информация, которая должна быть тщательно контролироваться.
При движении к быстрому автоматизированному развертыванию команды DEVOPS часто прибегали к очень низким управлению секретами, такие как хранение паролей в файлах в контейнерах.
В гонке для быстрых автоматизированных развертываний команда могут одновременно принимать ярлыки, которые оставляют очень чувствительные пароли и открытые ключи.
Для эффективного управления Secrets Secrets вы должны удалить конфиденциальные данные, такие как учетные данные из кода, файлов, учетных записей, сервисов и на различных платформах и инструментах.
Это включает в себя устранение паролей из кода и сохраняя их в централизованном безопасном пароле, если он не используется.
Вы можете использовать такие продукты, как Cyberark, Azure Key Vault, Manager Secrets Secrets, Thycotic Secret Server и другие для хранения ваших паролей, когда они не используют их.
Привилегированные решения для управления паролем будут гарантировать, что скрипты и приложения запроса используют пароль из централизованного безопасного пароля. Кроме того, внедряя API в системе, вы можете получить контроль над кодом, сценариями, файлами и встроенными клавишами.
6: Принять эффективное управление привилегированным доступом
Ограничение привилегированного доступа к счетам может значительно сократить возможности и риски для внутренних, а также внешних злоумышленников для эксплуатации системы. Технически это означает устранение доступа к административным или привилегированным счетам на станках для конечных пользователей.
Вы должны следить за каждой привилегированной учетной записью, чтобы убедиться, что они являются законными и придерживаться мандатов соответствия.
Принудительное применение ограничительной привилегированной модели также состоит из ограниченного доступа для разработчиков и тестеров к определенному развитию, производству и системам управления.
Но он по-прежнему должен разрешить им подходящий доступ и разрешения для создания изображений и машин из утвержденных шаблонов, а также развертывания, изменения и исправления проблем уязвимости в системе.
Рассмотрите возможность реализации передового привилегированного решения для управления доступом, таким как Openiab, который может автоматизировать контроль, мониторинг и аудит привилегированного доступа на протяжении всего жизненного цикла разработки.
Он также должен быть способен отслеживать полный жизненный цикл привилегированных учетных данных/управления секретами.
Вынос
Девопс продвигал организации к лучшему будущему, предоставляя эффективные решения, которые помогают в более быстрой доставке, поощрять сотрудничество между командами и способствовать проворной среде.
Хотя DevOps предлагает широкие преимущества, оно также представляет проблемы. Одним из самых выдающихся вопросов с DEVOPS является трудность многие организации сталкиваются с интеграцией безопасности в процесс DevOps.
Но безопасность должна быть интегрирована. Раннее и эффективное осуществление безопасности в DEVOPS могут помочь быстро определить уязвимостей и исправлять операционные недостатки, прежде чем они станут проблемой.
Создавая безопасность в начале жизненного цикла DevOps, вы можете гарантировать, что он встроен в самое ядро системы и проходит в течение всего жизненного цикла продукта. Он будет защищать код от рисков нарушений данных и атаки кибербезопасности, которые используют недостатки в системе.
Этот пост был первоначально опубликован в CypressDataDefense.com .
Оригинал: «https://dev.to/joywinter90/major-devops-challenges-and-how-to-address-them-3h8b»