Start EDU: как научить 6 тысяч разработчиков писать безопасный код

Image: Unsplash
Многие продуктовые команды и заказчики понимают важность требований по безопасности и преимущества подхода Shift-Left Security, однако в рабочей рутине могут не учесть критичные требования или не разобраться, как правильно их реализовать с учетом специфики своего продукта.
Сергей Волдохин, директор по продуктам Start X, рассказал, как крупная российская ИТ-экосистема внедрила обучение безопасной разработке в свои процессы на базе платформы Start EDU, и как это помогло продуктовым командам сократить число уязвимостей, время на триаж, доработки по требованиям безопасности и ускорить Time To Market.
Дано
Наш заказчик — технологическая компания, сервисы которой помогают 100 миллионам человек решать повседневные задачи онлайн.
В компании работает больше 10 000 сотрудников, среди которых — порядка 6 000 разработчиков и членов продуктовых команд. Они ведут 200 технологичных проектов и делают продукты, с помощью которых люди общаются и обмениваются контентом, продают и покупают товары, обучаются и ведут бизнес.
Для репутации заказчика критически важно обеспечить максимальную защищенность пользовательских данных и безопасность собственных продуктов и инфраструктуры.
В таких условиях важно, чтобы члены продуктовых команд — архитекторы, разработчики, аналитики, тестировщики, инженеры и менеджеры — хорошо разбирались в современных угрозах, были мотивированы и способны делать продукты безопасными.
До недавнего времени команды активно не интересовались вопросами безопасности собственных продуктов, считали это задачей коллег, отвечающих за безопасность и не имели мотивации самостоятельно разбираться в этом.
Отношение продуктовых команд удалось поменять после запуска процесса тренировок по практической безопасности на базе продукта Start CTF.
Многие разработчики и инженеры после этого стали запрашивать «продвинутое, экспертное» обучение, чтобы разобраться, как вести разработку безопасно на своих проектах и в продуктах.
В компании уже проводилось обучение сотрудников по вопросам безопасной разработки, но его оказалось недостаточно, потому что:
- обучение было массовым и затрагивало общие темы безопасности с фокусом на уязвимости, без привязки к бизнес-задачам, специфике проектов и продуктов;
- в обучении не давалось конкретных примеров безопасной, правильной реализации нужного функционала, с учетом специфики задач и стека, в котором работает команда;
Такое обучение не было интересным и не помогало формировать экспертизу и практические навыки у продуктовых команд.
Задача
Для заказчика было важно научить продуктовые команды писать код без уязвимостей и помочь команде безопасности внедрить процесс безопасной разработки, который позволит:
- продуктовым командам самостоятельно находить уязвимости и правильно исправлять их в коде своих приложений;
- разбирать и устранять замечания, полученные с Quality Gate;
- повысить культуру безопасной разработки и воспитать Security Champion-ов — сотрудников продуктовых команд, которые помогут создавать защищенные продукты своим коллегам.
Решение
Для обучения продуктовых команд заказчик выбрал платформу Start EDU, которая устанавливается в собственной инфраструктуре, интегрируется с процессами безопасной разработки и позволяет:
- Распределить сотрудников по командам, согласно их текущим проектам и задачам.
- Определить характеристики продуктов, над которыми работает каждая команда.
- Назначить релевантное обучение, основываясь на характеристиках продуктов и соответствующих угрозах безопасности.
- Отслеживать прогресс обучения по проектам, продуктам или отдельным сотрудникам.
Платформа помогает разработчикам научиться писать безопасный и качественный код с минимальным отвлечением от рабочих задач.
Обучение с учетом специфики проекта и продукта
Платформа определяет текущие знания и навыки разработчика и автоматически предлагает обучающие модули под конкретный проект, продукт и квалификацию сотрудника.
Автоматизация становится возможной на основе требований и характеристик систем — продуктов и проектов, над которыми работают команды. По ним формируется карта проекта, учитывается, какая система разрабатывается, какие внешние модули используются.
Благодаря этому обучение становится прикладным и разработчик изучает темы, нужные в работе над его проектом или продуктом.
Интерактивный и практический формат обучения
Юниты — это специальный формат, который используется в платформе и помогает объяснить сложные технические вопросы, связанные с работой приложений, возможными уязвимостями и практиками безопасной разработки.
Юниты содержат теорию, проверочные задания и практику. Сотрудники обучаются на реальных примерах кода с особенностями на разных языках программирования и конкретных кейсах.
Пример юнита «Защита от подделки межсайтовых запросов»
Пример юнита «Защита от подделки межсайтовых запросов»
Пример практического задания с выбором корректной защиты кода
Отчетность в реальном времени
В Start EDU тимлид или руководитель команды безопасности отслеживает статус обучения навыкам безопасной разработки по проектам, по командам и по разработчикам.
Результат
Start EDU позволил организовать непрерывное обучение в рамках процессов безопасной разработки.
В этом процессе уже могут участвовать до 6 000 разработчиков, в первую очередь — 20 продуктовых команд, которые отвечают за наиболее критичные продукты.
У каждого сотрудника в каждой команде есть персональная карта с расчетным и ожидаемым уровнем компетенций. Если реальный уровень компетенций ниже расчетного, цветовая индикация на карте помогает увидеть таких сотрудников и назначить им обучение:
Дашборд с рейтингом разработчиков с разбивкой по проектам, ролям и по уровню компетенций в вопросах безопасной разработки
Благодаря такому процессу разработчики реализуют требования по безопасности изначально, при написании кода.
В момент прохождения Quality Gate после первичного обучения уже удалось зафиксировать снижение числа уязвимостей на 20% и соответствующее сокращение времени на триаж, доработки по требованиям безопасности и сокращение Time To Market.
С внедрением обучения кратно снизилось число конфликтов и жалоб со стороны продуктовых команд к командам безопасности — у разработчиков формируется ясное понимание важности требований и того, как именно их нужно реализовывать в своих продуктах.
Сейчас заказчик уже проектирует интеграцию Start EDU с Quality Gate, которая позволит из реальных отчетов об уязвимостях выбирать наиболее актуальные темы и кейсы для последующего обучения продуктовых команд, а также позволит кратно ускорить триаж обнаруженных уязвимостей с помощью квалифицированных разработчиков.
Планируется интеграция Start EDU с внутренней системой корпоративного обучения для создания непрерывного обучающего трека в рамках онбординга новых сотрудников и повышения квалификации тех коллег, которые переходят на новые проекты и продукты.
