Построение Secure Development Lifecycle

25
Построение Secure Development Lifecycle Владимир Стыран, БМС Консалтинг

description

Построение Secure Development Lifecycle

Transcript of Построение Secure Development Lifecycle

Page 1: Построение Secure Development Lifecycle

Построение Secure Development Lifecycle

!Владимир Стыран, БМС Консалтинг

Page 2: Построение Secure Development Lifecycle

Кто эти люди?..• БМС Консалтинг

• Мы делаем пентесты, много и часто

• Black Box, Grey Box, социальная инженерия…

• АБС, ДБО, биллинг, инфраструктура, веб- и прочие приложения

• “Apparently, if you can test pens, you can test everything.” - H.D. Moore

Page 3: Построение Secure Development Lifecycle

Что у нас позади

• Мы видим “картинку” снаружи и она нас пугает

• Domain Admin по внешнему вектору: 1 из 5-ти

• Domain Admin по внутреннему вектору: 3 из 5-ти

• В каждом “взрослом” пентесте: root, oracle, 100+ логинов/паролей пользователей, web shells…

Page 4: Построение Secure Development Lifecycle

Наши впечатления• Типы граблей (по частоте обнаружения)

• Bad/default/no credentials

• Bad/no patch management

• Passwords for candy

• Application errors

• Bad session management

• Все остальные

17%

4%

13%

9%22%

35%

Page 5: Построение Secure Development Lifecycle

Угрозы и стек технологий

Page 6: Построение Secure Development Lifecycle

Какие варианты?• Борьба за безопасность “готовой” системы - сизифов труд

• Путь “Penetrate & Patch” ведет в никуда (хотя мы, конечно же, не против)

• Пентесты покрывают чуть больше половины известных угроз

• Infinity Maxim: There are an unlimited number of security vulnerabilities for a given security device, system, or program, most of which will never be discovered (by the good guys or bad guys).

• Лучший способ избавиться от уязвимости - не дать ей возникнуть

• “Идеальный” план: построение полноценного процесса Secure Development Lifecycle

Page 7: Построение Secure Development Lifecycle

Secure Development Lifecycle

• “Изобретен” Microsoft под давлением сообщества

• Включает ряд организационных и технических процессов

• И средства их автоматизации

Page 8: Построение Secure Development Lifecycle

Плоды SDL

Page 9: Построение Secure Development Lifecycle

Плоды SDL

Page 10: Построение Secure Development Lifecycle

Этапы SDL• Обучение

• Требования

• Дизайн

• Реализация

• Проверка

• Релиз

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

vs. Чик-чик и в продакшн!

Page 11: Построение Secure Development Lifecycle

Обучение• Разработка программы обучения

• “Внешние” условия: требования, стандарты, законодательство

• Методики и технологии разработки

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

• Метрики/критерии обучения

• Минимальная частота тренингов (на реже N раз в год)

• Минимальный групповой порог подготовки (не мнее 80% команды)

• Актуализация программы

Page 12: Построение Secure Development Lifecycle

Требования• Утверждение требований безопасности до начала проекта

• Внешние (PCI, PII, HIPPA…) и внутренние (оценка рисков) факторы

• Требования безопасности (т.н. негативные требования) устанавливают, документируют (и тестируют) так же, как позитивные требования к функционалу

• Минимальные требования безопасности (в терминах пороговых значений качества)

• Назначение аналитика по безопасности

Page 13: Построение Secure Development Lifecycle

Дизайн• Определение и документирование архитектуры безопасности и механизмов защиты

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

• Моделирование угроз в контексте дизайна проекта, выполняемых функций, обрабатываемых данных, размещения в инфраструктуре, уникальных особенностей

• Минимизация угроз и рисков путем сужения “поверхности атаки”

Page 14: Построение Secure Development Lifecycle

Реализация• Использование техник безопасного кодирования: проверка ввода, экранирование символов, параметризация запросов…

• Статический анализ по мере готовности исходного кода

• Реакция на уязвимости: исправление, документирование

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

• Использование средств ОС: ASLR, DEP, SElinux, apparmor…

• Отказ от незащищенных и устаревших библиотек, API, криптографических алгоритмов

• Особое внимание к онлайн-сервисам: XSS, SQLi…

Page 15: Построение Secure Development Lifecycle

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

• Пересмотр дизайна с учетом новых угроз (изменение “поверхности атаки”)

• Тестирование негативных требований

• Динамический анализ по мере готовности объектного кода • Фаззинг, брут, стресс-тесты и прочее для файлового и пользовательского ввода, API, сетевых подключений и т.д.

• Упор на анализ защищенности кода и тестирование безопасности

• Специфические тесты для онлайн-сервисов

• Реакция на уязвимости: исправление, документирование

Page 16: Построение Secure Development Lifecycle

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

• Обеспечение возможности выпуска исправлений безопасности

• Финальная оценка защищенности

• Принятие/отклонение релиза

• Архивирование проекта • Обновление документации

• Сохранение исходного кода для потомков (code escrow)

Page 17: Построение Secure Development Lifecycle

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

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

Page 18: Построение Secure Development Lifecycle

SDL для Agile• Вернемся в реальность: по “классическому” SDLC уже никто не работает

• В Agile SDL практики классифицированы не по этапам SDLC, а по частоте выполнения

• Every-sprint: самые важные, повторять для каждого релиза

• One-time: менее критичные, выполнять одноразово

• Bucket: все остальные, выполнять по мере надобности

Page 19: Построение Secure Development Lifecycle

One-time• Из требований

• Требования безопасности

• Оценка рисков

• Из дизайна

• Требования к дизайну

• Сужение поверхности атаки

• Из релиза

• Создание плана реагирования

Page 20: Построение Secure Development Lifecycle

Every-sprint• Из дизайна

• Моделирование угроз

• Из реализации

• Использование одобренных инструментов

• Отказ от старого хлама (API, библиотеки и т.д.)

• Статический анализ кода

• Из релиза

• Финальная оценка защищенности, принятие и архивирование

Page 21: Построение Secure Development Lifecycle

Bucket• Из требований

• Минимальные требования безопасности

• Из проверки

• Динамический анализ приложения

• Фаззинг и прочие издевательства

• Пересмотр модели угроз и “поверхности” атаки

Page 22: Построение Secure Development Lifecycle

Ключевые концепции• Производство защищенного кода требует усовершенствования процессов разработки

• Один лишь поиск багов не делает софт безопаснее

• Риски это проблема менеджера, а не разработчика

• Постоянный пересмотр процессов SDL

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

• Инструменты и автоматизация

• Поощрение и последствия

Page 23: Построение Secure Development Lifecycle

Gartner AST MQ

Сегмент продуктов автоматизированного тестирования защищенности приложений в 2013 г.

Page 24: Построение Secure Development Lifecycle

Подведем итог• Угрозы двигаются на уровень приложений

• Сегмент инструментов автоматизации созрел

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

• Результаты измеримы и впечатляют

• SDL Agile-у не враг

Page 25: Построение Secure Development Lifecycle

Спасибо за внимание!

[email protected]

+380(67) 659 1342