Upload
risclubspb
View
199
Download
2
Tags:
Embed Size (px)
DESCRIPTION
http://www.risc.today/
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 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.2
• 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 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 [email protected] + 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