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»
ИБ-ник
Цикл безопасной разработки
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
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.2
• 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 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 Поддержка Сопровождение и модернизация
Вывод из эксплуатации - Снятие с эксплуатации
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. Оценка применимости
39. Моделирование угроз – Ссылки
• Application Threat Modeling на сайте OWASP
• Статья с описанием подхода на Хабре
• Обнаружение недостатков безопасности при
помощи STRIDE (MSDN Magazine)
• The STRIDE Threat Model на сайте Microsoft
• Microsoft Threat Modeling Tool 2014