Unit 12 — Secure Software Engineering¶
Learning objectives¶
- Integrate security concerns into requirements, design, implementation, testing, and deployment.
- Perform lightweight threat modeling.
- Recognize common classes of implementation and supply-chain risk.
Security is a lifecycle concern¶
Security cannot be added only at the end. Requirements define protected assets, architecture establishes trust boundaries, implementation introduces vulnerabilities, dependencies create supply-chain risk, and operations determine exposure.
Lightweight threat modeling¶
Ask:
- What are we building?
- What valuable assets exist?
- Where are the trust boundaries and entry points?
- What can go wrong?
- What mitigations and detection mechanisms exist?
- How will we verify them?
Secure engineering checklist¶
- Validate untrusted input.
- Enforce authentication and authorization separately.
- Apply least privilege.
- Protect secrets and sensitive data.
- Keep dependencies managed and scanned.
- Log security-relevant events without leaking secrets.
- Include negative and abuse-case tests.
- Review high-risk changes carefully.
Danger
Never place real credentials in coursework repositories, screenshots, logs, or example configuration files.