Skip to main content

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
import bleach
def sanitize_input(input_string):
return bleach.clean(input_string, strip=True)
# app.py
from flask import Flask, request
from centralized_input_validation import sanitize_input
app = Flask(__name__)
@app.route('/submit', methods=['POST'])
def submit_form():
user_input = request.form.get('user_input')
sanitized_input = sanitize_input(user_input)
# Process sanitized input further
return "Form submitted successfully!"
if __name__ == '__main__':
app.run()

В данном примере файл centralized_input_validation.py содержит простую, безопасную и многократно используемую функцию для санитарной обработки вводимых данных. Файл app.py использует контроли безопасности для очистки пользовательского ввода перед его обработкой. Здесь показано, как реализовать принципы целенаправленности, простоты, проверки, безопасности и возможности повторного использования для конкретного контроля безопасности.

Additional:#