D487 SECURE SOFTWARE DESIGN
UPDATED ACTUAL QUESTIONS AND
CORRECT ANSWERS
◉ Goals of SDL
Answer: 1. Reduce the number of security vulnerabilities &
privacy problems
2. Reduce the severity of the vulnerabilities that remain
◉ SDLC
Answer: Software Development Life Cycle
- Important elements include:
1. Threat modeling
2. Applying principles such as least privilege & defense in depth
◉ Software Security
Answer: - Building security into the software through a SDL in an
SDLC
,- Principles:
1. Designing software to be secure
2. Making sure that software is secure
3. Educating devs, architects, & users about how to build security
in
◉ Application Security
Answer: - Protecting the software and the systems on which it
runs AFTER release
- Principle:
1. Protecting software & the systems that software runs post-
facto, after development is complete
◉ Static Analysis
Answer: - The process of reviewing source code, manually or
using automated tools, without running the program
- Static analysis tools (aka Taint Analysis) look for unfiltered or
unsanitized inputs in app code
- Can be applied before a program reaches completion at which
testing can be meaningfully performed
- Cannot:
,- Evaluate design & architectural flaws
- Identify poorly designed cryptographic libraries or improperly
selected algorithms
- Point out design problems that might cause confusion between
authentication & authorization
- Identify passwords or magic numbers embedded in code
◉ Dynamic Analysis
Answer: - Software testing that examines code behavior during
runtime, helping to identify potential security issues, potential
performance issues, and other problems
◉ Threat Modeling
Answer: - A proactive, design-phase activity used to identify and
mitigate security vulnerabilities before code is written (think like
a hacker)
- It bridges security (SLD) and production (SDLC) by ensuring
systems are architected securely and that these security standards
are continuously enforced throughout the entire software lifecycle
- Understand the potential security threats to the system,
determine risk, & establish appropriate mitigations
- Occurs early in the project lifecycle & can be used to find security
design issues before code is committed
, - Helps businesses:
1. Manage software risk
2. Creates awareness of security dependencies & assumptions
3. Provides the ability to translate technical risk into business
impact
◉ Secure Code
Answer: - Code is built securely against attacks
- Prevents exploitation by malicious actors
- Protecting systems from vulnerabilities (e.g., SQL injections, XSS,
buffer overflows), enforcing data privacy, and managing system
access
- Role in SDL:
- Focuses on systemic risk management, threat modeling,
compliance with regulatory standards (e.g., NIST, GDPR), and
long-term resilience against evolving attack vectors
- Role in SDLC:
- Demands threat modeling and identifying attack surfaces
- Relies on secure coding standards (input sanitization, avoiding
hardcoded secrets)
UPDATED ACTUAL QUESTIONS AND
CORRECT ANSWERS
◉ Goals of SDL
Answer: 1. Reduce the number of security vulnerabilities &
privacy problems
2. Reduce the severity of the vulnerabilities that remain
◉ SDLC
Answer: Software Development Life Cycle
- Important elements include:
1. Threat modeling
2. Applying principles such as least privilege & defense in depth
◉ Software Security
Answer: - Building security into the software through a SDL in an
SDLC
,- Principles:
1. Designing software to be secure
2. Making sure that software is secure
3. Educating devs, architects, & users about how to build security
in
◉ Application Security
Answer: - Protecting the software and the systems on which it
runs AFTER release
- Principle:
1. Protecting software & the systems that software runs post-
facto, after development is complete
◉ Static Analysis
Answer: - The process of reviewing source code, manually or
using automated tools, without running the program
- Static analysis tools (aka Taint Analysis) look for unfiltered or
unsanitized inputs in app code
- Can be applied before a program reaches completion at which
testing can be meaningfully performed
- Cannot:
,- Evaluate design & architectural flaws
- Identify poorly designed cryptographic libraries or improperly
selected algorithms
- Point out design problems that might cause confusion between
authentication & authorization
- Identify passwords or magic numbers embedded in code
◉ Dynamic Analysis
Answer: - Software testing that examines code behavior during
runtime, helping to identify potential security issues, potential
performance issues, and other problems
◉ Threat Modeling
Answer: - A proactive, design-phase activity used to identify and
mitigate security vulnerabilities before code is written (think like
a hacker)
- It bridges security (SLD) and production (SDLC) by ensuring
systems are architected securely and that these security standards
are continuously enforced throughout the entire software lifecycle
- Understand the potential security threats to the system,
determine risk, & establish appropriate mitigations
- Occurs early in the project lifecycle & can be used to find security
design issues before code is committed
, - Helps businesses:
1. Manage software risk
2. Creates awareness of security dependencies & assumptions
3. Provides the ability to translate technical risk into business
impact
◉ Secure Code
Answer: - Code is built securely against attacks
- Prevents exploitation by malicious actors
- Protecting systems from vulnerabilities (e.g., SQL injections, XSS,
buffer overflows), enforcing data privacy, and managing system
access
- Role in SDL:
- Focuses on systemic risk management, threat modeling,
compliance with regulatory standards (e.g., NIST, GDPR), and
long-term resilience against evolving attack vectors
- Role in SDLC:
- Demands threat modeling and identifying attack surfaces
- Relies on secure coding standards (input sanitization, avoiding
hardcoded secrets)