Start EDU — платформа, которая помогает командам разработки научиться писать код без уязвимостей. Учебные модули подбираются автоматически на основе знаний разработчиков и характеристик продукта, над которым они работают. Интеграция с Jira помогает встроить обучение в рабочий процесс.
- Введение
- Описание Start EDU
- Отличия Start EDU от обычных онлайн-курсов
- Как устроено обучение
- Темы обучающих юнитов Start EDU
- Какие языки программирования поддерживаются
- Дополнительные возможности продукта Start EDU
- Как продуктовой команде подбирается курс
- Как внедрить Start EDU в работу команды
- Оценка знаний, которые получил разработчик
- Выводы
Введение
Продуктовым командам важно думать об информационной безопасности уже на этапе проектирования архитектуры и написания кода, потому что стандартные инструменты вроде SAST или DAST не могут выявить все потенциальные уязвимости и в любом случае делают это слишком поздно — когда код уже написан.
Разрешить это противоречие может обучение безопасной разработке. Но классические курсы не «заточены» под задачи продуктовых команд, само обучение — неструктурированное и скучное, а главное — непонятно, как оценить его эффективность.
Чтобы решить эту проблему, команда Start X (бывший «Антифишинг») выпустила продукт Start EDU. Это платформа интерактивного обучения, которая поможет продуктовым командам писать код без уязвимостей, а специалистам по безопасности приложений — кратно снизить риски компрометации систем и клиентских данных.
В обзоре мы подробнее рассмотрим, как устроена платформа Start EDU.
Описание Start EDU
Start EDU помогает разработчикам научиться писать безопасный и качественный код с минимальным отвлечением от рабочих задач.
Как это работает:
- Система проверяет навыки каждого разработчика через тестирование и автоматически составляет карту его компетенций.
- Руководитель продуктовой команды заполняет анкету, в которой указывает характеристики создаваемого ПО и распределяет разработчиков по командам.
- На основе этих данных платформа автоматически подбирает обучающие модули под уровень знаний разработчика и его рабочие проекты.
Отличия Start EDU от обычных онлайн-курсов
Есть несколько особенностей, которые отличают обучение в Start EDU от типовых курсов по безопасной разработке.
Учебные модули построены исходя из проектных задач каждого разработчика в команде. Основная цель — минимизировать количество времени и сил, которые разработчик потратит на обучение. Для этого в обязательных учебных модулях должна быть только та информация, с которой разработчик сталкивается в своей реальной деятельности.
Прежде чем подобрать курс, платформа тестирует имеющиеся знания и навыки разработчика, а также анализирует характеристики ПО, с которым он работает в команде. После этого ему автоматически подбираются модули, которые нужно пройти в первую очередь, чтобы закрыть эти потребности.
Так можно избежать классического подхода к обучению, когда на всех разработчиков компании массово назначается одинаковый набор курсов, но в реальной работе они не знают, как сделать продукт безопасным.
Рисунок 1. Процесс разработки, в котором обучение по безопасности не учитывает специфики проектов
Теория основана на экспертных знаниях и практике. Теория в обучении — всегда проблемная часть, потому что информация обычно не привязана к реальной работе специалистов и даёт только поверхностное понимание изучаемой темы. В Start EDU решили эту проблему: на основе личной карты компетенций разработчика платформа предложит ему учебные модули, информацию из которых он сразу сможет использовать в своих рабочих проектах. При этом каждый теоретический блок даёт полную информацию по изучаемой теме.
Например, если говорить о безопасной работе с зависимостями, то в учебном модуле будет не общая теория, а конкретные кейсы, которые показывают векторы угроз для разработчиков, имеющих дело с этими зависимостями. Платформа учитывает реальный контекст и старается понятными разработчику терминами и ситуациями описывать эту уязвимость.
Рисунок 2. Пример теории из учебного модуля по безопасной работе с зависимостями
После теоретической части разработчик проходит тест (квиз) на реальных примерах, чтобы проверить свои знания.
Рисунок 3. Процесс разработки, в котором обучение по безопасности учитывает специфику проектов
Как устроено обучение
Каждый курс состоит из тем (юнитов) с актуальной теорией, обязательными примерами из реальной среды и проверочными заданиями, которые основаны на историях уязвимых приложений.
Юнит — это специальный формат обучающего контента, который используется на платформе. Юниты написаны и построены таким образом, что будут полезны и интересны любому разработчику — специалисты сами выбирают, какие разделы изучать, в зависимости от своего уровня.
Рисунок 4. Процесс создания юнита на платформе
Среднее время прохождения юнита:
- Теория — 30–60 минут.
- Квиз — 10–15 минут, 3–5 заданий.
- Практика — 15–25 минут.
Теоретическая часть описана «общим» языком, который понятен любому разработчику. В ней есть разделы «Зачем этот курс», «Как происходит атака». В разделах, где приводятся примеры кода, разработчики могут выбрать тот язык, на котором они хотят увидеть пример, и затем использовать полученные знания в работе.
Квизы с проверочными вопросами, как и теория, основаны на реальных примерах. Примеры доступны на восьми языках.
Рисунок 5. Пример проверочного вопроса в квизе
В практике разработчикам нужно выполнять задания на поиск уязвимостей в приложениях — выбрать правильные варианты реализации защиты.
Рисунок 6. Задание на поиск уязвимостей в приложении в формате ревизии кода (код-ревью)
Темы обучающих юнитов Start EDU
В курсе 11 модулей, они охватывают основные темы по информационной безопасности:
- Защита от подделки межсайтовых запросов (CSRF).
- Работа с идентификационными файлами (cookie) и HTTP-заголовками.
- Защита от атак на XML-серверы (XXE).
- Кодирование и экранирование при работе с браузерами (XSS).
- Предотвращение манипуляции именами файлов и каталогов (Path Manipulation).
- Безопасная работа с зависимостями в коде.
- Работа с SQL.
- Предотвращение небезопасного прямого доступа (Insecure Direct Object Reference).
- Обработка входных данных.
- Работа с секретами (пароли, ключи, токены).
- Безопасная настройка Kubernetes.
Какие языки программирования поддерживаются
Start EDU даёт актуальную теорию и практику на 7 языках программирования (Java, Python, PHP, SQL, C#, Go, JavaScript) и на языке разметки HTML.
Дополнительные возможности продукта Start EDU
- Масштабируемость на любое количество пользователей.
- Назначение баллов пользователю за пройденное обучение.
- Создание, добавление и назначение собственных обучающих материалов.
Как продуктовой команде подбирается курс
Шаг 1. Оценка знаний и навыков
Start EDU выявит навыки разработчиков через тестирование и автоматически составит матрицу их компетенций. Это позволит понять, что люди умеют, знают и понимают в безопасной разработке сейчас.
Знания проверяются с помощью бесплатного публичного теста Security Champion, который основан на базе реальных кейсов по взлому приложений. В тесте 20 заданий по пяти темам, по каждой из них разработчик получает оценку.
Рисунок 7. Личная карта компетенций сотрудника
Шаг 2. Определение характеристик продукта
Руководитель (тимлид) заполняет анкету приложения, которым занимается его команда. На основе этой анкеты строится карта архитектуры продукта, по которой станет понятно, что сейчас важнее всего изучить разработчикам.
На этом этапе можно добавить всех пользователей на платформу через Active Directory и распределить их по проектам.
Рисунок 8. Карта архитектуры продукта, построенная на основе заполнения анкеты
Шаг 3. Автоматический подбор обучающих модулей на основе знаний разработчиков и характеристик продуктов
После тестирования разработчиков и картографирования архитектуры продукта Start EDU автоматически подбирает обучающие модули. Какие-то из них будут обязательными для этого проекта, какие-то — факультативными. В результате получится понятный план по обучению на основе реальных проектов продуктовой команды.
Как внедрить Start EDU в работу команды
Есть несколько способов внедрить Start EDU так, чтобы это помогало решать реальные задачи безопасности.
Интеграция с Jira. На этапе разработки, когда уже есть команда и она делает функции продукта, платформа может назначить обучение через Jira как задачу. В этом случае обучение выглядит не как внешнее дополнительное поручение, а как обычная рабочая задача, которую нужно закрыть.
Ускоренное прохождение точек проверки (security gate). Во время релиза код проверяют сканеры — по их отчётам специалист по безопасности понимает, какие потенциальные уязвимости в коде нужно исправить. Отчёт может состоять из десятков замечаний, которые программист должен взять в работу. Проблема — в том, что сканирование только указывает на замечания, не всегда понятно, как их исправить. На этом этапе можно подключить Start EDU: платформа получит замечания, проанализирует их и даст рекомендации, как их исправить и что нужно изучить по теме.
Подход «сдвиг влево» (shift left security). Start EDU можно внедрить уже на этапе требований к команде продукта. Допустим, команда будет делать мобильное приложение. Тогда уже известны потенциальные релевантные векторы угроз и платформа на раннем этапе сможет назначить обучение, чтобы разработчики понимали, как делать те или иные вещи в контексте безопасности. Это позволит на ранних этапах выявлять угрозы и уязвимости.
Оценка знаний, которые получил разработчик
В Start EDU можно отслеживать статус обучения по проектам, командам и разработчикам в настоящем времени.
Как это выглядит, показано на иллюстрациях далее.
Рисунок 9. Личная карта компетенций
Рисунок 10. Проектная карта компетенций
Рисунок 11. Рейтинг сотрудников
Карты компетенций и рейтинг сотрудников показывают, кто и с какими результатами проходит обучение. Также с их помощью можно узнать, в каких вопросах больше всего проблем с точки зрения обучения, какие темы проседают, и на этом основании, к примеру, назначать код-ревью.
Ещё один способ проанализировать результаты обучения — провести входное и выходное тестирование с помощью бесплатного публичного теста Security Champion. Можно брать случайную выборку сотрудников, замерять их результаты в начале обучения и в его конце. Так команды безопасности наглядно увидят, каков прогресс у разработчиков и в каких темах они углубили свои знания.
Всё это повышает культуру безопасности и учит писать качественный и безопасный код.
Выводы
На новой платформе Start EDU обучение становится для разработчиков интересным, эффективным и применимым на практике. Это возможно благодаря следующим особенностям:
- Обучение проводится с учётом специфики проекта и продукта.
- Прохождение курса встраивается в рабочие задачи команды.
- Практика учитывает разные языки программирования.
- После обучения можно оценить компетенции команды и каждого разработчика по отдельности.
Получить демонстрацию Start EDU для своей команды можно по запросу на сайте вендора.
Реклама. Рекламодатель ООО «Антифишинг», ИНН 6950191442, ОГРН 1166952058680
LdtCKBgUy