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.
- Apply modeling techniques and vulnerability mapping to evaluate potential security issues.
- l. Usability
- Describe examples of the application of Security Principles
- 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
- Increase Resiliency
- Design reviews
- Describe examples of the application of Security Principles:
- Separation (of domains)
- 1. Describe examples of the application of Security Principles:
a. Separation (of domains)
d. Least Privilege
e. Simplicity (of design)
f. Minimization (of implementation)
g. Fail Safe Defaults / Fail Secure
j. Least Astonishment
k. Open Design
m. Reduce attack surfaces
- 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.
- Explain the importance of Design Reviews in creating secure systems
Below are the Knowledge, Skills, Abilities and Tasks (KSA-T) identified as being required to perform this work role.
Learn More about the KAS-T's.
||Knowledge of system software and organizational design standards, policies, and authorized approaches (e.g., International Organization for Standardization [ISO] guidelines) relating to system design.
||Knowledge of software quality assurance process.
||Knowledge of human-computer interaction principles.
||Knowledge of resiliency and redundancy.
||Knowledge of information technology (IT) security principles and methods (e.g., firewalls, demilitarized zones, encryption).
||Knowledge of system fault tolerance methodologies.
||Knowledge of software design tools, methods, and techniques.
||Skill in assessing the predictive power and subsequent generalizability of a model.
||Skill in the use of design modeling (e.g., unified modeling language).