I'm sharing a concise list of security design principles extracted from NIST Special Publication 800-160 on System Security Engineering. Each principle is accompanied by a brief, one-line definition to provide readers with a quick understanding of key concepts in secure system design. This resource is intended to serve as a handy reference for professionals and students in the field of cybersecurity and system engineering.
- Security Architecture and Design: The structured framework that
defines the security controls and measures to protect systems and data.
- Clear Abstraction: Simplifying complex systems into understandable and
manageable components to enhance security.
- Hierarchical Trust: Establishing trust levels in a layered manner, where
higher levels inherit trust from lower levels.
- Least Common Mechanism: Minimizing shared resources among
users to reduce the risk of unauthorized access.
- Inverse Modification Threshold: Ensuring that the more critical a
system component is, the less frequently it should be modified.
- Modularity and Layering: Designing systems in discrete
modules and layers to isolate and protect components.
- Hierarchical Protection: Implementing security controls in a
tiered manner to provide multiple layers of defense.
- Partially Ordered Dependencies: Managing dependencies in a way that
some components can operate independently to enhance security.
- Minimized Security Elements: Reducing the number of security
mechanisms to simplify management and reduce potential vulnerabilities.
- Efficiently Mediated Access: Ensuring that access controls are
both effective and efficient to prevent unauthorized access without hindering
performance.
- Least Privilege: Granting users the minimum level of access necessary to perform their
functions.
- Minimized Sharing: Reducing the sharing of resources among users to
limit the potential for security breaches.
- Predicate Permission: Granting permissions based on specific conditions or
predicates to enhance security.
- Reduced Complexity: Simplifying systems to make them easier to secure and
manage.
- Self-Reliant Trustworthiness: Ensuring that systems can maintain
their security integrity independently.
- Secure Evolvability: Designing systems to adapt securely to new threats
and changes over time.
- Secure Distributed Composition: Ensuring that distributed systems
maintain security across all components and interactions.
- Trusted Components: Using components that are verified and trusted to
maintain system security.
- Trusted Communication Channels: Ensuring that communication channels
are secure and trusted to prevent data breaches.
- Security Capability and Intrinsic Behaviors: Embedding security
capabilities and behaviors within systems to enhance protection.
- Continuous Protection: Implementing ongoing security measures to protect
systems and data continuously.
- Secure Failure and Recovery: Ensuring that systems fail securely
and can recover without compromising security.
- Secure Metadata Management: Protecting metadata to prevent
unauthorized access and manipulation.
- Economic Security: Balancing security measures with cost-effectiveness
to ensure sustainable protection.
- Self-Analysis: Enabling systems to analyze their own security posture and detect
vulnerabilities.
- Performance Security: Ensuring that security measures do not significantly
impact system performance.
- Accountability and Traceability: Implementing mechanisms to track and
hold users accountable for their actions.
- Human Factored Security: Designing security measures that
consider human behavior and usability.
- Secure Defaults: Configuring systems with secure default settings to enhance protection
from the start.
- Acceptable Security: Ensuring that security measures meet the required
standards and are acceptable to stakeholders.
- Life Cycle Security: Implementing security measures throughout the entire
lifecycle of a system or product.
- Repeatable and Documented Procedures: Establishing and documenting
security procedures to ensure consistency and reliability.
- Secure System Modification: Ensuring that system modifications
are performed securely to prevent introducing vulnerabilities.
- Procedural Rigor: Applying strict and thorough procedures to maintain
high security standards.
- Sufficient Documentation: Providing comprehensive
documentation to support security measures and procedures.