На прошлой неделе в Москву приезжал Иван Медведев – самый видный русскоговорящий специалист по безопасности в Microsoft. На конференции Software Engineering Conference (Russia) 2008 он рассказывал о культовой для разработчиков компании вещи – Security Development Lifecycle (SDL)
С 2004 года работа по SDL обязательна для всех продуктовых групп Microsoft; в 2006 году о нем была написана книга (которую, кстати, хотят перевести на русский); с 2007, начиная с версии 3.2, SDL продвигается в массы – работать по нему Microsoft советует всем. На что имеет полное моральное право, ведь за 5 минут в интернете можно найти целый ворох отзывов об SDL, как о самом продвинутом механизме безопасной разработки.
Сайт Habrahabr.ru опубликовал интервью с Иваном Медведевым.
Иван, сначала я хотел бы поговорить о вашей биографии. Каково это – человеку с такой звучной русской фамилией работать в Microsoft?
Хорошо работать. Как и индусу, и китайцу, и европейцу (улыбается).
В Microsoft я уже 9 лет. На последнем курсе и после окончания факультета ВМиК МГУ 2 года работал в Москве, в компании, у которой есть сайт с интересным названием Security.ru. Занимался там шифрованием IP-потоков.
Несколько человек из моей группы за это время уехали за границу и тепло отзывались о тамошних условиях работы. И я тоже решил попробовать: послал резюме в Microsoft и через пару месяцев прошел интервью во время одного из их “recruiting trip”.
Сначала был разработчиком в тестовой группе по безопасности CLR, через некоторое время стал в ней лидером. А потом перешел в команду Secure Windows Initiative (SWI), где мы занимались сначала безопасностью собственно Windows, а потом и всех продуктов в целом.
И над чем конкретно работаете сейчас?
У нас нет какого-то таймлайна, мы все вместе работаем над SDL. Сейчас я возглавляю подгруппу SWI Tools, мы делаем внутрикорпоративные инструменты для исследования безопасности. Наш последний проект – программное средство для моделирования угроз (о моделировании угроз у Ивана также был отдельный доклад на SEC® 2008).
А перед вами когда-нибудь стояла задача сделать 100%-но безопасную систему? Или с самого начала все были готовы постоянно выпускать заплатки для уязвимостей?
Конечно, все хотят абсолютную безопасность. Но в Microsoft, как и в любой другой здравомыслящей компании, признавали и признают, что сделать такую систему нереально.
Насчет заплаток могу сказать, что перед релизом софта находится и закрывается гораздо больше уязвимостей, чем после него.
А какая модель защиты перспективнее – сокрытие всех внутренностей системы по принципу «черного ящика» или все же открытая архитектура, при которой все защитные механизмы известны общественности?
Модель «Security Through Obscurity» точно не работает. Безопасность не может быть достигнута с помощью сокрытия кода программы – это общепризнанный принцип. Ведь найти ошибку в любой защищенной так системе – только вопрос времени.
Но подобные модели могут работать в двух случаях: если безопасность надо обеспечить временно (как в играх, например, которые устаревают и теряют ценность очень быстро), и если в качестве защитного средства применяется обфускация – запутывание кода программы таким образом, что незаметно взломать его будет невозможно.
Отличаются ли подходы к проектированию ПО, которое компания продает, и которое использует сама?
Да, отличаются очень сильно. SDL подходит и для разработки внутреннего ПО, он достаточно универсальный. Но здесь речь идет о совершенно других угрозах. В нашей внутренней сети нас не особенно волнуют, к примеру, вирусы в макросах документов Word, которые кто-то рассылает по почте. Или защита от «человека с флешкой». Человеческий фактор в безопасности компании – не наша компетенция. Но очень важна, опять же например, проблема приватности – защита документов одного сотрудника от лишних взглядов.
Когда выходил IE 7, у него был лозунг: «Вы говорили нам о проблемах безопасности. Мы вас услышали!». Правда услышали?
Могу сказать, что над безопасностью они работали плотно. Уязвимостей в седьмой версии стало значительно меньше. Ну, они ведь следовали SDL…
А вот интересно, в команде XBox над безопасностью работают плотно?
Ну, по крайней мере, я не знаю случаев, чтобы на XBox появились вирусы (улыбается).
А в команде Live? (сам улыбаюсь второму подряд провокационному вопросу)
(говорит, расставляя слова) Во всех продуктах Microsoft безопасности уделяют много внимания.
На самом деле, каждый продукт проходит процедуру финального обзора безопасности, и пренебречь безопасностью в пользу скорости или чего-то другого у команд разработки просто не получится — мы такой продукт не пропустим.
Хорошо, какие у вас ближайшие планы?
В ноябре мы выпустим средство моделирования угроз. Опубликуем методологию оптимизации SDL. И запустим программу SDL Pro — привлечем 9 компаний к годичному пилотному проекту, в котором они будут помогать всем желающим внедрять SDL в своей работе.
Вообще, будем советовать всем архитекторам ПО и топ-менеджерам по IT обратить внимание на SDL.
Спойлер: мы раскрываем их любимые трюки