Software Engineering Methods, Tools, and Security
What the domain covers
This domain tests methods, tooling, and secure engineering. Expect model-driven and formal methods, prototyping, CI/CD, static and dynamic analysis, software composition analysis, threat modeling, and secure design principles.
Core rules
- Threat modeling identifies assets, entry points, trust boundaries, threats, and mitigations before coding.
- STRIDE classifies threats as spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privilege.
- Apply least privilege, defense in depth, secure defaults, input validation, output encoding, and secrets management.
- SAST analyzes source or bytecode; DAST tests running applications; SCA checks dependencies for known vulnerabilities.
- Security is a lifecycle concern, not only a testing phase.
Worked example
A login form sends credentials over HTTPS. Threat model: spoofing the server is mitigated by certificate validation; tampering in transit by TLS; information disclosure by not logging passwords; brute force by rate limiting and account lockout; credential stuffing by monitoring and multi-factor authentication. Reasoning: each mitigation maps to a specific threat and trust boundary, not a generic “add security” action.
Traps
- Treating SAST as sufficient; it misses runtime and configuration issues.
- Hardcoding secrets in source or build scripts.
- Validating input on the client only.
- Adding authentication without authorization checks.
Exam focus
Link each threat to a concrete mitigation and the lifecycle stage where it applies.