Principle 13 - Employ Economy of Mechanisms
Detail
Services should be designed in a manner which minimises the attack surface by avoiding unnecessary complexity. The more complex the service, the higher will be the likelihood of greater numbers of introduced security vulnerabilities.
Services should be designed so that they can be easily upgraded, patched and maintained without complexity. Product selection should consider ease of maintenance, the ability for Continious Integration (CI).
Incorporate reusable software code components or design/implementation patterns wherever possible to avoid the introduction of new security vulnerabilities and minimise the attack surface.
Decision Evaluation Criteria:
- Does the design and development processes should include formal structured and repeatable measurement of software complexity (e.g. cyclomatic) with declared optimal targets expressed as non-functional requirements ?
- Has an iterative attack surface evaluation regime should been proposed which will demonstrate improvement in line with reduced complexity ?
- Does the product selection scoring process include a risk threat exposure score ?
- Does the product selection scoring process include both organisation functional and non-functional requirements score ?
- Do architectural design decisions which determine service components provide analysis which demonstrates the identification of proven reusable solutions or components as candidates ?
Basis
- NIST 8 - Implement tailored system security measures to meet organisational security goals
- NIST 10 - Consider custom products to achieve adequate security
- NIST 14 - Design security to allow for regular adoptions of new technology, including a secure and logical technological upgrade process
- NIST 24 - Strive for simplicity
- NIST 25 - Minimise the system elements to be trusted
- NIST 27 - Do not implement unnecessary security measures
- NIST 31 - Formulate security measures to address multiple overlapping information domains
- CSSLP - Employ economy of mechanism
- CSSLP - Leverage existing proven components