Разработка безопасных приложений: что предлагают лидеры индустрии

Наталия Елманова

Создание безопасных приложений?— это одна из самых актуальных тем, волнующих разработчиков. Поэтому сегодняшнее интервью посвящено анонсированным Microsoft новшествам в области процесса обеспечения безопасности всего цикла разработки — SDL (Security Development Lifecycle), включая бета-версию инструмента для моделирования потенциальных уязвимостей в создаваемом программном обеспечении — SDL Threat Modelling Tool. Напомним, что сегодня процесс SDL, представляющий собой строгую методику разработки безопасного программного обеспечения, применяется в самой корпорации Microsoft при создании всех ее продуктов на каждом этапе процесса разработки программного обеспечения.
Об SDL как таковом, о внедрении этого процесса и о новом инструменте SDL Threat Modelling Tool мы попросили рассказать Майкла Ховарда, главного менеджера подразделения Security Development Lifecycle team корпорации Microsoft, архитектора SDL и одного из авторов книги «Защищенный код», весьма популярной среди российских разработчиков, а также Адама Шостака, старшего менеджера подразделения Trustworthy Computing Group корпорации Microsoft.

KомпьютерПресс: Какие новые технологии в области обеспечения безопасности предложит Microsoft в течение ближайших двух лет?

Майкл Ховард: В этой области станут доступны как средства безопасности, встроенные в продукты произвольного назначения, так и специализированные средства обеспечения безопасности. К первой категории относятся средства аутентификации, авторизации, технологии шифрования, а ко второй — инструменты обеспечения защиты данных и противодействия угрозам.

Давайте вспомним, с чего мы начали. Нам известно много угроз (вирусы, другое вредоносное ПО), на которые должно адекватно реагировать программное обеспечение. Это означает, что нужны продукты, способные защитить от этих угроз другое ПО и данные (например, Outlook, Word, архивы электронной почты). Мы помогаем производителям ПО вносить в него необходимые изменения, а кроме того, в последние годы мы сами внесли много изменений в продукты и операционную систему.

В последнее время наблюдается заметная криминализация области, связанной с нарушением безопасности. Если раньше авторы вредоносного ПО пытались просто навредить пользователям без какой бы то ни было материальной выгоды, то сегодня они делают это из корыстных соображений, что создает дополнительную опасность. Поэтому сегодня наша задача заключается во внедрении жизненного цикла безопасной разработки приложений (Secure Development Lifecycle, SDL) при создании ПО самой Microsoft и ПО для платформ Microsoft. Мы помогаем независимым разработчикам, которые создают приложения на основе наших платформ. Мы разработали модель оптимизации жизненного цикла безопасной разработки приложений SDL Optimization Model — это и есть способ, с помощью которого сегодня нужно осуществлять разработку приложений.

Для частичного внедрения SDL с тем, чтобы ваши приложения могли противостоять угрозам, необходимо сделать ряд небольших шагов — на этот счет мы можем дать рекомендации, например по поводу управления списком пользователей и их правами, в качестве одного из первых шагов в этом направлении.

В ближайшие два года мы, скорее всего, столкнемся с гораздо большим, по сравнению с предыдущим периодом, количеством атак, ведь с каждым днем их число возрастает. Такой вывод следует из аналитических отчетов, и это вызывает серьезную озабоченность. Особенно много атак будет направлено против операционных систем семейства Windows. Это означает, что мы должны защитить данную платформу, а также способствовать защите разработанных для нее приложений.

Адам Шостак: Думаю, что нужно защищать все возможные мишени. SDL — это всеобъемлющий процесс, включающий и моделирование угроз, и анализ кода, и обработку исключений, ведь его назначение — делать процедуру нанесения ущерба все более и более затруднительной для атакующих, что должно вынудить их отказаться от атаки. Самое важное — этот процесс должен быть незаметен для клиента, поскольку он обычно не интересуется подобными проблемами и задачами. Клиенту нужно иметь приложения, работающие в привычном режиме, а мы должны помогать ему выполнять работу, создавая безопасные приложения.

 

Рисунок

КП: Какие аргументы сможет выдвинуть руководитель проекта по разработке программного обеспечения менеджеру высшего звена или заказчику, доказывая, что в продукте следует реализовать те или иные механизмы обеспечения безопасности? При разработке коммерческого ПО все хотят сэкономить время, деньги, ресурсы, и многим представляется очень удобным сделать это за счет безопасности.

А.Ш.: Этот вопрос нам задают очень часто. Иногда таких менеджеров удается переубедить, предъявив статистические данные о финансовом ущербе, вызванном атаками, которые сообщаются аналитическими агентствами, правительственными организациями, исследовательскими компаниями. Однако зачастую, несмотря на то что мы приводим подобные данные в качестве аргументов в течение долгих лет, менеджеров эти проблемы не трогают, поскольку он не видят за цифрами реального человека, подписывающего чеки, и им кажется, что все проблемы от них очень далеки.

Мы в Microsoft понимаем, что удовлетворенность клиентов напрямую не связана с реализацией средств защиты и они не любят об этом говорить. Тем не менее можно узнать, каков статус данных клиента, конфиденциальны ли они. А затем поинтересоваться, не хочет ли клиент защитить эти данные, каковы риски их кражи или компрометации, каковы при этом будут потери, и подвести клиента к мысли, что его данные нуждаются в защите. Таким образом вы идентифицируете риски. Защита данных стоит денег, но их утечка обойдется намного дороже.

Есть также смысл обсудить с экспертом в области информационной безопасности, сколько стоит реализация различных ее составляющих и какие из них нужны в данном случае, обдумать, с чего начать, как построить и усовершенствовать в дальнейшем процесс обеспечения безопасности. На этот счет Microsoft может дать рекомендации, включающие и обучение, и самообразование, и реализацию.

Помимо модели SDL Optimization Model мы недавно анонсировали инструмент моделирования, который поможет пользователям реализовать SDL. Он позволяет быстро оценить необходимые шаги в области защиты разрабатываемого приложения. Этот инструмент поможет и разработчикам, и менеджерам высшего звена понять, какова структура затрат на безопасность, сколько времени это займет и на что конкретно должны пойти инвестиции в безопасность.

КП: Клиенты, безусловно, желают, чтобы программное обеспечение было безопасным. Но дополнительно платить за реализацию безопасности они хотят далеко не всегда. Как вы можете помочь разработчикам создавать защищенные продукты с наименьшими затратами?

М.Х.: SDL Optimization Model как раз и есть наименее затратный способ реализации защиты данных. Кстати, и эту модель, и соответствующий инструмент моделирования можно загрузить с сайта компании Microsoft.

КП: А из чего эта модель состоит с технической точки зрения?

А.Ш.: Сначала мы создаем модель приложения, описывая его архитектуру (приложения, хранилища данных), чтобы определить возможные угрозы (рис. 1). А затем просим инструмент оценить эту архитектуру в плане безопасности и показываем клиенту эту оценку, что может быть очень полезно в том случае, если клиент не знает, как идентифицировать возможные угрозы. При этом инструмент не забудет о таких угрозах, как потеря КПК, или о внешних угрозах, неподконтрольных компании. Все это реализовано в данном инструменте.

 

Рисунок

Рис. 1. Моделирование архитектуры будущего приложения
в SDL Threat Modelling Tool

Иными словами, мы создаем диаграмму, на основании которой автоматически генерируется описание возможных действий и угроз. В комплекте поставки инструмента есть файл справочной системы с подробным описанием того, что реально представляют собой эти угрозы, и с подробными напоминаниями о необходимых мерах (например, что нужно защищать сведения о кредитных картах покупателей, скажем, зашифровав их). С помощью этих сведений можно убеждать менеджеров в наличии соответствующих рисков и включать в контракт реализацию соответствующей защиты, а также соответствующие данные помещать, к примеру, в базу данных дефектов продукта наряду с результатами тестирования.

Мы говорили об основной функциональности инструмента для анализа угроз и способов защиты (рис. 2). Помимо этого с его помощью можно отслеживать зависимости между компонентами решения, в том числе с учетом средств защиты данных других производителей, генерировать отчеты и о введенной информации, и о результатах анализа, и о средствах устранения проблем.

 

Рисунок

Рис. 2. Анализ уязвимостей будущего приложения с помощью
SDL Threat Modelling Tool

SDL Optimization Model и инструмент моделирования позволяют осуществлять оценки необходимых мер безопасности за минимальное время — 5-10 мин. За этот период вы получите отчет об анализе модели с рекомендациями мер безопасности, которые надо принять при разработке приложения (рис. 3). Если раньше для оценки угроз нужно было изучить соответствующую литературу, провести эксперименты, что могло потребовать несколько недель работы, то с помощью нашего инструмента мы можем существенно сократить эту часть цикла разработки. Кроме того, для сокращения времени разработки мы предлагаем соответствующие фрагменты кода в комплектах поставки наших продуктов, которые вы можете модифицировать и использовать в ваших решениях.

 

Рисунок

Рис. 3. Отчет с описанием угроз и рекомендованными
мерами безопасности

КП: Может ли этот инструмент способствовать управлению рисками? Ведь существуют угрозы, вероятность наступления которых мала или потери от наступления которых невелики по сравнению со стоимостью защиты.

А.Ш.: Данный инструмент сможет показать возможные угрозы, но у нас нет достоверной информации об окружении моделируемого приложения, чтобы осуществить подобную оценку рисков для разных клиентов. Поэтому мы не учитываем вероятность наступления риска, а просто указываем, что он существует. Затем в соответствии с SDL следует решать, занимаемся мы проблемой или нет — и это уже бизнес-решение. Возможно, от каких-то угроз стоит защищаться в случае, если продукт пишется для внешнего клиента и подвержен интернет-угрозам, но не стоит, если он функционирует внутри корпоративной сети. Однако такие решения должны принимать менеджеры и пользователи.

КП: Большое спасибо за интересное интервью и за полезный инструмент! От имени нашего издания позвольте пожелать вам успехов в дальнейшем развитии этого направления.

 

В начало В начало

КомпьютерПресс 2'2009