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

Preview:

DESCRIPTION

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

Citation preview

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

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

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

Я

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

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

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

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

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

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

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

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

Зачем?

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

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

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

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

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

• Cisco Secure Development Lifecycle

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

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

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

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

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

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

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

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

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

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

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

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

инциденты

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

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

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

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

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

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

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

PA-DSS 3.0

Выпуск +

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

Создание

Анализ

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

Обучение

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

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

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

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

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

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

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

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

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

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

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

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

PA-DSS 3.0 - Анализ

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

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

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

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

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

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

PA-DSS 3.0 - Выпуск

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сравнение 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 Поддержка Сопровождение и модернизация

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

Внедрение SDL

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

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

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

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

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

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

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

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

Spoofing Tampering Repudiation

Information disclosure

Denial of service

Elevation of privilege

Поток

Хранилище

Процесс

Посредник

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

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

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

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

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

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

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

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

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

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

a.babenko@infosec.ru+ 7 (495) 980-23-45 #458+ 7 905 991-99-19 skype: arekusux arekusux.blogspot.com

www.infosec.ru

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

• 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

Recommended