to the top
close form
Для получения триального ключа
заполните форму ниже
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS-Studio для специалистов Microsoft MVP
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
Какая разница между DevOps и DevSecOps?

Какая разница между DevOps и DevSecOps?

04 Фев 2020

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

0710_DevOps_vs_DevSecOps_ru/image1.png

Методология DevOps

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

0710_DevOps_vs_DevSecOps_ru/image2.png

Методология DevOps включает в себя:

  • Непрерывную интеграцию, в которой происходит кодирование, сборка, интеграция и тестирование.
  • Непрерывную поставку, которая включает в себя непрерывную интеграцию, но в основном фокусируется на выпусках продукта.
  • Непрерывное развертывание, которое направлено на автоматизацию выпусков проектов.

Что из себя представляет DevOps engineer

Так как профессия появилась совсем недавно, в конце 00-х годов, какого-то точного определения для этой профессии не устоялось. Можно его сформулировать так: DevOps-engineer – это человек, который занимается внедрением методологии DevOps.

0710_DevOps_vs_DevSecOps_ru/image3.png

Есть несколько вещей, с которыми должен быть знаком DevOps-engineer:

  • Системы контроля версий. В резюме любого DevOps-engineer есть строчка с указанием Git, SVN, Mercurial и т.п.
  • Непрерывная интеграция (CI). Тут можно обратить внимание на Jenkins и TeamCity. Хочу отметить то, что инструментов для DevOps так много, что всех их эта статья охватить не сможет. Поэтому не обязательно делать акцент именно на том, что указано в этом списке.
  • Контейнеры. Например, Docker или Vagrant.
  • Инструменты автоматизации инфраструктуры. Тут пригодится знание Python, Shell или Bash. Помимо очевидных плюсов автоматизации, она к тому же еще и экономит кучу времени DevOps- engineer'ам.
  • Облачные сервисы. Один из самых востребованных навыков для DevOps-engineer. В качестве примера можно привести Microsoft Azure, Google Cloud, Amazon Web Services.
  • Тестирование. Одна из обязанностей DevOps-engineer - ускорить процесс доставки ПО клиентам. Т.к. большинству компаний важно качество своего программного обеспечения, тестирование стало неотъемлемой частью работы DevOps-engineer.
  • Хорошие навыки общения. Специалист DevOps должен обладать развитой эмпатией, так как общения на этой должности будет много. Конфликты не будут играть на руку для этого человека.

Далее обсудим тот вопрос, с которого мы начали эту заметку.

DevSecOps: что это и в чем отличие от DevOps

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

0710_DevOps_vs_DevSecOps_ru/image4.png

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

Для того, чтобы стимулировать внедрение DevSecOps, компания Cloud Security Alliance выделила шесть категорий, на которые следует обратить внимание.

  • Коллективная ответственность. Безопасность не является чем-то эфемерным, прогресс и вклад которого невозможно измерить. Каждый сотрудник организации несет ответственность за безопасность и осознает собственный вклад в ее обеспечение.
  • Сотрудничество и интеграция: безопасность может быть достигнута только путем сотрудничества, а не конфронтации.
  • Прагматичная реализация: используя независимую от инфраструктуры модель цифровой безопасности и конфиденциальности, ориентированную на разработку приложений, для обеспечения безопасности, конфиденциальности и доверия в цифровом обществе, организации смогут прагматично подходить к безопасности в DevOps.
  • Обеспечение соответствия стандартам и разработки: ключом к заполнению пробелов между соответствием стандартам и разработкой является преобразование средств управления в соответствующие критерии программного обеспечения, а также определение переломных моментов в жизненном цикле программного обеспечения, где эти средства управления могут быть автоматизированы и измерены.
  • Автоматизация: качество программного обеспечения может быть улучшено за счет более тщательного, своевременного и регулярного тестирования. Поддающиеся автоматизации процессы нужно автоматизировать, а от неподдающихся следует отказаться.
  • Измерение, мониторинг, протоколирование и действие: для успеха DevSecOps разработка программного обеспечения и его работа после установки на системах должны непрерывно контролироваться уполномоченными лицами в отведенное для этого время.

Практические шаги трансформации DevOps в DevSecOps

Трансформация DevOps в DevSecOps требует понимания определенных технологий и методов обеспечения безопасности программ. Остановимся на этом моменте подробнее и посмотрим, какие конкретно технологии нам тут пригодятся.

Для начала предлагаю рассмотреть возможность встраивания средств динамического тестирования безопасности приложений, DAST. Динамические анализаторы программного кода позволяют выявлять уязвимости в коде, например, SQL-инъекции, переполнение буфера и подобные, методом черного ящика. Использование динамических анализаторов при разработке позволит сделать шаг навстречу DevSecOps практикам.

RASP, самозащита приложений Runtime – одно из средств защиты, которое используется при выполнении программы. RASP анализирует поведение приложения и таким образом проводится непрерывный анализ безопасности.

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

Средства статического тестирования защищённости приложений, SAST – это способ проверки кода без запуска самой программы. SAST помогает найти потенциальные уязвимости в исходном коде и тем самым предотвратить многие уязвимости нулевого дня. Одна из популярных классификаций предупреждений SAST инструментов - Common Weakness Enumeration, CWE. CWE представляет собой официальный реестр или словарь общих дефектов безопасности, которые могут быть использованы злоумышленниками для получения несанкционированного доступа к системе. Использование статического анализатора при разработке поможет не допустить попадания программных ошибок на следующий уровень – CVE. CVE (Common Vulnerabilities and Exposures) – это база данных общеизвестных уязвимостей информационной безопасности. CVE была создана для того, чтобы упорядочить известные дефекты программ.

Анализ состава кода, SCA. SCA позволяет обнаруживать уязвимости в компонентах с открытым кодом. SCA анализирует приложение с целью найти компоненты, для которых известно, что они имеют уязвимости. См. "Чем опасны уязвимые зависимости в проекте и как с этим помогает SCA?" и "SAST и SCA: поиск дефектов безопасности в коде проекта и его зависимостях".

Заключение

Подытожим, что же у нас в итоге получилось.

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

Популярные статьи по теме
Место SAST в Secure SDLC: 3 причины внедрения в DevSecOps-пайплайн

Дата: 19 Апр 2022

Автор: Сергей Васильев

Репутационные и денежные риски, связанные с уязвимостями, огромны. На фоне этого понятен повышенный интерес к безопасности и стремление выстроить цикл безопасной разработки (SSDLC). Сегодня мы погово…
PVS-Studio для поиска дефектов безопасности и защищённости приложений. Отчёт Forrester Research о SAST, Q3 2020

Дата: 01 Сен 2020

Автор: Андрей Карпов, Павел Еремеев

PVS-Studio, изначально разрабатываемый как универсальный инструмент поиска ошибок в программном коде, постепенно стал ориентироваться на обеспечение безопасности и защищённости приложений, на выявлен…
Под капотом SAST: как инструменты анализа кода ищут дефекты безопасности

Дата: 26 Янв 2023

Автор: Сергей Васильев

Сегодня речь о том, как SAST-решения ищут дефекты безопасности. Расскажу, как разные подходы к поиску потенциальных уязвимостей дополняют друг друга, зачем нужен каждый из них и как теория ложится на…
Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?

Дата: 03 Ноя 2022

Автор: Андрей Москалёв

Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к ReDoS-ата…
Чем опасны уязвимые зависимости в проекте и как с этим помогает SCA?

Дата: 06 Сен 2022

Автор: Никита Липилин

Современные приложения почти всегда используют сторонние библиотеки. Если библиотека содержит уязвимость, то уязвимым может оказаться и использующее её приложение. Но как определить наличие таких про…

Комментарии (0)

Следующие комментарии next comments
close comment form
Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо