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

Preview:

DESCRIPTION

Лекция по безопасной разработке приложений защиты информации в РФ. Читается на 4 курсе ФРТК МФТИ. Рассмотрен процесс создания криптографических и технических средств защиты информации.

Citation preview

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

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

kisttan@gmail.com

Содержание

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

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

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

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

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

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

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

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

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

клиентов.

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

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

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

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

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

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

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

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

Концепция

Выпуск

Этапы SDLОбуче

ние

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

Требования

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

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

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

Реализация

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

Проверка

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

Выпуск

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

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

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

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

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

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

Сертификац

ия

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

SDL – обучение

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

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

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

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

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

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

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

TrainingRequireme

ntsDesign

Implementation

Verification

Release ResponseОбучени

еТребовани

яПроектиро

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

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

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

ция

SDL Требования

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

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

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

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

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

TrainingRequireme

ntsDesign

Implementation

Verification

Release ResponseОбучени

еТребовани

яПроектиро

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

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

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

ция

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

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

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

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

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

TrainingRequiremen

tsDesign

Implementation

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

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

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

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

ия

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

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

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

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

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

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

TrainingRequireme

ntsDesign

Implementation

Verification

Release ResponseОбучени

еТребовани

яПроектиро

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

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

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

ция

SDL - Проверка

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

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

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

TrainingRequiremen

tsDesign

Implementation

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

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

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

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

ия

SDL - выпуск

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

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

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

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

TrainingRequireme

ntsDesign

Implementation

Verification Release ResponseОбучени

еТребования

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

Реализация

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

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

ция

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

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

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

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

TrainingRequireme

ntsDesign

Implementation

Verification Release ResponseОбучени

еТребования

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

Реализация

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

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

ция

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

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

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

TrainingRequireme

ntsDesign

Implementation

Verification Release ResponseОбучени

еТребования

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

Реализация

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

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

ция

Вопросы?

Recommended