2. «Стандартный» взгляд
• Набор требований, которые должны
выполнить программисты?
• 6.3-6.5 стандарта?
• Применимо только при наличии отдельного
подразделения разработчиков?
• Отдельный процесс, осуществляемый
разработчиками
4. Обучение
• Знать – уметь – использовать
• Основные темы:
•
•
•
требования PCI DSS
приемы безопасной разработки (OWASP, CWE),
проектирования, тестирования, пр.
лучшие практики отрасли
• Форма обучения:
•
•
•
самостоятельное
внутреннее
внешнее
• Периодические обучение – хорошо, но лучше
непрерывный процесс
5. Проектирование
• Не всегда использование номеров карт
целесообразно
• Формирование требований:
•
•
•
•
Требования PCI DSS (ПО = системный компонент)
Учет лучших практик
Учет внутренних требований по ИБ
Учет оценки рисков и информации об уязвимостях
• Проектирование с учетом сформированных
требований
6. Создание
• Требования к разработке:
•
•
•
•
Использование методов безопасного
программирования
Применение лучших практик
Учет требований PCI DSS
Учет оценки рисков и анализа угроз
• Разделение сред и обязанностей
• Корректное использование тестовых данных
7. Анализ
• Анализ кода (белый ящик)
•
•
•
•
Использование приемов безопасной разработки
Автоматизированный анализ только в качестве
инструмента в руках специалиста
Проводит специалист с опытом в данной сфере не
являющийся автором кода
Анализ для всех изменений на предмет безопасности
• Тестирование безопасности (черный ящик):
•
•
Общефункциональное с учетом выявленных уязвимостей
Тестирование безопасности:
•
•
•
•
Реализация требований PCI DSS
Меры по защите от известных уязвимостей
Меры предотвращения недостатков выявленных в модели угроз и при
анализе новых уязвимостей
Тестирование по методике – хорошо, с использованием
контрольных чек-листов – лучше.
8. Выпуск
• Решение за выпуск релиза:
•
•
•
•
Предыдущие этапы были выполнены успешно
Требования стандарта учтены
Разработаны процедуры «отката»
Оценка воздействия на затрагиваемый процесс
• Ответственный за выпуск релиза – отвечает за факт
выполнения процедур, ответственность за качество
выполнения на соответствующих специалистах
• Релиз – не конец проекта
9. Выявление уязвимостей
• Выявляем все что может влиять на
безопасность ПО:
•
•
•
Новые уязвимости и слабости в функциях
программирования
Уязвимости компиляторов
Уязвимости используемых сторонних библиотек,
компонент, сервисов, протоколов
• Корректная работа с последними
обновлениями системных компонент
• Учет результатов при проектировании,
разработке, анализов
10. Анализ угроз
• В рамках общего анализа рисков
• Стандарт – минимальный набор требований,
каждое ПО уникально и может иметь
специфичные угрозы
• Моделирование угроз – STRIDE, OWASP, CERT
• Учет результатов анализа при проектировании,
разработке, анализе
11. Следующий шаг
• Выполнение требований PA-DSS
• Создание аналога руководства по применению
PA-DSS – документа, описывающего как ПО
выполняет требования стандарта и какими
настройками это обеспечивается
• Проведение внешнего обучения
• Проведение независимой оценки ПО
• Выделение отдельного подразделение –
обеспечения безопасности ПО
12. Сравнение SDL
PCI DSS
Development Lifecycle
Cisco Secure
Development Lifecycle
Microsoft Security
Development Lifecycle
Обучение
Secure Design
Training
Выявление уязвимостей
3rd Party Security
Implementation (частично)
Проектирование
Product Security Requirements
Requirements
Оценка рисков
Secure Design
Design
Создание
Secure Coding
Implementation
Анализ кода
Secure Analysis
Implementation
Тестирование безопасности
Vulnerability Testing
Verification, Release
Выпуск
-
Release
Поддержка
-
Response