Цикл безопасной
разработки
Алексей Бабенко
руководитель направления, 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 SDL
7 основных фаз:
•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
• Учет результатов анализа при проектировании,
разработке, анализе
PA-DSS 3.0 - Ссылки
• PA-DSS 3.0
• PA-DSS 3.0 (рус)
• PCI DSS 2.0 eCommerce Guidelines
• Requirement 6.6 Application Reviews and Web Application Firewalls Clarified v1
• Mobile Payment Acceptance Security Guidelines for Developers v1.0
РС БР ИББС-2.6-2014 - Стадии
• разработки технического задания
• проектирования АБС
• создания и тестирования АБС
• приемки и ввода в действие
• эксплуатации
• сопровождение и модернизация АБС
• снятия с эксплуатации
РС БР ИББС-2.6-2014 - Стадии
Разработка технического задания
•определение требований по ИБ
•предварительный анализ угроз (рекомендуемое)
Проектирование
•разработка архитектуры
•функциональные требования ИБ
•стандарты конфигурации
РС БР ИББС-2.6-2014 - Стадии
Создание и тестирование
•управление версиями и изменениями
•обеспечение ИБ сред разработки и тестирования
•тестирование компонентов (в ходе разработки,
перед релизом, на предварительных испытаниях)
•анализ кода (рекомендуемое)
•эксплуатационная документация
Прием и ввод в действие
•проведение опытной эксплуатации
•тестирование на проникновение (рекомендуемое)
•приемочные испытания
РС БР ИББС-2.6-2014 - Стадии
Эксплуатация:
•контроль корректного использования
•оценка защищенности (рекомендуемое)
•мониторинг уязвимостей
Сопровождение и модернизация:
•безопасное обновление/ модернизация
Снятие с эксплуатации:
•архивирование информации
•гарантированное уничтожение информации
РС БР ИББС-2.6-2014 -
Приложения
• Типовые недостатки в реализации функций
безопасности автоматизированных систем
• Рекомендации к проведению контроля
исходного кода
• Рекомендации к проведению оценки
защищенности
• Рекомендации к проведению контроля
параметров настроек технических защитных мер
РС БР ИББС-2.6-2014 - Ссылки
• Рекомендации в области стандартизации БР
Обеспечение ИБ на стадиях ЖЦ АБС
• Раздел по информационной безопасности на
сайте Банка России
Сравнение 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 Поддержка Сопровождение и модернизация
Вывод из эксплуатации - Снятие с эксплуатации
Внедрение 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 и 2
4. Формирование перечня угроз
5. Оценка применимости
Моделирование угроз
Spoofing Tampering Repudiatio
n
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

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

  • 1.
    Цикл безопасной разработки Алексей Бабенко руководительнаправления, PA&PCI QSA Мастер-класс для RISC, www.risc.today
  • 2.
    Я • Руководитель направленияв Информзащите; • 12 PA-DSS проектов, больше 30 PCI DSS + анализ ИС, ISO27001, аудиты ИБ; • Занимался анализом web-приложений, 2007- 2012 играл в CTF в SiBears; • Люблю поговорить и что-нибудь написать.
  • 3.
    • Цикл –совокупность явлений, процессов, составляющая кругооборот в течение известного промежутка времени (БЭС) • Безопасный – не угрожающий опасностью, лишённый какой либо угрозы (Толковый словарь) • Разработка – процесс создания программного обеспечения (я) • «SDLC = Systems/ Software Development Life Cycle» Разработчик ПО • «SDLC = Security Development Life Cycle» ИБ-ник Цикл безопасной разработки
  • 4.
    Зачем? – • Большинство обнаруживаемыхуязвимостей – типовые, общеизвестные, хорошо описанные. Источник: Global Security Report 2013, Trustwave
  • 5.
    Зачем? Наши реалии Источник:внутренняя статистика Информзащиты по проведенным тестам на проникновение (только уязвимости ПО)
  • 6.
    В фокусе внимания •Microsoft Security Development Lifecycle • Cisco Secure Development Lifecycle • PCI Security Standards (рекомендации к процессам разработки на примере PA-DSS 3.0) • Обеспечение ИБ на стадиях ЖЦ АБС (РС БР ИББС-2.6-2014) • Бонус – моделирование угроз STRIDE
  • 7.
    Microsoft SDL 7 основныхфаз: •Training (обучение) •Requirements (требования) •Design (проектирование) •Implementation (реализация) •Verification (анализ) •Release (выпуск) •Response (поддержка) В каждой фазе свои практики.
  • 8.
    Microsoft SDL -практики Training •Обучение безопасности: • Все задействованные сотрудники • Не реже 1 раза в год • Знания для выполнение остальных фаз Requirements •Определение требований ИБ • Включая назначение ответственных за ИБ •Оценка рисков •Определение требований к качеству
  • 9.
    Microsoft SDL -практики Design •Архитектурные требования •Анализ/ сокращение поверхности атаки • Моделирование угроз Implementation •Использование доверенных средств •Практики безопасного программирования • Статический анализ кода
  • 10.
    Microsoft SDL -практики Verification •Динамический анализ • Фаззинг • Проверка поверхности атаки Release •Планы реагирования на инциденты • Финальный анализ безопасности • Доверенный выпуск Response • Выполнение планов реагирования на инциденты
  • 11.
    Microsoft SDL –ссылки • Раздел Security Development Lifecycle на сайте Microsoft • Интеграция процессов обеспечения безопасной разработки (ALM Summit)
  • 12.
    Cisco SDL • Требования(Product Security Requirements) • 3rd Party Security • Проектирование (Secure Design) • Реализация (Secure Coding) • Оценка (Secure Analysis) • Тестирование (Vulnerability Testing)
  • 13.
    Cisco SDL -стадии Product Security Requirements: •Внутренние требования ИБ •Внешние требования (Market-Based) 3rd Party Security: •Реестр используемого стороннего ПО •Уведомление о уязвимостях Secure Design: •Проектирование с учетом ИБ (обучение, лучшие практики, безопасные компоненты) •Моделирование угроз (STRIDE)
  • 14.
    Cisco SDL -стадии Secure Coding: •Обучение •Принципы безопасного программирования •Проверка кода, статический анализ •Стандарт безопасного программирования Secure Analysis: •Проверки ключевых областей ИБ Vulnerability Testing: •Тест-кейсы •Тестирование на проникновение
  • 15.
    Cisco SDL -ссылки Раздел Cisco SDL на сайте Cisco
  • 16.
    PA-DSS 3.0 Выпуск + Проектирование Создание Анализ Оценкарисков Обучение Отслеживание уязвимостей
  • 17.
    PA-DSS 3.0 -Обучение • Основные темы: • требования PCI DSS • приемы безопасной разработки (OWASP, CWE), проектирования, тестирования, пр. • лучшие практики отрасли • Форма обучения: • самостоятельное • внутреннее • внешнее
  • 18.
    PA-DSS 3.0 -Проектирование • Формирование требований: • Требования PCI DSS (ПО = системный компонент) • Учет лучших практик • Учет внутренних требований по ИБ • Учет оценки рисков и информации об уязвимостях • Проектирование с учетом сформированных требований
  • 19.
    PA-DSS 3.0 -Создание • Требования к разработке: • Использование методов безопасного программирования • Применение лучших практик • Учет требований PCI DSS • Учет оценки рисков и анализа угроз • Разделение сред и обязанностей • Корректное использование тестовых данных
  • 20.
    PA-DSS 3.0 -Анализ • Анализ кода (белый ящик) • Использование приемов безопасной разработки • Проводит специалист с опытом в данной сфере не являющийся автором кода • Анализ для всех изменений на предмет безопасности • Тестирование безопасности (черный ящик): • Общефункциональное с учетом выявленных уязвимостей • Тестирование безопасности: • Реализация требований PCI DSS • Меры по защите от известных уязвимостей • Меры предотвращения недостатков выявленных в модели угроз и при анализе новых уязвимостей
  • 21.
    PA-DSS 3.0 -Выпуск • Решение за выпуск релиза: • Предыдущие этапы были выполнены успешно • Требования стандарта учтены • Разработаны процедуры «отката» • Оценка воздействия на затрагиваемый процесс • Ответственный за выпуск релиза – отвечает за факт выполнения процедур, ответственность за качество выполнения на соответствующих специалистах • Релиз – не конец проекта
  • 22.
    PA-DSS 3.0 -Выявление уязвимостей • Выявляем все что может влиять на безопасность ПО: • Новые уязвимости и слабости в функциях программирования • Уязвимости компиляторов • Уязвимости используемых сторонних библиотек, компонент, сервисов, протоколов • Корректная работа с последними обновлениями системных компонент • Учет результатов при проектировании, разработке, анализов
  • 23.
    PA-DSS 3.0 -Анализ угроз • Стандарт – минимальный набор требований, каждое ПО уникально и может иметь специфичные угрозы • Моделирование угроз – STRIDE, OWASP, CERT • Учет результатов анализа при проектировании, разработке, анализе
  • 24.
    PA-DSS 3.0 -Ссылки • PA-DSS 3.0 • PA-DSS 3.0 (рус) • PCI DSS 2.0 eCommerce Guidelines • Requirement 6.6 Application Reviews and Web Application Firewalls Clarified v1 • Mobile Payment Acceptance Security Guidelines for Developers v1.0
  • 25.
    РС БР ИББС-2.6-2014- Стадии • разработки технического задания • проектирования АБС • создания и тестирования АБС • приемки и ввода в действие • эксплуатации • сопровождение и модернизация АБС • снятия с эксплуатации
  • 26.
    РС БР ИББС-2.6-2014- Стадии Разработка технического задания •определение требований по ИБ •предварительный анализ угроз (рекомендуемое) Проектирование •разработка архитектуры •функциональные требования ИБ •стандарты конфигурации
  • 27.
    РС БР ИББС-2.6-2014- Стадии Создание и тестирование •управление версиями и изменениями •обеспечение ИБ сред разработки и тестирования •тестирование компонентов (в ходе разработки, перед релизом, на предварительных испытаниях) •анализ кода (рекомендуемое) •эксплуатационная документация Прием и ввод в действие •проведение опытной эксплуатации •тестирование на проникновение (рекомендуемое) •приемочные испытания
  • 28.
    РС БР ИББС-2.6-2014- Стадии Эксплуатация: •контроль корректного использования •оценка защищенности (рекомендуемое) •мониторинг уязвимостей Сопровождение и модернизация: •безопасное обновление/ модернизация Снятие с эксплуатации: •архивирование информации •гарантированное уничтожение информации
  • 29.
    РС БР ИББС-2.6-2014- Приложения • Типовые недостатки в реализации функций безопасности автоматизированных систем • Рекомендации к проведению контроля исходного кода • Рекомендации к проведению оценки защищенности • Рекомендации к проведению контроля параметров настроек технических защитных мер
  • 30.
    РС БР ИББС-2.6-2014- Ссылки • Рекомендации в области стандартизации БР Обеспечение ИБ на стадиях ЖЦ АБС • Раздел по информационной безопасности на сайте Банка России
  • 31.
    Сравнение SDL Cisco SDLMicrosoft 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 Поддержка Сопровождение и модернизация Вывод из эксплуатации - Снятие с эксплуатации
  • 32.
    Внедрение SDL 1. Обучение 2.Практики безопасного программирования 3. Тестирование безопасности и анализ кода 4. Процедуры выпуска и поддержки 5. Отслеживание уязвимостей, реестр ПО 6. Формальное определение требований к ИБ 7. Планы реагирования на инциденты 8. Моделирование угроз, анализ поверхности атак 9. Внешний анализ
  • 33.
    Моделирование угроз STRIDE = •Spoofing(подмена субъекта) •Tampering (нарушение целостности) •Repudiation (отказ от авторства) •Information disclosure (нарушение конфиденциальности) •Denial of service (отказ в обслуживании) •Elevation of privilege (повышение привилегий) Data Flow Diagrams — диаграммы потоков данных
  • 34.
    Моделирование угроз 1. ПостроениеDFD: 1. Процесс (множественный процесс) 2. Хранилище 3. Информационный поток 4. Внешний элемент (посредник, интерактор) 5. Граница доверия 2. Декомпозиция элементов (1-4) 3. Повторение 1 и 2 4. Формирование перечня угроз 5. Оценка применимости
  • 35.
    Моделирование угроз Spoofing TamperingRepudiatio n Information disclosure Denial of service Elevation of privilege Поток Хранилище Процесс Посредник
  • 36.
  • 37.
  • 38.
  • 39.
    Моделирование угроз –Ссылки • Application Threat Modeling на сайте OWASP • Статья с описанием подхода на Хабре • Обнаружение недостатков безопасности при помощи STRIDE (MSDN Magazine) • The STRIDE Threat Model на сайте Microsoft • Microsoft Threat Modeling Tool 2014
  • 40.
    ВОПРОСЫ? Алексей Бабенко руководитель направления,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
  • 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