Время перемен: зачем обучать программистов навыкам информационной безопасности
Компании, как правило, не знают уровня квалификации своих программистов в области ИБ, потому что оценить его на собеседовании очень сложно. При этом тренд shift-left подсказывает, что работодателям нужно менять подходы к безопасности в разработке. Это поможет обнаружить уязвимости ещё на этапе проектирования. В своей статье Эдвард Вайот (Edouard Viot), CTO Symbiotic Security, рассказывает, почему нужно обучать разработчиков принципам безопасного кодирования с первого дня работы.
Эдвард Вайот (Edouard Viot) — CTO и сооснователь компании Symbiotic Security. Работает в сфере кибербезопасности 16 лет, специализируется на безопасности веб-приложений. Создатель инновационной технологии Workflow as Code (WfaC), в которой описывает оптимальную политику безопасности для компаний.
5 уровней безопасности кода
Знания и развитие инженеров-программистов в области информационной безопасности можно условно поделить на пять категорий:
- Понимание — знает, почему уязвимость является проблемой, осознаёт последствия и каскадные эффекты уязвимостей.
- Создание — пишет код без уязвимостей.
- Информирование — доносит до команды важность безопасного кодирования через привлечение внимания к критическим аспектам и через обучение.
- Руководство — разрабатывает и внедряет стратегию кибербезопасности на уровне команды.
- Наставничество — внедряет культуру безопасности в масштабе всей организации.
Эти уровни позволяют оценить, насколько эффективно применяются знания по безопасности в работе, и отследить прогресс разработчика.
Безопасность кода: из точки А в точку В
На сегодняшний день только крупные и зрелые компании учитывают наличие опыта у кандидата в кибербезопасности. Чаще всего работодатель считает, что это навыки, которым можно обучить, но которые не обязательны для разработчиков. Поэтому для начала нужно определить, на каком уровне сейчас находятся инженерные команды.
В таблице показано, насколько глубоко погружаются в вопросы кибербезопасности разработчики в зависимости от грейда.
Точка А: текущий уровень безопасности кода у разработчиков.
Сегодня доступны различные инструменты для безопасной разработки, например: сканеры безопасности кода, инструменты для тестирования для управления уязвимостями и так далее. Они совместимы с большинством популярных языков программирования и позволяют быстро находить слабые места. Также благодаря этим инструментам компании могут довольно быстро увидеть прогресс в развитии их сотрудников. Вот как должна работать идеальная схема:
Точка В: желаемый уровень безопасности кода у разработчиков.
Выводы: для чего развивать навыки разработчиков в кибербезопасности
Учитывая нехватку специалистов по кибербезопасности на рынке и постоянно увеличивающееся количество рисков, внедрение инструментов для безопасной разработки становится для компаний необходимостью.
А главное, достичь прогресса в ИБ-навыках разработчиков можно без потери их производительности: обучение будет адаптировано к текущим задачам и интегрировано в среду разработки (IDE), в которой они работают каждый день.
Такие инструменты практически полностью устраняют необходимость в исправлении кода, а значит, позволяют сократить жизненный цикл разработки ПО (SDLC) и ускорить рабочие процессы. Чем раньше появляются актуальные требования, тем дешевле и быстрее их выполнить и исключить предпосылки появления уязвимостей.
Подход shift-left — основная причина, почему знания о безопасной разработке становятся обязательными даже для начинающих программистов.
Когда ответственность за безопасность кода всё больше смещается на разработчиков, компаниям важно предоставлять им необходимые инструменты и ресурсы для поиска уязвимостей, обучать принципам безопасного кодирования, расширять и улучшать существующие процессы разработки.
Чек-лист: как достичь максимума безопасности в разработке
- Объясните разработчикам на практических примерах, почему безопасность важна и зачем им нужно ей заниматься.
- Создайте внутренний Security-портал, который будет единой точкой входа по любым вопросам безопасности.
- Чтобы вовлечь разработчиков, регулярно проводите интерактивные курсы с актуальными материалами и захватывающими задачами.
- Создайте и поддерживайте в актуальном состоянии базу знаний по безопасной разработке, отвечающую на все ключевые вопросы.
- Проводите онлайн-тренинги с глубокими видеолекциями и практическими заданиями для продвинутых пользователей.
- Организуйте митапы для единомышленников по самым актуальным темам. Приглашайте для обмена опытом не только участников вашей команды, но и партнёров и даже конкурентов.
- Проводите соревнования с заданиями по информационной безопасности.
- Вовлекайте сотрудников и создавайте внутреннее сообщество.
- Поощряйте всех, кто участвует, призами, особыми званиями, внеплановыми мероприятиями и выходными. Всё это мотивирует и заставляет двигаться дальше!