Transcript
Page 1: лекция  безопасная разработка приложений

Лекция Безопасная разработка

приложенийКолыбельников Александр

[email protected]

Page 2: лекция  безопасная разработка приложений

Содержание

• Формирование требований к приложению

• Безопасное программирование• Тестирование • Сертификация• Эксплуатация• Обновления

Page 3: лекция  безопасная разработка приложений

Формирование требований к приложению

• Требования регуляторов• Бизнес-требования• Уникальные преимущества• Простота поддержки• Исправление ошибок

Page 4: лекция  безопасная разработка приложений

Требования регуляторов

• ФСБ:– ПКЗ-2005– ФЗ-795– ФЗ-796– СТР– ФЗ «О гостайне»– …

• ФСТЭК– Руководящие документы– Профили защиты

Page 5: лекция  безопасная разработка приложений

Бизнес-требования

• За что клиент заплатит деньги;• Быстрота и точность разработки;• Простота поддержки;• Исправление ошибок критичных для значимых

клиентов.

Page 6: лекция  безопасная разработка приложений

Простота поддержки• Логгирование;• Самотестирование программы;• Взаимодействие с SIEM;• Удаленное подключение специалистов

(если возможно);

Page 7: лекция  безопасная разработка приложений

Безопасное программирование – зачем?

• Уязвимости – это взломанные клиенты и потеря репутации.

• Исследование Aberdeen:– Предотвращение одной уязвимости почти

полностью покрывает годовые затраты на повышение безопасности разработки

– Предотвратить проблему с безопасностью в 4 раза дешевле чем разбираться с ее последствиями

Page 8: лекция  безопасная разработка приложений

Безопасное программирование на примере SDL

Концепция

Выпуск

Page 9: лекция  безопасная разработка приложений

Этапы SDLОбуче

ние

Начальное обучение по основам безопасности

Требования

Определение владельца от бизнесаАнализ рисков безопасности и конфиден-циальности Определение требований к качеству

Проектирование

Моделирование угрозАнализ опасных областей

Реализация

Выбор инструментовБлокирование запрещенных функций Статический анализ

Проверка

Динамическое тестирование и fuzzing Проверка моделей угроз и опасных областей

Выпуск

План реагированияЗаключитель-ный анализ безопасностиАрхив выпусков

Реагирование

Выполнение плана реагирования на инциденты

Технология и процессОбучение

Ответственность

Постоянные улучшения процессов

Сертификац

ия

ИспытанияДокументацияЗаключение

Page 10: лекция  безопасная разработка приложений

SDL – обучение

Обследовать подготовленность организации по темам безопасности и защиты приватных данных.

При необходимости создать стандартные курсы обучения.

– Разработать критерии качества программы обучения• Содержимое должно покрывать темы, безопасного дизайна, разработки, тестирования и

защиты приватных данных

– Определить частоту тренингов• Разработчик должен пройти не менее n тренингов в год

– Определить минимальный приемлемый порог тренингов в группе разработки

• 80% процентов технического персонала должны пройти минимальные обязательные тренинги до выпуска RTM версии продукта

TrainingRequireme

ntsDesign

Implementation

Verification

Release ResponseОбучени

еТребовани

яПроектиро

ваниеРеализация

Проверка ВыпускРеагирова

ниеСертифика

ция

Page 11: лекция  безопасная разработка приложений

SDL Требования

• Команда разработки определяет лидеров и консультантов по темам безопасности

• Назначается ответственный за безопасность • Ответственный проверяет план разработки продукта, рекомендует

изменения или устанавливает дополнительные требования к безопасности продукта

• Определить приоритет, процедуру отслеживания и исправления ошибок (bug tracking/job assignment system)

• Определить и задокументировать порог отбраковки продукта по ошибкам связанным с безопасностью и защитой данных

TrainingRequireme

ntsDesign

Implementation

Verification

Release ResponseОбучени

еТребовани

яПроектиро

ваниеРеализация

Проверка ВыпускРеагирова

ниеСертифика

ция

Page 12: лекция  безопасная разработка приложений

SDL - проектирование

Определить и задокументировать архитектуру безопасности и идентифицировать критические компоненты безопасности

Задокументировать поверхность атаки продукта. Ограничить ее установками по умолчаниюОпределить критерии выпуска обновления продукта в связи с изменением в безопасности продукта

Результаты автоматизированного тестирования кроссайт скриптинг атакУстаревание криптографических алгоритмов или замена слабых алгоритмов

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

TrainingRequiremen

tsDesign

Implementation

Verification Release ResponseОбучение ТребованияПроектиров

аниеРеализация

Проверка ВыпускРеагирова

ниеСертификац

ия

Page 13: лекция  безопасная разработка приложений

SDL - реализация

Разработка кода и ревью процессов, документации и инструментов необходимых для безопасного развертывания и эксплуатации разрабатываемого продукта

Спецификация утвержденных инструментов и их аналоговСтатический анализ (/analyze (PREfast), FXCop, CAT.NET)

Поиск случаев использования запрещенных APIПрименение механизмов защиты предоставляемых ОС (NX, ASLR и HeapTermination)

Соблюдение специфических требований безопасности для сетевых сервисов (крос сайт скриптинг , SQL иньекции и.т.д)

Использование безопасных версий библиотек и фреймворковПрочие рекомендации ( Standard Annotation Language (SAL))

TrainingRequireme

ntsDesign

Implementation

Verification

Release ResponseОбучени

еТребовани

яПроектиро

ваниеРеализация

Проверка ВыпускРеагирова

ниеСертифика

ция

Page 14: лекция  безопасная разработка приложений

SDL - Проверка

Начните проверки как можно раньше. В идеале сразу же после стадии “code complete”.

Начните планирование процесса реагирования на обнаружение уязвимостей в выпущенном продуктеПовторно проверьте поверхность атаки. Все ли вы учли?Fuzz тестирование – файлами, вводом данных в интерфейсные элементы и код сетевой подсистемыПри необходимости выполнить “security push” (с каждым разом все реже)

Не является заменой работе над безопасностью в процессе разработки продуктаРевью кодаТестирование на проникновениеРевью дизайна и архитектуры в свете вновь обнаруженных угроз

TrainingRequiremen

tsDesign

Implementation

Verification Release ResponseОбучение ТребованияПроектиров

аниеРеализация

Проверка ВыпускРеагирова

ниеСертификац

ия

Page 15: лекция  безопасная разработка приложений

SDL - выпуск

Создать политики поддержки продукта

Создать план реагирования на инциденты безопасности - Software Security Incident Response Plan (SSIRP)

Контакты и ресурсы внутри организации для адекватной реакции на обнаружение уязвимостей и защиту от атак24x7x365 контакт с 3-5 инженерами, 3-5 специалистами маркетинга, и 1-2 менеджеров верхнего уровня

Обратите внимание на необходимость выпуска экстренных обновлений вашего продукта из за уязвимостей в коде сторонних производителей включенном в ваш продукт. Так же может быть необходимость обновлять продукт после обновления ОС.

TrainingRequireme

ntsDesign

Implementation

Verification Release ResponseОбучени

еТребования

Проектирование

Реализация

Проверка ВыпускРеагирова

ниеСертифика

ция

Page 16: лекция  безопасная разработка приложений

Сертификация• Заявка;• Получение разрешения;• Создание документации и лабораторные

испытания;• Экспертиза результатов испытаний и

документации Органом по сертификации;

• Экспертиза результатов регулятором;• Выдача сертификата;• Продление сертификата.

TrainingRequireme

ntsDesign

Implementation

Verification Release ResponseОбучени

еТребования

Проектирование

Реализация

Проверка ВыпускРеагирова

ниеСертифика

ция

Page 17: лекция  безопасная разработка приложений

SDL-реагирование

Инцидент случился? Идем по заранее созданному плану.

Выполняем активности по плану реагирования на инциденты безопасности и выпускаем обновления в соответствии с графиком релизов

TrainingRequireme

ntsDesign

Implementation

Verification Release ResponseОбучени

еТребования

Проектирование

Реализация

Проверка ВыпускРеагирова

ниеСертифика

ция

Page 18: лекция  безопасная разработка приложений

Вопросы?


Recommended