Skip to main content

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:

  • Разработать план реагирования на инциденты и нарушения безопасности, которые могут возникнуть после релиза.

  • Постоянно отслеживть работу приложения на предмет аномалий.

  • Оперативно реагировать на любые инциденты безопасности, проводить расследования и применять соответствующие меры по снижению ущерба.

Additional:#