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

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

Embed Size (px)

DESCRIPTION

http://www.risc.today/

Citation preview

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

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

Алексей Бабенко

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

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

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

Я

• Руководитель направления в Информзащите;

• 12 PA-DSS проектов, больше 30 PCI DSS

+ анализ ИС, ISO27001, аудиты ИБ;

• Занимался анализом web-приложений, 2007-2012 играл в CTF в SiBears;

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

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

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

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

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

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

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

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

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

Зачем?

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

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

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

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

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

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

В фокусе внимания

• Microsoft Security Development Lifecycle

• Cisco Secure Development Lifecycle

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

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

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

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

Microsoft SDL

7 основных фаз:

• Training (обучение)

• Requirements (требования)

• Design (проектирование)

• Implementation (реализация)

• Verification (анализ)

• Release (выпуск)

• Response (поддержка)

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

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

Microsoft SDL - практики

Training

• Обучение безопасности: • Все задействованные сотрудники

• Не реже 1 раза в год

• Знания для выполнение остальных фаз

Requirements

• Определение требований ИБ • Включая назначение ответственных за ИБ

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

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

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

Microsoft SDL - практики

Design

• Архитектурные требования

• Анализ/ сокращение поверхности атаки

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

Implementation

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

• Практики безопасного программирования

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

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

Microsoft SDL - практики

Verification

• Динамический анализ

• Фаззинг

• Проверка поверхности атаки

Release

• Планы реагирования на инциденты

• Финальный анализ безопасности

• Доверенный выпуск

Response

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

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

Cisco SDL

• Требования (Product Security Requirements)

• 3rd Party Security

• Проектирование (Secure Design)

• Реализация (Secure Coding)

• Оценка (Secure Analysis)

• Тестирование (Vulnerability Testing)

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

Cisco SDL - стадии

Product Security Requirements:

• Внутренние требования ИБ

• Внешние требования (Market-Based)

3rd Party Security:

• Реестр используемого стороннего ПО

• Уведомление о уязвимостях

Secure Design:

• Проектирование с учетом ИБ (обучение, лучшие практики, безопасные компоненты)

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

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

Cisco SDL - стадии

Secure Coding:

• Обучение

• Принципы безопасного программирования

• Проверка кода, статический анализ

• Стандарт безопасного программирования

Secure Analysis:

• Проверки ключевых областей ИБ

Vulnerability Testing:

• Тест-кейсы

• Тестирование на проникновение

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

Cisco SDL - ссылки

Раздел Cisco SDL на сайте Cisco

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

PA-DSS 3.0

Выпуск +

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

Создание

Анализ

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

Обучение

Отслеживание

уязвимостей

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

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

• Основные темы: • требования PCI DSS

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

• лучшие практики отрасли

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

• внутреннее

• внешнее

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

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

• Формирование требований: • Требования PCI DSS (ПО = системный компонент)

• Учет лучших практик

• Учет внутренних требований по ИБ

• Учет оценки рисков и информации об уязвимостях

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

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

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

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

программирования

• Применение лучших практик

• Учет требований PCI DSS

• Учет оценки рисков и анализа угроз

• Разделение сред и обязанностей

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

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

PA-DSS 3.0 - Анализ

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

• Проводит специалист с опытом в данной сфере не являющийся автором кода

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

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

уязвимостей

• Тестирование безопасности: • Реализация требований PCI DSS

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

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

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

PA-DSS 3.0 - Выпуск

• Решение за выпуск релиза: • Предыдущие этапы были выполнены успешно

• Требования стандарта учтены

• Разработаны процедуры «отката»

• Оценка воздействия на затрагиваемый процесс

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

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

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

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

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

программирования

• Уязвимости компиляторов

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

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

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

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

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

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

• Моделирование угроз – STRIDE, OWASP, CERT

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

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

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

• разработки технического задания

• проектирования АБС

• создания и тестирования АБС

• приемки и ввода в действие

• эксплуатации

• сопровождение и модернизация АБС

• снятия с эксплуатации

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

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

Разработка технического задания

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

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

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

• разработка архитектуры

• функциональные требования ИБ

• стандарты конфигурации

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

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

Создание и тестирование

• управление версиями и изменениями

• обеспечение ИБ сред разработки и тестирования

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

• анализ кода (рекомендуемое)

• эксплуатационная документация

Прием и ввод в действие

• проведение опытной эксплуатации

• тестирование на проникновение (рекомендуемое)

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

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

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

Эксплуатация:

• контроль корректного использования

• оценка защищенности (рекомендуемое)

• мониторинг уязвимостей

Сопровождение и модернизация:

• безопасное обновление/ модернизация

Снятие с эксплуатации:

• архивирование информации

• гарантированное уничтожение информации

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

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

безопасности автоматизированных систем

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

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

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

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

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

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

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

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

Сравнение SDL

Cisco 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

1. Обучение

2. Практики безопасного программирования

3. Тестирование безопасности и анализ кода

4. Процедуры выпуска и поддержки

5. Отслеживание уязвимостей, реестр ПО

6. Формальное определение требований к ИБ

7. Планы реагирования на инциденты

8. Моделирование угроз, анализ поверхности атак

9. Внешний анализ

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

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

STRIDE =

• Spoofing (подмена субъекта)

• Tampering (нарушение целостности)

• Repudiation (отказ от авторства)

• Information disclosure (нарушение конфиденциальности)

• Denial of service (отказ в обслуживании)

• Elevation of privilege (повышение привилегий)

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

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

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

1. Построение DFD: 1. Процесс (множественный процесс)

2. Хранилище

3. Информационный поток

4. Внешний элемент (посредник, интерактор)

5. Граница доверия

2. Декомпозиция элементов (1-4)

3. Повторение 1 и 2

4. Формирование перечня угроз

5. Оценка применимости

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

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

Spoofing Tampering Repudiation Information disclosure

Denial of service

Elevation of privilege

Поток

Хранилище

Процесс

Посредник

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

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

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

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

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

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

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

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

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

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

• Application Threat Modeling на сайте OWASP

• Статья с описанием подхода на Хабре

• Обнаружение недостатков безопасности при помощи STRIDE (MSDN Magazine)

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

• Microsoft Threat Modeling Tool 2014

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

ВОПРОСЫ?

Алексей Бабенко руководитель направления, 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: Цикл безопасной разработки

Полезные ссылки

• Безопасное программирование • 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