В Беларуси всерьез взялись за безопасность приложений. Разработчики используют сканеры, чтобы выявлять уязвимости в коде, тестируют на бреши и даже привлекают багхантеров. Цена ошибки куда выше расходов: каждая пятая утечка на рынке связана с уязвимостями приложений, а «взломанное» ПО вместе с деньгами и репутацией быстро теряет клиентов. Чтобы избежать критических последствий, приложение защищают от взлома задолго до запуска. Руководитель направления построения процессов безопасной разработки в Positive Technologies Светлана Газизова рассказала, как софт готовят к неизбежным кибератакам.
«Небезопасное приложение хорошим быть не может»
— С каких пор безопасность стала критерием качества приложения?
Безопасность приложений была важна и раньше, но сейчас это один из ключевых факторов. Нельзя говорить о позитивном пользовательском опыте без устойчивости системы к кибератакам. Вендоры и разработчики осознали, что без безопасности нельзя заниматься созданием и развитием приложений. Особенно с учетом огромного количества взломов в мире. По нашим данным, 19% утечек произошло как раз из-за уязвимостей в приложениях.
Как только компании сталкивается с подобными атаками, они начинают воспринимать уязвимости как несовершенства, как недостатки самой системы. И тогда безопасность становится критерием качества, которому начинают уделять внимание.
— При этом приложение может быть качественным, но небезопасным…
Такое восприятие бытовало раньше. Красивый интерфейс, удачно расположенные кнопки, полезные функции, быстрая работа – значит, всё нормально. А затем, на фоне роста кибератак, стало очевидно, что если приложение не киберустойчивое, то оно не может быть качественным. Так устойчивость к атакам и взломам стала критерием качества ПО.
— И как это находит отражение в процессе разработки приложений?
— Правила диктует рынок. Заказчики приложений первыми стали требовать от разработчиков уделять внимание вопросам безопасности кода. Ведь первыми, кто пострадает от уязвимого ПО – сами пользователи. Остановка работы в результате атаки и утечки ударят по бизнесу владельца софта, а не подрядчика. Как следствие – сейчас в закупках услуг по разработке ПО можно увидеть, что приложение должно быть проверено разными классами инструментов, иметь подтверждающие безопасность документы.
Более того, важно, чтобы не только версия продукта была устойчива к кибератакам, а чтобы был полностью обеспечен безопасный цикл разработки. В качестве подтверждения этого – все приложения разработчика за последние годы не должны быть скомпрометированы.
«Хуже всего, когда разработчики не могут залатать дырявый софт»
— А раньше компании не заботились о том, чтобы их приложение было безопасным?
— На самом деле заботились, но немного в другом формате. За последние 20 лет разработка стала гибкой. Если раньше техническое задание могли согласовывать два года, и безопасность там, конечно же, была учтена, то сегодня у программистов нет такого количества времени. Разработка значительно ускорилась, поэтому безопасность нужно как-то имплементировать в код.
Здесь правильным решением стало защищать самое критичное приложение, так как злоумышленникам интереснее всегда добраться до чего-то важного, чтобы нанести материальный ущерб. И вот мы начинаем выстраивать систему защиты от самого критичного элемента, которое уже в продакшене, и постепенно ее раскатываем на всю компанию. И это, как правило, быстрый путь.
— Что нужно внедрить в приложение, чтобы оно было безопасным?
— Большинство приложений, которые сейчас находятся в разработке, уже пишутся с учетом требований безопасности. Для этого в них внедряют инструменты, вроде плагинов или линтеров, которые проверяют код на уязвимости и слабые места. Без них сейчас едва ли можно создать безопасное приложение.
Анализаторы кода разберут всё на компоненты и проверят каждый из них. Наличие этих инструментов в процессе создания ПО уже можно назвать гигиеническим фактором.
Важно, чтобы разработчики и специалисты по кибербезопасности знали, как работать с этими инструментами. Иначе те просто покажут, что приложение дырявое, а дальше ничего не будет – все разведут руками и пойдут спать. Вот это наихудший сценарий. Когда инструменты указывают на недостатки, их нужно оперативно устранять – от самых критичных до менее важных.
— Что нужно сделать, чтобы этот механизм был выстроен? Набрать специалистов или найти подрядчика?
— Идеального решения нет. Есть примеры, когда компании пытаются всё делать сами, но у них ничего не получается, а бывает, что и работа с подрядчиком не дает нужного эффекта. Нужна золотая середина: вовлеченность команды разработчиков и внешняя экспертиза.
Без объединения усилий сложно добиться успеха. Мы, например, как дружелюбный, но нацеленный на результат консалтинг заставляем разработчиков вовлекаться. И им, естественно, не нравится. Они говорят: «Зачем? Мы думали, что всё отдали вам». А мы объясняем, что, если не будем делиться опытом, то через полгода вы останетесь с теми же знаниями, что были у вас раньше. И дырявым некачественным кодом. Нужно учиться.
«Внушает уверенность, когда разработчики не боятся багбаунти»
— А кто им говорит, что и как делать с приложением, чтобы его не взломали?
— Positive Technologies предлагает собственный фреймворк, который заточен под разработчиков из России и стран СНГ. Это своего рода методология грамотного построения безопасной разработки, того, как сканеры будут внедряться цикл создания приложение. Потому что можно отвалить много денег за анализатор и положить его на полку, прибегая раз в год к сканированию. И это плохой вариант. Чтобы инструмент был корректно встроен и отрабатывал каждую копейку, нужен четкий подход: как это сделать, в какой кусок его лучше поставить, с какой команды начать, как вовлечь команду разработчиков.
— Как происходит работа над ошибками? И кто их должен устранять?
— При первом сканировании анализатор еще не знает, что у вас происходит в приложении. Он будет безбожно цепляться и выдавать отчеты на 300 страниц, которые кто-то должен читать и изучать. И это абсолютно нормальная история.
Кто должен заниматься исправлением ошибок? Все вместе – как команда заказчика, так и специалисты по кибербезопасности привлеченного подрядчика. Должна быть синергия, так как только разработчики знают, как приложение устроено.
Без полноценного вовлечения ребят не получится сделать всё на 100%. Ни один консультант, каким бы крутым ни был, не сможет достойно разобрать отчет без помощи разработчиков.
Бывает, что мы нашли уязвимость и понимаем, что она критична, но ее устранение займет месяц, а релиз, например, через неделю. В этом случае решение должен принимать владелец бизнеса. Это вопрос рисков, и ему нужно определяться: запускать приложение сейчас или сначала устранить уязвимости.
— Если бы вам «принесли» приложение, как бы вы оценивали его безопасность?
— Во-первых, я бы спросила: «Готовы ли вы отдать его на багбаунти или нет?» Это один из моих любимых вопросов. И вот когда человек открыто говорит: «Да», – для меня это показатель того, что с софтом в целом всё в порядке, однако проверить его все же надо. Я бы начала с анализа с помощью динамического и статического анализатора. А также взглянула с точки зрения его архитектуры. Нередко после того, как сканер обнаружил огромное количество проблем в коде, становится ясно, что приложение надо архитектурно переделывать. Вот это самый болезненный этап, потому что архитектура – это то, с чего всё начинается.
— С какими рисками сопряжено использование неустойчивого к кибератакам приложения?
— Прежде всего, это репутационные риски: после утечки или нестабильной работы из-за атаки хакеров от приложения могут отвернуться клиенты и конечные потребители. Кроме того, взлом может привести к прямым финансовым потерям, похищению ценных сведений. Но даже если приложение никто не взломал, то это не значит, что проблем удастся избежать. Вопросы могут возникнуть у регулятора, особенно в отношении хранения и обработки персональных данных. В результате компания может не получить сертификат или лицензию, а это напрямую влияет на бизнес.
«На безопасность софта тратят от 10 до 30 тыс. долларов»
— Для каких отраслей вопрос безопасности приложений имеет первостепенное значение?
— Это финансовый сектор и IT-отрасль, где разработка приложений – основной бизнес. Например, возьмем нас как вендора, который разрабатывает свои продукты для результативной защиты. Естественно, их безопасность для нас сверхкритична и первостепенна. В тройку также входит сфера промышленности.
— Но ведь они редко разрабатывают свои приложения – скорее какие-то системы автоматизации…
— На самом деле у них очень много внутренних приложений, которые обеспечивают функционирование всей работы. И так как цена ошибки там может быть катастрофичной, безопасность ПО имеет очень важное значение.
Можно выделить и другие области, например, сектор телекоммуникаций. Там также инвестируют в безопасность приложений. Понятно, что утечка абонентских данных может сильно ударить по имиджу мобильного оператора и привести к серьезным штрафам.
— Сколько компании тратят на безопасность приложения?
— Как правило, от 10 до 30 тыс. долларов. Сумма зависит от размера компании, масштаба приложения и внедряемых практик. При этом надо понимать, что в мире, наверное, нет компаний, которым удалось сделать всё в вопросе безопасности приложений.
Владельцы приложений могут пойти разными путями. Первый – внедрение инструментов open-source, но команда потратит свой ресурс, что в итоге приведет к потерям во времени и деньгах. Второй – закупка готовых решений от вендоров. В этом случае будут существенные затраты вначале, которые потом окупятся в процессе. Скажем, баг не в продакшене будет обнаружен, а разработчик у себя в коде его подправит, и это займет у него 4 секунды вместо 3 недель.
— Сколько времени занимает создание приложения, которому не страшны кибератаки?
— Безопасная разработка – задача бессрочная, но добиться заметных результатов можно уже за 3-4 месяца. За это время удастся отыскать и устранить все критичные уязвимости. А дальше будет долгий процесс становления, когда мы будем это всё верифицировать, уточнять и улучшать, на что может уйти полтора года.
— На рынке возник дефицит специалистов по кибербезопасности?
— Да, их очень мало, а хороших – тем более. Один из вариантов – обучать своих разработчиков, которые хорошо знают продукт, но нуждаются в небольшой «прокачке» в построении кибербезопасности. Мы даже такой курс для них сформировали. А с начала 2024 года мы обучили более 60 специалистов в этом направлении. Трех недель, чтобы пройти обучение и погрузиться, вполне достаточно. После этого разработчик может сам развернуть нужные инструменты и с ними работать. И это такой обходной путь для компании, чтобы не искать на рынке security-специалистов. Так что главное – сделать безопасность софта одним из приоритетов, а варианты всегда найдутся.