Методы разработки безопасного ПО Андрей Бешков Менеджер программы информационной безопасности Microsoft Россия abeshkov@microsoft.com

Презентация:



Advertisements
Похожие презентации
Microsoft TechDays Роман Здебский Эксперт по технологиям разработки ПО Microsoft
Advertisements

Андрей Бешков. ИНТЕГРАЦИЯ ПРОЦЕССОВ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОЙ РАЗРАБОТКИ (SECURE DEVELOPMENT LIFECYCLE) В ALM.
7 основных принципов многопользовательской активации в ОС Windows 7 © Корпорация Майкрософт (Microsoft Corp.), 2009 г. Все права защищены. ИТ-специалистам.
Положение об отделе В.Андреев, Д.Сатин. Штат отдела начальник отдела; бизнес-аналитик; проектировщик пользовательских интерфейсов; специалист по анализу.
Безопасность в разработке ПО. Модель угроз Для построения модели нарушителя необходимо обратиться к существующим практикам.
Максим Скида Менеджер по продуктам информационной безопасности Microsoft Russia.
Разработка учебно-лабораторного стенда для проведения тестов на проникновение в типовую корпоративную локально- вычислительную сеть предприятия Научный.
«Code review как средство обеспечения качества программного обеспечения» Надежда Кобозева. КРОК Инкорпорейтед.
Методология проектирования RAD МДК Раздел 1.
SQL Server + RP Server Платформа для сверхбыстрой разработки SQL-приложений Владимир Авсеев Главный конструктор, Реляционное программирование.
Современные браузеры
Контроля качества ПО. развития службы Три ступени Докладчик: Гринкевич Сергей
Kaspersky Security 8.0 для SharePoint Server Ключевые возможности и преимущества.
Магистрант кафедры телекоммуникаций и информационных технологий Комиссар Дмитрий Семёнович Руководители: Доцент Резников Геннадий Константинович.
Вероника Копейко Менеджер по организации обучения Консультационные онлайн услуги по продуктам и решениям компании «Код Безопасности»
Система для поиска контактных данных физических и юридических лиц Вы приобретаете высокотехнологичный, конкурентный IT-продукт за меньшие деньги.
Системный аудит и оценка рисков информационной безопасности.
.NET ModelKit Suite выпускается в следующих редакциях: 1) 2) 3) 4)
Программное обеспечение как услуга (SaaS) Лекция 8.
Безопасность сервисов Дмитрий Истомин, директор по развитию Уральского центра систем безопасности.
Транксрипт:

Методы разработки безопасного ПО Андрей Бешков Менеджер программы информационной безопасности Microsoft Россия

Содержание Зачем вам разработка безопасного ПО? Текущая ситуация с безопасностью ПО Практика применения SDL Программы безопасности Microsoft

Почему ПО не безопасного? Сроки запуска проекта горят Нет ресурсов на обеспечение безопасных практик Мы стартап – нам нужно быстрее стать популярными и заработать много денег

Зачем вам разработка безопасного ПО? Новейшие исследования показывают однозначную связь между разработкой безопасного ПО и бизнес эффективностью компании: Исследование Aberdeen: Предотвращение одной уязвимости почти полностью покрывает годовые затраты на повышение безопасности разработки Предотвратить проблему с безопасностью в 4 раза дешевле чем разбираться с ее последствиями Исследование Forrester: Разработка безопасного ПО еще не стала широко распространенной практикой Компании применяющие методы SDL демонстрируют гораздо более быстрый возврат инвестиций

Чем SDL помог Microsoft Результаты

Microsoft SDL и Windows Источник: доклад «Windows Vista One Year Vulnerability Report», блог Microsoft Security, 23 января 2008 г. До введения SDL После введения SDL Количество уязвимостей сократилось на 45 % Количество уязвимостей, обнаруженных в течение года после выпуска

SDL и SQL Server (исследование компании NGS Software) Пакет обновления 3 (SP3) для SQL Server 2000 – первый выпуск, разработанный с применением процесса SDL Источник: Which database is more secure? Oracle vs. Microsoft (Чья СУБД безопаснее? Oracle или Microsoft?), David Litchfield, NGS Software, 21 ноября-2006 г.

SDL и Internet Explorer (IE) Источник: Browser Vulnerability Analysis, Microsoft Security Blog, 27 ноября 2007 г. До введения SDL После введения SDL Количество уязвимостей сократилось на 35 % Количество критических уязвимостей сократилось на 63 %

Уязвимости в ПО

Уязвимости основных производителей ПО

Что говорят экспертыЧто говорят эксперты? «Теперь мы действительно считаем корпорацию Майкрософт лидером, поскольку после введения процесса Security Development Lifecycle [SDL] ее программное обеспечение заметно улучшилось.» Джон Пескаторе (John Pescatore) вице-президент и выдающийся аналитик Gartner, Inc ( 13 февраля 2006 г.) «Зачем хакерам возиться с трудной для взлома системой Vista, если хватает компьютеров, на которых установлены Acrobat Reader, слабое антивирусное ПО и последняя версия iTunes?» Халвар Флэйк (Halvar Flake) Специалистов по безопасности Конференция Microsoft BlueHat Сентябрь 2007 г.

Данные о масштабах угрозы? Данные о количестве заражений вирусами были собраны с 600 миллионов компьютеров в 117 странах. С помощью средствами безопасности Microsoft таких как: Malicious Software Removal Tool Microsoft Security Essentials Windows Defender Microsoft Forefront Client Security Windows Live OneCare Windows Live OneCare safety scanner

Влияние SDL на уязвимость ОС от Microsoft Windows 7 почти в 5 раз безопаснее Windows XP! Найдено зловредного ПО на каждую 1000 запусков антивирусных средств

Уязвимости Microsoft Office и OpenOffice compared html

История развития SDL Процесс безопасной разработки прошел многолетнее тестирование и шлифовку в рамках Microsoft и других компаний.

ВведениеВведение: процесс Microsoft SDL Основные принципы Защита пользователей: сокращение количества уязвимостей; сокращение опасности уязвимостей. Практический подход Упреждение угроз - это не просто поиск ошибок Решение проблем безопасности на ранних стадиях Безопасность при разработке Безопасность после выпуска ПО Цели

SDL по этапамОбучениеОбучение Начальное обучение по основам безопасности ТребованияТребования Определение владельца от бизнеса Анализ рисков безопасности и конфиден- циальности Определение требований к качеству Определение владельца от бизнеса Анализ рисков безопасности и конфиден- циальности Определение требований к качеству Проект ирован ие Моделирован ие угроз Анализ опасных областей Моделирован ие угроз Анализ опасных областей РеализацияРеализация Выбор инструментов Блокировани е запрещенных функций Статический анализ Выбор инструментов Блокировани е запрещенных функций Статический анализ ПроверкаПроверка Динамическое тестирование и fuzzing Проверка моделей угроз и опасных областей Динамическое тестирование и fuzzing Проверка моделей угроз и опасных областей ВыпускВыпуск План реагирования Заключитель- ный анализ безопасности Архив выпусков План реагирования Заключитель- ный анализ безопасности Архив выпусков Реа гирова ние Реа Выполнение плана реагирования на инциденты Решение руководства: SDL – обязательная политика в Майкрософт с 2004 г. Технология и процесс ОбучениеОтветственность Постоянные улучшения процессов

Фаза: Обучение Обследовать подготовленность организации по темам безопасности и защиты приватных данных. При необходимости создать стандартные курсы обучения. Разработать критерии качества программы обучения Содержимое должно покрывать темы, безопасного дизайна, разработки, тестирования и защиты приватных данных Определить частоту тренингов Разработчик должен пройти не менее n тренингов в год Определить минимальный приемлемый порог тренингов в группе разработки 80% процентов технического персонала должны пройти минимальные обязательные тренинги до выпуска RTM версии продукта TrainingTraining RequirementsRequirementsDesignDesignImplementationImplementationVerificationVerificationReleaseReleaseResponseResponse ОбучениеОбучение ТребованияТребования Проектирова ние РеализацияРеализацияПроверкаПроверкаВыпускВыпускРеагированиеРеагирование

Фаза: Обучение Как написать безопасный код на С++, Java, Perl, PHP, ASP. NET Защищенный код для Windows Vista Игра «Spot the vuln» 10 уязвимостей веб проектов - OWASP Top Ten Курсы SANS Бесплатная книга по SDL

Фаза: Требования Возможность заложить безопасный фундамент для проекта Команда разработки определяет лидеров и консультантов по темам безопасности Назначается ответственный за безопасность Ответственный проверяет план разработки продукта, рекомендует изменения или устанавливает дополнительные требования к безопасности продукта Определить приоритет, процедуру отслеживания и исправления ошибок (bug tracking/job assignment system) Определить и задокументировать порог отбраковки продукта по ошибкам связанным с безопасностью и защитой данных TrainingTraining RequirementsRequirementsDesignDesignImplementationImplementationVerificationVerificationReleaseReleaseResponseResponse ОбучениеОбучение ТребованияТребования Проектирова ние РеализацияРеализацияПроверкаПроверкаВыпускВыпускРеагированиеРеагирование

Шаблоны SDL для VSTS (Spiral) Включает SDL требования как задачи SDL-based check-in policies Создание отчета Final Security Review Интеграция с инструментами сторонних производителей Библиотека пошаговых указаний SDL how-to Интегрируется с бесплатными SDL инструментами SDL Threat Modeling Tool Binscope Binary Analyzer Minifuzz File Fuzzer Шаблоны SDL процессов интегрируют SDL 4.1 со средой разработки VSTS

MSF Agile + SDL шаблоны для VSTS Включает практики SDL-Agile в Visual Studio IDE Автоматически создает процессы соблюдения SDL в момент создания нового спринта или выполнения check in. Контролирует выполнение всех необходимых процессов безопасности Интегрируется с бесплатными SDL инструментами SDL Threat Modeling Tool Binscope Binary Analyzer Minifuzz File Fuzzer

Фаза: Проектирование Определить и задокументировать архитектуру безопасности и идентифицировать критические компоненты безопасности Задокументировать поверхность атаки продукта. Ограничить ее установками по умолчанию Определить критерии выпуска обновления продукта в связи с изменением в безопасности продукта Результаты автоматизированного тестирования кроссайт скриптинг атак Устаревание криптографических алгоритмов или замена слабых алгоритмов Моделирование угроз Систематический ревью свойств продукта и его архитектуры с точки зрения безопасности Определить угрозы и меры снижения угроз TrainingTraining RequirementsRequirementsDesignDesignImplementationImplementationVerificationVerificationReleaseReleaseResponseResponse ОбучениеОбучение ТребованияТребования Проектирова ние РеализацияРеализацияПроверкаПроверкаВыпускВыпускРеагированиеРеагирование

SDL Threat Modeling Tool Обучает созданию диаграмм угроз Анализ угроз и мер защиты Интеграция с багтреккером Отчеты по угрозам и уязвимостям Формализует и упрощает моделирование угроз так чтобы им мог заниматься архитектор

Фаза: Реализация Разработка кода и ревью процессов, документации и инструментов необходимых для безопасного развертывания и эксплуатации разрабатываемого продукта Спецификация утвержденных инструментов и их аналогов Статический анализ (/analyze (PREfast), FXCop, CAT.NET) Поиск случаев использования запрещенных API Применение механизмов защиты предоставляемых ОС (NX, ASLR и HeapTermination) Соблюдение специфических требований безопасности для сетевых сервисов (крос сайт скриптинг, SQL иньекции и.т.д) Использование безопасных версий библиотек и фреймворков Прочие рекомендации ( Standard Annotation Language (SAL)) TrainingTraining RequirementsRequirementsDesignDesignImplementationImplementationVerificationVerificationReleaseReleaseResponseResponse ОбучениеОбучение ТребованияТребования Проектирова ние РеализацияРеализацияПроверкаПроверкаВыпускВыпускРеагированиеРеагирование

Фаза: Проверка Начните проверки как можно раньше. В идеале сразу же после стадии code complete. Начните планирование процесса реагирования на обнаружение уязвимостей в выпущенном продукте Повторно проверьте поверхность атаки. Все ли вы учли? Fuzz тестирование – файлами, вводом данных в интерфейсные элементы и код сетевой подсистемы При необходимости выполнить security push (с каждым разом все реже) Не является заменой работе над безопасностью в процессе разработки продукта Ревью кода Тестирование на проникновение Ревью дизайна и архитектуры в свете вновь обнаруженных угроз TrainingTraining RequirementsRequirementsDesignDesignImplementationImplementationVerificationVerificationReleaseReleaseResponseResponse ОбучениеОбучение ТребованияТребования Проектирова ние РеализацияРеализацияПроверкаПроверкаВыпускВыпускРеагированиеРеагирование

MiniFuzz File Fuzzer MiniFuzz основной инструмент тестирования для поиска уязвимостей которые могут привести к удачным атакам на код обрабатывающий файлы. Создает поврежденные файлы Выявляет недекларированное поведение приложения Используется отдельно или в составе Visual Studio и Team Foundation Server

Attack Surface Analyzer Измеряет потенциальную поверхность атаки на приложение и ОС Может использоваться разработчиками, тестировщиками, ИТ специалистами. Отображает изменения вносимые в чистую копию Windows ОС после установки приложения. Проверяет Новые или измененные файлы Ключи реестра Сервисы ActiveX Открытые сетевые порты Списки доступа ACL И.т.д

Фаза: Выпуск и план реагирования Создать политики поддержки продукта Создать план реагирования на инциденты безопасности - Software Security Incident Response Plan (SSIRP) Контакты и ресурсы внутри организации для адекватной реакции на обнаружение уязвимостей и защиту от атак 24x7x365 контакт с 3-5 инженерами, 3-5 специалистами маркетинга, и 1-2 менеджеров верхнего уровня Обратите внимание на необходимость выпуска экстренных обновлений вашего продукта из за уязвимостей в коде сторонних производителей включенном в ваш продукт. Так же может быть необходимость обновлять продукт после обновления ОС. TrainingTrainingRequirementsRequirementsDesignDesignImplementationImplementationVerificationVerificationReleaseReleaseResponseResponseОбучениеОбучениеТребованияТребования Проектирова ние РеализацияРеализацияПроверкаПроверкаВыпускВыпускРеагированиеРеагирование

Программа SUVP Ранний доступ к обновлениям безопасности продуктов Microsoft. Предназначена для тестирования совместимости ваших продуктов и продуктов Microsoft Бесплатна. Если хотите участвовать подойдите ко мне после доклада или напишите письмо на

Отношение к обновлениям

Фаза: Выпуск – Final Security Review (FSR) Проверить продукт на соответствие требованиям SDL и отсутствие известных уязвимостей Получаем независимое заключение готовности продукта к выпуску FSR не является: Тестом на проникновение. Запрещено ломать и обновлять продукт. Первой проверкой безопасности продукта Процессом финальной подписи продукта и отправки его в тираж Ключевая концепция: Эта фаза не используется как точка для завершения всех задач пропущенных на предыдущих стадиях TrainingTraining RequirementsRequirementsDesignDesignImplementationImplementationVerificationVerificationReleaseReleaseResponseResponse ОбучениеОбучение ТребованияТребования Проектирова ние РеализацияРеализацияПроверкаПроверкаВыпускВыпускРеагированиеРеагирование

Фаза: Выпуск – Архив План реагирования на инциденты безопасности создан Документация для клиентов обновлена Создан централизованный архив исходного кода, символов, моделей атак RTM версии продукта TrainingTraining RequirementsRequirementsDesignDesignImplementationImplementationVerificationVerificationReleaseReleaseResponseResponse ОбучениеОбучение ТребованияТребования Проектирова ние РеализацияРеализацияПроверкаПроверкаВыпускВыпускРеагированиеРеагирование

Фаза: Реагирование Инцидент случился? Идем по заранее созданному плану. Выполняем активности по плану реагирования на инциденты безопасности и выпускаем обновления в соответствии с графиком релизов TrainingTraining RequirementsRequirementsDesignDesignImplementationImplementationVerificationVerificationReleaseReleaseResponseResponse ОбучениеОбучение ТребованияТребования Проектирова ние РеализацияРеализацияПроверкаПроверкаВыпускВыпускРеагированиеРеагирование

Основные заблуждения об SDL SDL применим только к коробочным продуктам SDL предназначен для модели водопад или спираль Для SDL нужны инструменты разработки Microsoft SDL предназначен только для Windows ® ОС SDL независим от платформы и языка разработки SDL подходит для разных сценариев разработки включая бизнес приложения (LOB) и онлайн сервисы SDL применим к разным методам разработки таким как водопад, спираль и agile Успешная реализация SDL предполагает автоматизацию с помощью инструментов. Вы можете использовать инструменты от других компаний. Чтобы реализовать SDL нужно много ресурсов. SDL подходит организациям любого размера. От разработчика одиночки до огромных корпораций.

Заключение Атаки переходят на уровень приложений SDL = встраивание безопасности в ПО и культуру Существенные результаты для продуктов Microsoft Microsoft сделал процесс SDL доступным всем и считает важным помогать его распространению

Ресурсы The Simplified Implementation of the SDL Блог об SDL

Обратная связь Ваше мнение очень важно для нас. Пожалуйста, оцените доклад, заполните анкету и сдайте ее при выходе из зала Спасибо!

Вопросы? Код сессии CL 604 Андрей Бешков Менеджер программы информационной безопасности Вы сможете задать мне вопросы в зоне «Спроси эксперта» в течение часа после завершения этого доклада.