V1.1.6 Secure Software Development Lifecycle
Requirement:#
Verify implementation of centralized, simple (economy of design), vetted, secure, and reusable security controls to avoid duplicate, missing, ineffective, or insecure controls. (C10)
Explanation:#
Требование определяет важность реализации безопасного жизненного цикла разработки программного обеспечения (SDLC) путем использования целенаправленных, простых, проверенных и многократно используемых мер безопасности. Это позволяет предотвратить дублирование, упущение, неэффективность или небезопасность мер безопасности на протяжении всего процесса разработки
1 Centralized Security Controls:
- Это стандартизованные контроли безопасности, применяемые последовательно во всех процессах разработки программного обеспечения.
- Они упрощают внедрение и управление безопасностью, облегчая поддержание лучших практик безопасности.
2 Simple (Economy of Design):
- Security controls (контроли безопасности) должны быть простыми и понятными. Излишне сложные элементы управления могут привести к путанице и уязвимостям.
- Простота конструкции стимулирует разработчиков к правильному использованию элементов управления и снижает вероятность ошибок.
3 Vetted Controls:
- Проверенные контроли прошли тщательную проверку и валидацию. Они были протестированы и доказали свою эффективность в борьбе с известными угрозами.
- Использование проверенных контролей снижает риск использования непроверенных или ошибочных средств защиты.
4 Secure and Reusable Controls:
- Контроли безопасности должны быть разработаны с учетом требований безопасности для эффективного устранения конкретных угроз или уязвимостей.
- Возможность повторного использования гарантирует, что один и тот же элемент управления может применяться в различных частях приложения, что снижает риск несогласованности или упущения мер безопасности.
5 Avoiding Duplicate, Missing, Ineffective, or Insecure Controls:
- Целенаправленные контроли безопасности помогают избежать дублирования, предоставляя разработчикам единый подход.
- Стандартизованные контроли безопасности помогают предотвратить отсутствие или неэффективность мер безопасности, обеспечивая последовательный подход к обеспечению безопасности.
- Проверенные и безопасные контроли снижают риск применения небезопасных мер.
Remediation:#
Чтобы выполнить требование и обеспечить внедрение целенаправленных, простых, проверенных, безопасных и многократно используемых элементов управления безопасностью в процесс разработки приложения, необходимо:
1. Review Existing Controls:
- Определить контроли безопасности, используемые в настоящее время в приложении.
2. Centralize and Standardize:
- Определить контроли безопасности, используемые в настоящее время в приложении, и стандартизировать их использование, создав стандартную библиотеку или модуль, в котором будут инкапсулированы общие меры безопасности.
3. Simplify Design:
- Убедиться, что внедряемые контроли безопасности разработаны с учетом простоты, что облегчает их понимание и использование разработчиками.
4. Use Vetted Controls:
- Использовать проверенные и хорошо зарекомендовавшие себя контроли безопасности из авторитетных источников, библиотек, фреймворков и сообществ по безопасности.
5. Secure Control Implementation:
- Необходимо убедиться в том, что применяемые контроли разработаны таким образом, чтобы обеспечить безопасность и эффективность защиты от известных уязвимостей.
6. Implement Reusable Controls:
- Разработать контроли, которые можно повторно использовать в различных частях приложения, чтобы избежать несогласованности и снизить вероятность их отсутствия.
7. Perform Code Reviews:
- Регулярно проводить проверки кода, чтобы убедиться в правильности реализации и использования контролей безопасности.
8. Security Training:
- Проводить обучение разработчиков по вопросам безопасности, чтобы они понимали назначение, использование и преимущества целенаправленных контролей безопасности.
9. Documentation:
- Документирование использования и деталей реализации контролей.
10. Periodic Review and Updates:
- Регулярно пересматривать и обновлять контроли безопасности для устранения новых угроз и уязвимостей.
11. Testing and Validation:
- Тестирование контролей в различных сценариях для обеспечения эффективного снижения рисков безопасности.
В данном примере файл centralized_input_validation.py содержит простую, безопасную и многократно используемую функцию для санитарной обработки вводимых данных. Файл app.py использует контроли безопасности для очистки пользовательского ввода перед его обработкой. Здесь показано, как реализовать принципы целенаправленности, простоты, проверки, безопасности и возможности повторного использования для конкретного контроля безопасности.