V1.1.1 Secure Software Development Lifecycle
Requirement:#
Verify the use of a secure software development lifecycle that addresses security in all stages of development. (C1)](https://owasp.org/www-project-proactive-controls/#div-numbering)))
Explanation:#
Secure Software Development Lifecycle (Secure SDLC) - это структурированный подход к созданию программного обеспечения, который включает в себя методы безопасности на всех этапах разработки. Цель Secure SDLC заключается в том, чтобы обеспечить безопасность как неотъемлемую часть процесса разработки программного обеспечения, что позволит создавать более надежные и устойчивые к внешним угрозам приложения. Данный подход помогает выявлять и устранять уязвимости на ранних стадиях, снижая риск нарушения безопасности и утечки данных.
1 Assessment and Planning:
- Оценка текущего процесса разработки и выявление недостатков в методах обеспечения безопасности.
- Планирование интеграции Secure SDL в существующий жизненный цикл разработки.
2 Training and Awareness:
- Обучение разработчиков и других членов команды методам безопасной разработки и принципам SDL.
3 Requirements Phase:
- Внедрение модели угроз для выявления потенциальных угроз и уязвимостей.
4 Design Phase:
- Разработка механизмов контроля безопасности.
- Устранение выявленных угроз с помощью проектных решений.
5 Implementation Phase:
- Применение методов безопасной разработки, таких как валидация ввода, фильтрация вывода и правильная обработка ошибок.
- Следование рекомендациям по написанию безопасного кода, предоставленным Secure SDL.
6 Verification Phase:
Тестирование на безопасность, включая статический анализ, динамический анализ и тестирование на проникновение.
Проверка снижения влияния уязвимостей посредством методов обеспечения безопасности.
7 Release Phase:
- Внедрение безопасной конфигурации для сред развертывания.
- Использование надежных методов аутентификации и шифрования.
8 Response Phase:
- Разработка плана реагирования на инциденты, с целью решать проблемы безопасности после развертывания.
9 Ongoing Review and Improvement:
- Регулярное пересматривание и обновление процесса Secure SDL с учетом полученных практических результатов и возникающих угроз.
10 Tools and Resources:
- Использование инструментов и ресурсов, для обеспечения помощи в безопасном кодировании и тестировании.
11 Monitoring and Feedback:
- Контроль программного обеспечения после развертывания и сбор данных для улучшения последующих итераций.
Remediation:#
С целью выполнения требования, необходимо убедиться, что процесс разработки программного обеспечения включает в себя методы обеспечения безопасности на каждом этапе:
На каждом этапе Secure Software Development Life Cycle (Secure SDLC) основное внимание уделяется включению методов обеспечения безопасности в процесс разработки приложения:
1. Planning/Training:
Определить область применения проекта, включая предполагаемую функциональность и требования к безопасности.
Определить потенциальные угрозы безопасности, риски и стандарты соответствия.
Распределить ресурсы, назначить роли и установить сроки выполнения проекта.
Разработать высокоуровневую стратегию интеграции методов обеспечения безопасности на протяжении всего жизненного цикла.
2. Requirements:
Определить и задокументировать требования к безопасности на основе стандартов, нормативных требований и потребностей компании.
Определить контроли безопасности, механизмы аутентификации, защиты данных, контроля доступа и другие функции, связанные с безопасностью.
Обеспечить интеграцию требований безопасности в общую документацию по требованиям проекта.
3. Design:
Разработать подробную архитектуру и дизайн системы безопасности, включающие средства и механизмы контроля безопасности.
Определить, как будут реализованы такие средства защиты, как шифрование, аутентификация и авторизация.
Провести моделирование угроз для определения потенциальных уязвимостей и стратегий их устранения.
4. Implementation:
Использовать secure coding practices для реализации функций и методов контроля безопасности, описанных на этапе проектирования.
Применить валидацию ввода, фильтрацию вывода, безопасное хранение данных и другие методы безопасной разработки.
Провести анализ кода для выявления и устранения уязвимостей безопасности перед переходом к следующему этапу.
5. Verification:
Провести тестирование на безопасность, включая статический анализ, динамический анализ и тестирование на проникновение.
Убедиться, что методы контроля безопасности работают в соответствии с предопределенными перед ними задачами и обеспечивают снижение рисков.
Устранить и исправить все уязвимости и недостатки, выявленные в ходе тестирования на безопасность.
6. Release:
Развернуть приложение в безопасной и контролируемой среде.
Реализовать безопасную конфигурацию сервера, базы данных и других компонентов.
Отслеживать развертывание на предмет возникновения проблем с безопасностью, которые могут возникнуть в рабочей среде.
7. Response:
Разработать план реагирования на инциденты и нарушения безопасности, которые могут возникнуть после релиза.
Постоянно отслеживть работу приложения на предмет аномалий.
Оперативно реагировать на любые инциденты безопасности, проводить расследования и применять соответствующие меры по снижению ущерба.