Insecure Design
Insecure design refers to fundamental design flaws rather than implementation bugs. It represents a category of weaknesses expressed as missing or ineffective control design.
Examples
- No rate limiting on authentication endpoints
- Security questions that can be easily guessed
- Insecure password recovery flows
- Missing business logic validation
Prevention
- Use threat modeling during design
- Establish secure development lifecycle
- Use secure design patterns
- Write abuse case stories alongside user stories
- Implement security requirements from the start