Цикл безопасной разработки SDL

41
Цикл безопасной разработки Алексей Бабенко руководитель направления, PA&PCI QSA Мастер-класс для RISC, www.risc.today

description

Описание циклов безопасной разработки - Microsoft SDL, Cisco SDL, PA-DSS, РС ЦБ РФ. Моделирование угроз STRIDE.

Transcript of Цикл безопасной разработки SDL

Page 1: Цикл безопасной разработки SDL

Цикл безопасной разработки

Алексей Бабенкоруководитель направления, PA&PCI QSA

Мастер-класс для RISC, www.risc.today

Page 2: Цикл безопасной разработки SDL

Я

• Руководитель направления в Информзащите;• 12 PA-DSS проектов, больше 30 PCI DSS + анализ ИС, ISO27001, аудиты ИБ;• Занимался анализом web-приложений, 2007-

2012 играл в CTF в SiBears;• Люблю поговорить и что-нибудь написать.

Page 3: Цикл безопасной разработки SDL

• Цикл – совокупность явлений, процессов, составляющая кругооборот в течение известного промежутка времени (БЭС)

• Безопасный – не угрожающий опасностью, лишённый какой либо угрозы (Толковый словарь)

• Разработка – процесс создания программного обеспечения (я)

• «SDLC = Systems/ Software Development Life Cycle»Разработчик ПО

• «SDLC = Security Development Life Cycle»ИБ-ник

Цикл безопасной разработки

Page 4: Цикл безопасной разработки SDL

Зачем?

• Большинство обнаруживаемых уязвимостей – типовые, общеизвестные, хорошо описанные.

Источник: Global Security Report 2013, Trustwave

Page 5: Цикл безопасной разработки SDL

Зачем? Наши реалии

Источник: внутренняя статистика Информзащиты по проведенным тестам на проникновение (только уязвимости ПО)

Page 6: Цикл безопасной разработки SDL

В фокусе внимания• Microsoft Security Development Lifecycle

• Cisco Secure Development Lifecycle

• PCI Security Standards (рекомендации к процессам разработки на примере PA-DSS 3.0)

• Обеспечение ИБ на стадиях ЖЦ АБС (РС БР ИББС-2.6-2014)

• Бонус – моделирование угроз STRIDE

Page 7: Цикл безопасной разработки SDL

Microsoft SDL7 основных фаз:•Training (обучение)•Requirements (требования)•Design (проектирование)•Implementation (реализация)•Verification (анализ)•Release (выпуск)•Response (поддержка)

В каждой фазе свои практики.

Page 8: Цикл безопасной разработки SDL

Microsoft SDL - практикиTraining•Обучение безопасности:

• Все задействованные сотрудники• Не реже 1 раза в год• Знания для выполнение остальных фаз

Requirements•Определение требований ИБ

• Включая назначение ответственных за ИБ

•Оценка рисков•Определение требований к качеству

Page 9: Цикл безопасной разработки SDL

Microsoft SDL - практикиDesign•Архитектурные требования•Анализ/ сокращение поверхности атаки• Моделирование угрозImplementation•Использование доверенных средств•Практики безопасного программирования• Статический анализ кода

Page 10: Цикл безопасной разработки SDL

Microsoft SDL - практикиVerification •Динамический анализ• Фаззинг• Проверка поверхности атакиRelease •Планы реагирования на инциденты• Финальный анализ безопасности• Доверенный выпускResponse• Выполнение планов реагирования на

инциденты

Page 11: Цикл безопасной разработки SDL

Microsoft SDL – ссылки• Раздел Security Development Lifecycle на сайте

Microsoft• Интеграция

процессов обеспечения безопасной разработки (ALM Summit)

Page 12: Цикл безопасной разработки SDL

Cisco SDL• Требования (Product Security Requirements)• 3rd Party Security• Проектирование (Secure Design)• Реализация (Secure Coding)• Оценка (Secure Analysis)• Тестирование (Vulnerability Testing)

Page 13: Цикл безопасной разработки SDL

Cisco SDL - стадииProduct Security Requirements:•Внутренние требования ИБ•Внешние требования (Market-Based)3rd Party Security:•Реестр используемого стороннего ПО•Уведомление о уязвимостяхSecure Design:•Проектирование с учетом ИБ (обучение, лучшие практики, безопасные компоненты)•Моделирование угроз (STRIDE)

Page 14: Цикл безопасной разработки SDL

Cisco SDL - стадииSecure Coding:•Обучение•Принципы безопасного программирования•Проверка кода, статический анализ•Стандарт безопасного программированияSecure Analysis:•Проверки ключевых областей ИБVulnerability Testing:•Тест-кейсы•Тестирование на проникновение

Page 15: Цикл безопасной разработки SDL

Cisco SDL - ссылкиРаздел Cisco SDL на сайте Cisco

Page 16: Цикл безопасной разработки SDL

PA-DSS 3.0

Выпуск +

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

Создание

Анализ

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

Обучение

Отслеживание уязвимостей

Page 17: Цикл безопасной разработки SDL

PA-DSS 3.0 - Обучение

• Основные темы:• требования PCI DSS• приемы безопасной разработки (OWASP, CWE),

проектирования, тестирования, пр.• лучшие практики отрасли

• Форма обучения:• самостоятельное• внутреннее• внешнее

Page 18: Цикл безопасной разработки SDL

PA-DSS 3.0 - Проектирование

• Формирование требований:• Требования PCI DSS (ПО = системный компонент)• Учет лучших практик• Учет внутренних требований по ИБ• Учет оценки рисков и информации об уязвимостях

• Проектирование с учетом сформированных требований

Page 19: Цикл безопасной разработки SDL

PA-DSS 3.0 - Создание

• Требования к разработке:• Использование методов безопасного

программирования• Применение лучших практик• Учет требований PCI DSS• Учет оценки рисков и анализа угроз

• Разделение сред и обязанностей• Корректное использование тестовых данных

Page 20: Цикл безопасной разработки SDL

PA-DSS 3.0 - Анализ

• Анализ кода (белый ящик)• Использование приемов безопасной разработки• Проводит специалист с опытом в данной сфере не

являющийся автором кода• Анализ для всех изменений на предмет безопасности

• Тестирование безопасности (черный ящик):• Общефункциональное с учетом выявленных

уязвимостей• Тестирование безопасности:

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

и при анализе новых уязвимостей

Page 21: Цикл безопасной разработки SDL

PA-DSS 3.0 - Выпуск

• Решение за выпуск релиза:• Предыдущие этапы были выполнены успешно• Требования стандарта учтены• Разработаны процедуры «отката»• Оценка воздействия на затрагиваемый процесс

• Ответственный за выпуск релиза – отвечает за факт выполнения процедур, ответственность за качество выполнения на соответствующих специалистах

• Релиз – не конец проекта

Page 22: Цикл безопасной разработки SDL

PA-DSS 3.0 - Выявление уязвимостей• Выявляем все что может влиять на

безопасность ПО:• Новые уязвимости и слабости в функциях

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

компонент, сервисов, протоколов

• Корректная работа с последними обновлениями системных компонент

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

Page 23: Цикл безопасной разработки SDL

PA-DSS 3.0 - Анализ угроз

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

• Моделирование угроз – STRIDE, OWASP, CERT• Учет результатов анализа при проектировании,

разработке, анализе

Page 25: Цикл безопасной разработки SDL

РС БР ИББС-2.6-2014 - Стадии

• разработки технического задания • проектирования АБС • создания и тестирования АБС • приемки и ввода в действие • эксплуатации • сопровождение и модернизация АБС • снятия с эксплуатации

Page 26: Цикл безопасной разработки SDL

РС БР ИББС-2.6-2014 - Стадии

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

Проектирование•разработка архитектуры•функциональные требования ИБ•стандарты конфигурации

Page 27: Цикл безопасной разработки SDL

РС БР ИББС-2.6-2014 - Стадии

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

•эксплуатационная документацияПрием и ввод в действие•проведение опытной эксплуатации•тестирование на проникновение (рекомендуемое)

•приемочные испытания

Page 28: Цикл безопасной разработки SDL

РС БР ИББС-2.6-2014 - Стадии

Эксплуатация:•контроль корректного использования•оценка защищенности (рекомендуемое)

•мониторинг уязвимостейСопровождение и модернизация:•безопасное обновление/ модернизацияСнятие с эксплуатации:•архивирование информации•гарантированное уничтожение информации

Page 29: Цикл безопасной разработки SDL

РС БР ИББС-2.6-2014 - Приложения• Типовые недостатки в реализации функций

безопасности автоматизированных систем• Рекомендации к проведению контроля

исходного кода• Рекомендации к проведению оценки

защищенности• Рекомендации к проведению контроля

параметров настроек технических защитных мер

Page 30: Цикл безопасной разработки SDL

РС БР ИББС-2.6-2014 - Ссылки

• Рекомендации в области стандартизации БР Обеспечение ИБ на стадиях ЖЦ АБС

• Раздел по информационной безопасности на сайте Банка России

Page 31: Цикл безопасной разработки SDL

Сравнение SDLCisco SDL Microsoft SDL PA-DSS SDL РС БР ИББС-2.6-2014)

Обучение разработчиков Secure Design, Secure Coding Training Обучение -

Отслеживание уязвимостей 3rd Party Security Implementation (частично) Выявление уязвимостей Эксплуатация

Определение требований к ИБ Product Security Requirements Requirements Проектирование Проектирование

Создание модели угроз Secure Design Design Оценка рисков Разработка технического задания (рекомендательно)

Практики безопасной разработки Secure Coding Implementation Создание -

Анализ кода Secure Analysis Implementation Анализ кода Создание и тестирование (рекомендательно)

Тестирование безопасности Vulnerability Testing Verification, Release Тестирование безопасности Создание и тестирование

Выпуск релиза - Release Выпуск Прием и ввод в действие

Поддержка - Response Поддержка Сопровождение и модернизация

Вывод из эксплуатации - Снятие с эксплуатации

Page 32: Цикл безопасной разработки SDL

Внедрение SDL

1. Обучение2. Практики безопасного программирования3. Тестирование безопасности и анализ кода4. Процедуры выпуска и поддержки5. Отслеживание уязвимостей, реестр ПО6. Формальное определение требований к ИБ7. Планы реагирования на инциденты8. Моделирование угроз, анализ поверхности атак9. Внешний анализ

Page 33: Цикл безопасной разработки SDL

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

STRIDE =•Spoofing (подмена субъекта)•Tampering (нарушение целостности)•Repudiation (отказ от авторства)•Information disclosure (нарушение конфиденциальности)•Denial of service (отказ в обслуживании)•Elevation of privilege (повышение привилегий)

Data Flow Diagrams — диаграммы потоков данных

Page 34: Цикл безопасной разработки SDL

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

1. Построение DFD:1. Процесс (множественный процесс)2. Хранилище3. Информационный поток4. Внешний элемент (посредник, интерактор)5. Граница доверия

2. Декомпозиция элементов (1-4)3. Повторение 1 и 24. Формирование перечня угроз5. Оценка применимости

Page 35: Цикл безопасной разработки SDL

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

Spoofing Tampering Repudiation

Information disclosure

Denial of service

Elevation of privilege

Поток

Хранилище

Процесс

Посредник

Page 36: Цикл безопасной разработки SDL

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

Источник: https://www.owasp.org/index.php/Application_Threat_Modeling

Page 37: Цикл безопасной разработки SDL

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

Источник: https://www.owasp.org/index.php/Application_Threat_Modeling

Page 38: Цикл безопасной разработки SDL

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

Page 39: Цикл безопасной разработки SDL

Моделирование угроз – Ссылки

• Application Threat Modeling на сайте OWASP• Статья с описанием подхода на Хабре• Обнаружение недостатков

безопасности при помощи STRIDE (MSDN Magazine)

• The STRIDE Threat Model на сайте Microsoft• Microsoft Threat Modeling Tool 2014

Page 40: Цикл безопасной разработки SDL

ВОПРОСЫ? Алексей Бабенко руководитель направления, PA&PCI QSA

[email protected]+ 7 (495) 980-23-45 #458+ 7 905 991-99-19 skype: arekusux arekusux.blogspot.com

www.infosec.ru

Page 41: Цикл безопасной разработки SDL

Полезные ссылки• Безопасное программирование

• http://cwe.mitre.org • http://owasp.org

• Общие базы данных уязвимостей• http://www.securityfocus.com • http://nvd.nist.gov • http://secunia.com

• Информация по внешнему обучению• http://itsecurity.ru/catalog/kp75 • http://www.sans.org/security-training.php • https://www.owasp.org/index.php/Category:OWASP_AppSec_Conference • http://www.giac.org/certification/gssp-java

• Материалы для организации внутреннего обучения:• https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project • https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project • http://www.sans.org/top25-software-errors • http://projects.webappsec.org/w/page/13246978/Threat-Classification • http://www.cert.org/secure-coding • http://cwe.mitre.org/data/graphs/699.html