Многие продуктовые команды и заказчики понимают важность требований по безопасности и преимущества подхода Shift-Left Security, но как быстро вовлечь разработчиков в процессы SSDLC и показать принцип действия самых актуальных уязвимостей, угрозы и практики безопасной разработки?
Сергей Волдохин, директор по продуктам
Наш заказчик — технологическая компания, развивающая сервисы, которые помогают миллионам людей решать повседневные задачи онлайн.
В компании работает больше 10 000 сотрудников, которые ведут 200 технологичных проектов. Продуктами компании пользуются 100 миллионов человек: общаются и обмениваются контентом, продают и покупают товары, обучаются и ведут бизнес.
Для репутации компании критически важно обеспечить максимальную защищенность пользовательских данных и безопасность собственных продуктов и инфраструктуры.
В продуктовых командах работает больше половины сотрудников компании — порядка 6 000 человек, однако на них приходится всего 14 AppSec специалистов. Они активно помогают продуктовым командам, но времени на все запросы у них не хватает.
В таких условиях важно, чтобы члены продуктовых команд — архитекторы, разработчики, аналитики, тестировщики, инженеры и менеджеры — хорошо разбирались в современных угрозах, были мотивированы и способны делать продукты безопасными.
Однако до недавнего времени архитекторы, разработчики и другие члены продуктовых команд активно не интересовались вопросами безопасности собственных продуктов, не считали это своей задачей и не имели мотивации разбираться в этом.
Заказчику важно было мотивировать продуктовые команды заниматься вопросами безопасности и показать, что именно от их квалификации зависит, будут ли защищены данные 100 миллионов человек.
ЗадачиЧтобы мотивировать продуктовые команды, научить их самостоятельно принимать правильные решения и писать защищенный код, нужно было:
Вовлечь сотрудников в процессы безопасной разработки: от дизайна требований до релиза, разбора возможных ошибок и скорейшего устранения уязвимостей в продуктивных системах и сервисах.
Связать у команд понятия качество и безопасность кода. На конкретных примерах продемонстрировать, какие проблемы возникают, если продукты не надежны, а код содержит уязвимости.
Объяснить командам разработки, для чего столько ресурсов тратится на выплаты по программе Bug Bounty, пентесты, оценку защищенности и другие мероприятия по безопасности.
Показать разработчикам принцип действия самых актуальных уязвимостей, угрозы и практики безопасной разработки, которые позволяет предоставлять клиентам безопасные продукты и сервисы. Повышая таким образом доверие, активность и вовлеченность.
Вместе с заказчиком мы провели обучение и запустили процесс интерактивных тренировок по практической безопасности на базе продукта Start CTF
Эксперты команды Start X вместе с представителями заказчика провели вводный семинар, на котором 300 человек — команда наиболее критичного продукта, — узнали об актуальных угрозах и реальных уязвимостях современных веб-приложений и платежных сервисов:
Атаки на цепочку поставок.
Безопасная работа с зависимостями в коде.
Уязвимости округления и конвертации в платежных приложениях.
IDOR и другие методы раскрытия информации.
Двухфакторная аутентификация / rate limiter.
Атаки и принципы безопасной разработки для прочих, актуальных и массовых уязвимостей: XSS, CSRF, приватность/IDOR.
Вовлечь продуктовые команды в вопросы практической безопасности получилось с помощью интерактивного SaaS-тренажера — Start CTF (Capture the Flag).
Тренажер был оформлен как действующий интернет-банк, в котором в течение месяца участники искали и эксплуатировали уязвимости класса XSS, Sql-inj, XXE, обходили OTP/rate limiter, выявляли CSRF, IDOR, а также проводили имитированные атаки на цепочки поставок, выявляли и эксплуатировали уязвимости округления/конвертации, а также находили ряд уязвимостей этапа RECON — таких, которые используют хакеры на этапе подготовки к атаке.
На итоговом вебинаре эксперты Start X вместе с представителями команды безопасности заказчика наградили победителей, разобрали наиболее опасные уязвимости и методы их эксплуатации, обсудили практические меры по защите приложений и ответили на вопросы продуктовой команды.
В результате разработчики, QA- и DevOps-инженеры, аналитики и тестировщики увидели свои продукты глазами хакера и на практике узнали, как современные уязвимости используются для взлома реальных систем. Каждому участнику стало понятно, насколько важно применять правила безопасной разработки к своим системам и продуктам.
Результаты300 сотрудников — членов продуктовой команды крупнейшей российской технологической компании получили практические навыки по выявлению самых опасных уязвимостей в современных приложениях и на собственном опыте узнали, почему важно выполнять требования по безопасности.
В результате:
Повысилась вовлеченность и качество общения между членами продуктовых команд и экспертами по безопасности — коллеги чаще обращаются к командам безопасности за советом и интересуются вопросами безопасной разработки.
Члены продуктовых команд почувствовали себя теми, кто на практике может находить и исправлять самые опасные уязвимости из всех, что существуют в современных приложениях.
Команда мотивирована уделять внимание вопросам безопасности — коллеги чувствуют свою ответственность за качество и защищенность своих продуктов и хотят делать защищенные приложения, которые не сможет взломать реальный хакер.
Успешно пройден аудит PCI DSS в одном из подразделений, которое отвечает за обработку платежных данных — коллеги смогли ответить на все вопросы аудиторов, подтвердили экспертизу и квалификацию продуктовой команды по безопасности.
Ценность полученных результатов подтверждают отзывы участников:
«Первый раз в таком учавствую. Очень крутой опыт. Время потратил точно не зря».
«Сразу видно направления мыслей и знаний, какие-то пробелы, внимательность, известный и используемый инструментарий для решений. Все задания в рамках компетенций нормального разработчика».
Записи и материалы семинаров уже доступны всем продуктовым командам.
Позитивная обратная связь от продуктовых команд позволила более системно подойти к управлению знаниями продуктовых команд, а именно – запустить процесс регулярного обучения и тренировки практических навыков по безопасной разработке с помощью