Upload
alexander-kolybelnikov
View
383
Download
0
Embed Size (px)
DESCRIPTION
Лекция по безопасной разработке приложений защиты информации в РФ. Читается на 4 курсе ФРТК МФТИ. Рассмотрен процесс создания криптографических и технических средств защиты информации.
Citation preview
Содержание
• Формирование требований к приложению
• Безопасное программирование• Тестирование • Сертификация• Эксплуатация• Обновления
Формирование требований к приложению
• Требования регуляторов• Бизнес-требования• Уникальные преимущества• Простота поддержки• Исправление ошибок
Требования регуляторов
• ФСБ:– ПКЗ-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Обучени
еТребования
Проектирование
Реализация
Проверка ВыпускРеагирова
ниеСертифика
ция
Вопросы?