∞ Как и зачем изучать методики DevSecOps в 2021 году?
Популярность методологии DevOps растет с каждым годом, а вместе с ней растет и необходимость в безопасности всего жизненного цикла ПО. Рассказываем, какие знания понадобятся, чтобы стать востребованным специалистом в этой области.
Практики DevOps стремительно развиваются, обеспечивая скорость, масштабируемость и функциональность приложений, однако возможности обеспечить надежную защиту им часто не хватает. В жизненный цикл разработки программного обеспечения были введены методы DevSecOps, чтобы объединить разработку, эксплуатацию и безопасность под одной «крышей».
Типичный рабочий процесс DevOps и DevSecOps выглядит так:
- Разработчик создает код и вносит его в систему управления контролем версий;
- Другой разработчик извлекает код из системы управления версиями и выполняет статический анализ кода для выявления любых дефектов безопасности или ошибок качества кода;
- Затем создается среда с использованием инструмента «инфраструктура как код», например, такого как Chef. Приложение развернуто, и к системе применены настройки безопасности;
- После этого для вновь развернутого приложения выполняется набор автоматического тестирования, включая серверную часть, пользовательский интерфейс, интеграцию, тесты безопасности и API;
- Если приложение проходит эти тесты, оно развертывается в производственной среде;
- Эта новая производственная среда постоянно контролируется для выявления любых активных угроз безопасности для системы.
Этот подход работал, пока обновления ПО выпускались всего один или два раза в год. Когда разработчики начали применять методики Agile и DevOps, циклы разработки ПО сократились до нескольких недель или даже дней, а традиционный подход к безопасности стал неактуальным.
Гарантируя, что безопасность присутствует на всех этапах жизненного цикла поставки ПО, мы получаем непрерывную интеграцию, при которой снижается стоимость соответствия продукта отраслевым стандартам и требованиям регуляторов, к тому же он выпускается и доставляется быстрее.
Знания и навыки, необходимые специалисту DevSecOps
Краткий список необходимых навыков:
- активные коммуникативные навыки;
- умение работать с разными командами и клиентами;
- ответственность;
- исполнительность;
- аналитические навыки;
- системное мышление;
- навык самообучения;
- умение просто и доступно доносить информацию.
Краткий список необходимых знаний:
- Знание культуры и принципов DevOps;
- Знание языков программирования (например, Python, Java, Go);
- Знание методов моделирования угроз и оценки рисков;
- Знание архитектур безопасности, навыки кибербезопасности;
- Актуальные знания об угрозах кибербезопасности и современных передовых методах борьбы с ними;
- Свободное владение техническим английским языком.
Квалификация, необходимая для начала работы инженером DevSecOps
Чтобы получить работу инженера DevSecOps, вам понадобятся четыре составляющие: образование, сертификация, опыт, обучение на курсах.
Образование
Для большинства вакансий в области кибербезопасности требуется как минимум степень бакалавра, и DevSecOps не исключение. Специалисту нужно иметь высокий уровень знаний и технических навыков, поэтому работодатели отдают предпочтение кандидатам с дипломами в технической области (информатика, кибербезопасность, компьютерная инженерия).
Сертификация
Одного диплома мало. Чтобы не потерять актуальность в быстро меняющейся сфере ИТ, вам придется совершенствоваться в профессии. Кроме того, работодатели чаще отдают предпочтение соискателям с сертификатами.
Пройти сертификацию вы можете на следующих платформах:
Опыт
Инженеры DevSecOps обычно не сразу переходят на эту позицию. Ваша самостоятельная подготовка не гарантирует мгновенного трудоустройства. Лучше всего приобретать опыт в сфере ИТ на должности, связанной с программированием, системным администрированием или кибербезопасностью. За этот период вы сможете получить навыки, который пригодятся на позиции инженера DevSecOps.
Инструменты, которые применяются для реализации подхода DevSecOps
Чтобы успешно работать с командами DevOps, инженеру DevSecOps необходимо досконально разбираться в популярных языках программирования.
Инженер DevSecOps может также использовать следующие инструменты:
- Codacy – средство статического анализа кода, которое помогает автоматически выявлять и устранять проблемы безопасности, дублирование, нарушения стиля и потери покрытия при каждой фиксации и pull request непосредственно из рабочего процесса Git;
- SonarQube – инструмент автоматической проверки кода для обнаружения ошибок и уязвимостей. Он интегрируется с процессами групп разработчиков, чтобы предоставить им возможность непрерывной проверки кода во всех ветвях проекта и pull request;
- Acunetix – универсальный сканер безопасности веб-сайтов, который помогает разработчикам находить уязвимости на ранних стадиях;
- GitLab – веб-платформа DevOps, которая предлагает готовую цепочку инструментов CI/CD в одном приложении. Она поддерживает сотрудничество между командами разработки, безопасности и эксплуатации, помогает им ускорить доставку и устранить уязвимости безопасности без замедления конвейера CI/CD за счет снижения сложности инструментальной цепочки;
- Aqua Security экономит время, обеспечивая безопасность контейнеров. Aqua Container Security Platform предоставляет полные средства управления SDLC для защиты контейнерных приложений, которые работают локально или в облаке, а также в Windows или Linux. Платформа поддерживает различные среды оркестровки.
Для инженеров DevSecOps важно дополнительное знакомство с популярными инструментами CI/CD:
Обязанности и карьерные перспективы специалиста DevSecOps
Специалисты DevSecOps часто должны презентовать результаты тестов и созданные программы другим специалистам. В конечном итоге они несут ответственность за безопасность цифровых активов компании посредством мониторинга, программирования, тестирования и обмена данными.
Отвечая за циклы разработки в режиме интеграции и непрерывного развертывания, инженеры DevSecOps могут выполнять следующие обязанности:
- Мониторинг процессов;
- Анализ рисков;
- Управление происшествиями;
- Тестирование, выбор и внедрение технологий, инструментов и методов работы;
- Автоматизация контроля безопасности;
- Обслуживание систем, а также внешней и внутренней компьютерной сети компании;
- Контроль и управление охранными операциями;
- В более широком смысле инженеры DevSecOps участвуют в создании культуры безопасности внутри компании, поддерживая различные команды и клиентов во внедрении передовых методов защиты.
Если вы мечтаете стать инженером DevSecOps, начать карьерный путь стоит с позиции специалиста по информационной безопасности, а затем углубиться в изучение методологии DevOps.
Полезные ресурсы для самообучения
Книги
Безопасность разработки в Agile-проектах. Белл Лаура, Брантон-Сполл Майкл
Agile остается наиболее распространенной методологией разработки ПО, но она плохо интегрируется с традиционными методами управления безопасностью. Большинство профессионалов в области безопасности не разбираются в гибкой разработке. Чтобы помочь преодолеть разрыв между двумя мирами, в этом практическом руководстве представлены несколько инструментов и методов безопасности, специально адаптированных для интеграции с гибкой разработкой.
Книга знакомит читателей с принципами безопасности для специалистов-практиков и принципами Agile. Авторы также раскрывают проблемы, с которыми они столкнулись на собственном опыте, и рассказывают о секретах их решения.
Безопасный DevOps. Эффективная эксплуатация систем. Джульен Вехен
Книга «Безопасный DevOps» исследует, как методы DevOps и безопасности должны применяться вместе. В ней рассматриваются новейшие практики, используемые для защиты веб-приложений и их инфраструктуры, а также методы интеграции безопасности в программные продукты. Вы узнаете об основных концепциях DevOps, таких как непрерывная интеграция (CI), непрерывная доставка (CD) и инфраструктура как услуга (IaaS).
Из книги вы узнаете, как реализовать безопасность для веб-приложений, облачной инфраструктуры и уровней конвейера доставки. На практических примерах изучите основные аспекты безопасности: блокирование атак, обнаружение мошенничества, облачную криминалистику и реагирование на инциденты. В заключительных главах рассматривается оценка рисков, моделирование угроз и непрерывная безопасность.
Видео
Страх и ненависть DevSecOps / Юрий Шабалин (Swordfish Security)
Доклад Chief Security Architect Юрия Шабалина на конференции DevOpsConf, который посвящен проблемам перехода от классической модели Application Security к процессу DevSecOps.
Юрий рассказал, как правильно подойти к встраиванию процесса безопасной разработки в процесс DevOps и как при этом ничего не сломать. Эксперт разъяснил основные этапы тестирования на безопасность, какие инструменты можно применять, чем они отличаются и как их правильно настроить. Кроме того, он раскрыл подводные камни, которые встречаются в любом процессе, и рассказал, как их избежать или хотя бы подготовиться к столкновению.
Эксперты компании «Инфосистемы Джет» Антон Гаврилов и Александр Краснов на вебинаре рассказали о том, какие технологии используются в DevSecOps, зачем они нужны и как правильно их встроить в автоматизированный конвейер разработки.
Подробно обсуждались следующие темы:
- видение современного ИТ в крупной компании – фреймворк ключевых элементов;
- обзор ключевых элементов DevSecOps Toolchain: что делает каждое решение;
- автоматизация ИБ: на что обращать внимание при выборе технологий;
- DevOps и DevSecOps контур: автоматизация и защита разработки;
- onboarding: базовые советы при интеграции ИБ-решений в pipeline.
КИБЕРБЕЗОПАСНОСТЬ и DevSecOps / Хакеры НЕ ПРОЙДУТ! / Product Director Positive Technologies
Интервью с Products Director компании Positive Technologies Денисом Кораблевым на YouTube-канале АйТиБорода.
Эксперт рассказал, как принципы кибербезопасности внедряются в процесс разработки, предотвращают атаки хакеров и помогают программистам делать действительно качественный код. Также он поделился собственным опытом использования концепций DevSecOps: SSDL, SCA, NVD, DAST, SAST, RASP.
Life of a DevSecOps Engineer (w/ Aras "Russ" Memisyazici)
Инженер DevSecOps и облачный архитектор с более чем тридцатилетним опытом работы в сфере ИТ и кибербезопасности поделился своими знаниями:
- об облачных рисках;
- о будущем облачных технологий;
- мыслями о киберсертификации;
- личным опытом в области кибербезопасности.
Хочу научиться программировать с нуля, но не знаю, с чего начать. Что делать?
Можно учиться самостоятельно (долго) или пойти на курсы с преподавателями (быстро). Плюс нужно учитывать, что джунов много, конкуренция выше и работодатели повышают порог вхождения при найме на работу. Чтобы получить актуальные знания, мы в proglib.academy запустили курсы:
- Основы программирования на Python.
- Профессия Python-разработчик.
- Алгоритмы и структуры данных.
- Математика для Data Science.
- Профессия Data Science.
- Frontend Basic: принцип работы современного веба.
- Профессия Фронтенд-разработчик.
- Обработка естественного языка. Полный курс.
На подходе еще больше 10 курсов для взрослых и детей.