IV летняя школа DevOps/DevSecOps. Безопасная разработка
Цель летней школы - онакомление с современными методами и инструментами безопасной разработки приложений, включая технологии непрерывной интеграции и доставки нового кода (Continuous Integration / Continuous Delivery, CI/CD), технологий контейнеризации и оркестрации.
Описание
Современные подходы к безопасной разработке и доставке приложений и обеспечению безопасного жизненного цикла разработки требуют от всех участников процесса понимания механизмов DevOps – операций, поддерживающих совместную разработку, тестирование и внедрение приложений, а так же методов и инструментов безопасной разработки приложений, технологий контейнеризации и оркестрации. К классическим подходам разработки ПО добавились рекомендации и требования, которые на каждом из этапов жизненного цикла разработки обеспечивают проверку на безопасность, обеспечивают целостность итогового приложения, сдвигают процессы выявления уязвимостей программного продукта к этапу проектирования и позволяют интегрировать безопасность во все этапы. Использование современных технологий позволяет автоматизировать процессы подхода безопасной разработки. Активное размещение приложений на облачных платформах требует понимания технологий конкретизации и оркестрации, а так же вопросов безопасности, связанных с ними.
Слушатели получат понимание о современном жизненном цикле безопасной разработки приложений, приобретут навык работы с современными технологиями безопасного тестирования (SAST, DAST) тестирования, сканирования контейнеров и других механизмах безопасности, получат представления о новых вызовах безопасности, связанных с использованием современных технологий. Данная летняя школа может быть рассмотрена как первая ступень, которая обеспечит погружение в вопросы безопасности облачных приложений,
Занятия проводятся в вечернее время, что позволит совместить обучение с работой и другими активностьями
Занятия проводят специалисты от индустрии в области безопасности, devops, оркестрации:
- Алексей Шадрунов, DevOps-инженер, Яндекс, бакалавр по направлению подготовки «Информационная безопасность», НИУ ВШЭ
- Бакин Александр, руководитель группы защиты приложений Департамента консалтинга, Инфосистемы Джет
- Панасюк Евгений - Старший специалист, Отдел безопасности инфраструктуры, Okko
- Елаев Сергей. Разработчик в компании Servicepipe
Содержание
Будут рассмотрены следующие темы:
- Введение в контейнеры.
Рассмотрим технологию контейнеризации, разберём отличия от виртуальных машин. Изучим механизмы ОС Linux, использующихся для контейнеризации, а также разберём, как вручную изолировать процесс.
- Container Runtimes.
Разберём утилиты для работы с контейнерами, их иерархию. Узнаем, в чём отличия между Docker, runc и Podman.
- Безопасность контейнеров.
Разберём защитные механизмы ОС Linux, векторы атак на контейнеризованные приложения. Изучим безопасные практики, позволяющие усилить защиту и изоляцию контейнеров. Рассмотрим (на практике) примеры уязвимостей ядра Linux и рантаймов, которые приводят к побегу из контейнера.
- Введение в DevOps/DevSecOps
На занятии будут рассмотрены основы DevOps в общем и концепции непрерывной интеграции и непрерывного развертывания в частности. Кроме того, будут затронуты вопросы общих проблем, с которыми сталкиваются при использовании принципов DevOps
- Безопасный жизненный цикл разработки
Познакомимся с основными процессами, которые интегрируются в этапы жизненного цикла разработки для повышения качества ПО с точки зрения безопасности.
- Инструменты и безопасный конвейер
Рассмотрим инструменты автоматизированного тестирования безопасности ПО.
Спроектируем конвейер безопасной разработки ПО.
На примере веб-приложения, используя рассмотренные инструменты, оценим премущество подхода БРПО при внедрении в процессы разработки на платформе GitLab.
- Моделирование угроз
На занятии будут рассмотрены общие подходы к моделированию угроз для приложений, а также рассмотрены наиболее популярные модели по оценке угроз и уязвимостей (STRIDE, DREAD, CVSS)
- Фреймворки зрелости процесса
На занятии будут рассмотрены общие концепции безопасной разработки ПО, а также наиболее популярные модели зрелости. Лектор является одним из разработчиков фреймворка DAF, поэтому основной акцент будет сделан именно на нем
- Введение в kubernetes
Обсудим, почему появился Kubernetes, и его роль в эволюции архитектур приложений. Рассмотрим микросервисную архитектуру, контейнеризацию (Docker) и декларативный подход к развертыванию инфраструктуры (YAML). Изучим некоторые возможности ядра Linux (namespaces, cgroups) и базовые компоненты k8s (Master и Worker узлы, kubelet, etcd, API).
- Pod/API
Изучим основы Pod. Что это, зачем нужен, и как его создать вручную с нуля. Познакомимся с основными объектами API k8s: Pod, ReplicaSet, Deployment, StatefulSet, DaemonSet и Job, рассмотрим их предназначение и примеры использования.
- Сеть в k8s
Требования к участникам
Для прохождения летней школы не требуется сверх-навыков и подготовки, мы начинаем с достаточно базовых вещей.
Однако DevSecOps - это тема на стыке разработки, тестирования, администрирования и безопасности, поэтому некоторый бекграунд все же требуется.
Вы должны уметь работать с linux в командной строке и иметь базовые навыки администрирования. Вам придется устанавливать и настраивать необходимые инструмены для devops и работы с контейнерами.
Вы должны иметь базовые навыки разработки на каком то языке и точно должны уметь читать программный код.
Базовые навыки, такие как работа с системой контроля версий (git) и общее представление о gitflow, так же нужны.