Андрей Бешков. ИНТЕГРАЦИЯ ПРОЦЕССОВ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОЙ РАЗРАБОТКИ (SECURE DEVELOPMENT LIFECYCLE) В ALM.

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



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

Microsoft TechDays Роман Здебский Эксперт по технологиям разработки ПО Microsoft
Безопасность в разработке ПО. Модель угроз Для построения модели нарушителя необходимо обратиться к существующим практикам.
Положение об отделе В.Андреев, Д.Сатин. Штат отдела начальник отдела; бизнес-аналитик; проектировщик пользовательских интерфейсов; специалист по анализу.
Методология проектирования RAD МДК Раздел 1.
Дмитрий Андреев Microsoft
«Code review как средство обеспечения качества программного обеспечения» Надежда Кобозева. КРОК Инкорпорейтед.
7 основных принципов многопользовательской активации в ОС Windows 7 © Корпорация Майкрософт (Microsoft Corp.), 2009 г. Все права защищены. ИТ-специалистам.
Актуальные тренды стратегии информатизации банков в условиях нового рынка. Инструменты создания и развития эффективных финансовых продуктов Андрей ВИСЯЩЕВ.
Разработка учебно-лабораторного стенда для проведения тестов на проникновение в типовую корпоративную локально- вычислительную сеть предприятия Научный.
Защита мобильных данных в организации Александр Вакуленко / 17 сентября,
ITSM проекты – так ли страшен черт? Евгений ШИЛОВCLEVERICS.
SOFTWARE DEVELOPMENT PODGOTOVIL TVOU ZHOPY K SDACHE.
Контроля качества ПО. развития службы Три ступени Докладчик: Гринкевич Сергей
Обучение на ошибках Что привело к ошибке? Повторяется ли эта ошибка в других частях кода? Как можно было предотвратить возникновение ошибки? Как можно.
SQL 2012 И ГИБКИЕ МЕТОДЫ КОМАНДНОЙ РАЗРАБОТКИ C TFS Добро пожаловать в команду! Alexander Yakovlev
Комплексный подход к построению интегрированной системы безопасности для транспортного узла.
Microsoft TechDays Панов Никита Технический инженер Microsoft
Организация процесса тестирования в Agile команде с помощью квадрантов тестирования.
Нестандартный стиль приложений По разному потребляют данные Живые тайлы Множество видов.
Транксрипт:

Андрей Бешков

ИНТЕГРАЦИЯ ПРОЦЕССОВ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОЙ РАЗРАБОТКИ (SECURE DEVELOPMENT LIFECYCLE) В ALM

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

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

Пропустил один мяч И скорее всего проиграл!

Не считайте что вы не цель для хакеров THE Target! YOU ARE

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

Стоимость устранения уязвимостей Выпуск Источник: National Institute of Standards and Technology

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 SDL независим от платформы и языка разработки SDL подходит для разных сценариев разработки включая бизнес приложения (LOB) и онлайн сервисы SDL применим к разным методам разработки таким как водопад, спираль и agile Успешная реализация SDL предполагает автоматизацию с помощью инструментов. Вы можете использовать инструменты от других компаний. SDL подходит организациям любого размера. От разработчика одиночки до огромных корпораций.

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

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

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

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

Минимизация поверхности атаки: –Безопасный дизайн (уменьшение поверхности атаки, наименьшие привилегии, многослойная защита, безопасные настройки по умолчанию) –Моделирование угроз –Безопасное кодирование (переполнение буфера, XSS, SQL инъекции, криптография) –Тестирование безопасности –Соответствие ФЗ 152 Чему учить?

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

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

Agile и безопасность?

SDL для Agile

Шаблоны 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 в момент создания нового спринта или выполнения check in. Контролирует выполнение всех необходимых процессов безопасности Интегрируется с бесплатными SDL инструментами –SDL Threat Modeling Tool –Binscope Binary Analyzer –Minifuzz File Fuzzer

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

Типовые угрозы вашему приложению и инфраструктуре Моделирование угроз

Предупрежден, значит вооружен

А в реальности?

У вас также?

Или так?

Процесс моделирования угроз Продумать требования к безопасности продукта, сценарии использования. Идентифицирова ть классы пользователей. Ожидаемое поведение.

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

SQL Injection Example

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

Проверим как у вас дела с безопасностью?

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

Фаза: Проверка - Инструменты BinScope Binary Analyzer –Убедиться что SDL соблюден при компиляции и сборке MiniFuzz File Fuzzer –!exploitable RegexFuzer Attack Surface Analyzer –Анализ снимков системы AppVerifier –Динамический анализ системы

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

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

Механизмы защиты ОС от атак Win7 SEHOP Включено по умолчанию Heap terminate Выключено по умолчаниюDEP ASLR Vista SP1, SP2 SEHOP Heap terminate DEP ASLR Vista RTM SEHOP Heap terminate DEP ASLR XP SP3 SEHOP Heap terminate DEP ASLR XP SP2 SEHOP Heap terminate DEP ASLR IE 6IE 7IE 8IE 9

EMET: Защита от типовых уязвимостей Командная строка и GUI Настройка системных защит от уязвимостей Включение защиты для конкретных приложений Проверка настроек защиты

EMET: Защита приложений Защищает приложения с известными уязвимостями Защищает от атак 0- day Тонкий контроль применяемых защит

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

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

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

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

Реагирование на инциденты Выгоды планового реагирования Понятно что происходит Есть ответственные Удовлетворенность клиента растет Собираем данные для будущих разработок Проводим тренинги Watch Alert and Mobilize Resources Alert and Mobilize Resources Assess and Stabilize Resolve Reporting Analysis and Mitigation Create Fix Update Models Test Fix Выпуск Lessons Learned Provide Guidance

Атаки переходят на уровень приложений Разработка безопасного кода с помощью SDL – экономия денег компании SDL cсущественно улучшил продукты Microsoft Microsoft сделал процесс SDL доступным всем Пора применять SDL и TFS

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

Ресурсы [HOLMES 2010]. Holmes, Graham. (2010, April 05). Cisco CSDL Announcement – w/ w/ [LANE 2010]. Lane, Adrian. (2010, May 10). FireStarter: Secure Development Lifecycle – Youre Doing It Wrong. Securosis. Retrieved December , from [LADD 2010]. Ladd, David. (2010, May 11). Do what Microsoft did, not what they do. Retrieved December , from do.aspx do.aspx [LARSON_LADD 2010]. Larson, Larry. Ladd, David. (2010, May 14). Security Talk: Simplified SDL with David Ladd. Channel 9. Retrieved December , from David-Ladd David-Ladd