Журнал "Information Security/ Информационная безопасность" #5, 2020

Анализ 3 защищенности веб-приложе- ний, проведенный нами в этом году, показал, что каждая пятая уязвимость имеет высокий уровень риска. Эксплуа- тация таких уязвимостей может привести к краже важных данных, временным простоям или полному выводу системы из строя. Все это – серьезные финансо- вые и репутационные риски для любой компании. Раннее выявление уязвимо- стей, во-первых, минимизирует пере- численные риски, а во-вторых, эконо- мически выгоднее, чем их устранение на более поздних стадиях разработки. Согласно исследованию Applied Soft- ware Measurement, Capers Jones, исправ- ление ошибок на этапе написания кода обойдется компании до $10, а вот за их устранение на этапе эксплуатации ПО компания заплатит уже свыше $10 000. Эти цифры с каждым годом будут только расти. Приходится соглашаться с тем, что в качественном соотношении пред- ставленная картина и в будущем сохра- нит свою актуальность (см. рис. 1). По данным GBKSoft 4 , в среднем раз- работка одного приложения занимает 4,5 месяца, такие темпы не позволяют выделить время на выявление всех уязвимостей вручную. Для обеспечения высокого уровня защищенности прило- жений компаниям необходимо построить процесс безопасной разработки, который включает применение не только техно- логий, но и ряда организационных мер. Разберем, как перейти на SSDL на примере работы одной ИT-компании. Кто созрел для SSDL Мы построили процесс безопасной раз- работки с нуля, последовательно внедрив его ключевые компоненты, в том числе периодическое проведение как ручного, так и инструментального анализа защи- щенности приложения, встраивание авто- матизированного поиска уязвимостей в конвейеры сборки, разработку доку- ментации, проведение обучения разра- ботчиков, консультирование по выявлен- ным проблемам. Наш клиент – крупная ИT-компания, занимающаяся разработкой ПО по заказам более 20 лет. В команду входят свыше 1 тыс. сотрудников. Помимо внешних, заказных проектов, организация развивает и свои внутренние решения – обучающие программы для персонала, HR-инструменты, корпоративный портал. Нельзя сказать, что до нашего проекта компания не заботилась о безопасности: команда проверяла код вручную, периоди- чески проводила тестирования на проник- новение, но этого явно не хватало, проверки проводились нерегулярно и не были частью процесса разработки. Как следствие, в коде появлялись уязвимости, в том числе крити- ческие. Эти ошибки обнаруживались уже после внедрения приложения, и для их исправления было необходимо выделять дополнительные ресурсы, что вело к про- стоям в разработке новых проектов. Первый помощник в SSDL – анализатор кода Анализаторы кода помогают найти типичные ошибки, которые допускают программисты, проводя множество рутинных проверок. Это снижает нагруз- ку на команду разработки. Внедрение анализатора кода стало для нас задачей первой важности. Поскольку в проектах клиента уже использовались практики CI/CD 5 , необходимо было интег- рировать его в действующие процессы. Мы провели тщательную подготовку и начали строить решение на базе нашего анализатора кода PT Application Inspector. Командная работа и security champions В современных компаниях, занимающихся разработкой ПО, специалистов по ИБ, как правило, на один-два порядка меньше, чем разработчиков. Кроме того, работа сотруд- ников ИБ-отделов не сводится к одному только анализу кода. Выходом из этой ситуа- ции может стать концепция Security Champion 6 , 52 • ТЕХНОЛОГИИ Как перейти на безопасную разработку: история одного проекта среднем на одно приложение приходятся 1 22 уязвимости, при этом 82% уязвимостей содержится в исходном коде, а устранить их можно было бы еще на самых ранних этапах создания приложения. Такой подход называется безопасной разработкой (SSDL, SDL, SDLC 2 ). Почему анализ безопасности кода необходим бизнесу и как организовать SSDL-процесс на предприятии, разберем на примере проекта ИТ-компании, которая занимается заказной разработкой ПО. В Алексей Жуков, эксперт отдела систем защиты приложений, Positive Technologies Рис. 1. Стоимость устранения уязвимостей в коде в зависимости от этапа разработки 1 https://www.ptsecurity.com/ru-ru/research/analytics/web-vulnerabilities-2020/ 2 Процесс, обеспечивающий возможность поддержки необходимого уровня безопасности создаваемой системы как на этапе разработки, так и в ходе эксплуатации. Ключевыми аспектами этого подхода является обеспечение безопасности приложения, идентификация рисков и управление ими. 3 https://www.ptsecurity.com/ru-ru/research/analytics/web-vulnerabilities-2020/ 4 https://gbksoft.com/blog/how-long-does-it-take-to-develop-a-web-app 5 Continuous Integration & Continuous Delivery, CI/CD – комбинация непрерывной интеграции и непрерывной доставки или непрерывного развертывания. 6 Человек в команде разработки, являющийся “точкой входа" в команду разработки в вопросах, относящихся к безопасности продукта, и напрямую заинтересованный в ней. При этом он не только пользователь технических средств обеспечения безопасности кода, он должен способствовать повышению общего уровня экспертизы команды в соответствующих вопросах, проводить тренинги, CTF и консультации.

RkJQdWJsaXNoZXIy Mzk4NzYw