Software Assurance (2019)
The intent of the Software Assurance Knowledge Unit is to provide students with the ability to describe why software assurance is important to the development of secure systems and describe the methods and techniques that lead to secure software.
To complete this KU, students should be able to:
- Apply security design principles.
- Describe how system design and architecture affects security.
- Create a system design optimized to meet appropriate security requirements.
- Apply modeling and vulnerability assessment to create a secure design.
- Explain the importance of Design Reviews in creating secure systems.
- Describe examples of the application of Security Principles:
- Separation (of domains)
- Least Privilege
- Simplicity (of design)
- Minimization (of implementation)
- Fail Safe Defaults / Fail Secure
- Least Astonishment
- Open Design
- Reduce attack surfaces
- Compare and contrast the security of alternative designs
- Review Secure Design Patterns
- Evaluate the level of security required for system data.
- Apply Life of Data - N-order Scope Map
- Create an Audit Trail
- Apply modeling techniques and vulnerability mapping to evaluate potential security issues.
- Increase Resiliancy
- Design reviews
Related Knowledge Units
- Life-Cycle Security
- Security Risk Analysis
- Secure Programming Practices
- Software Security Analysis
- Vulnerability Analysis
- QA/Functional Testing
Original Knowledge Unit
Suggested academic readings
Sample knowledge test
Sample skills test
Sample abilities test
Additional notes or materials