Design
#1
Conduct a threat modeling exercise
Identify the potential threats that the software may be exposed to and determine how they will be mitigated.
#2
Design for security
Consider security at every step of the design process and ensure that the software is designed to be secure.
#3
Use secure design patterns
Leverage design patterns that have been proven to be secure, such as the "principle of least privilege" and "fail-safe defaults".
#4
Use a design review
Have a team of developers or security experts review the design to ensure that it is secure.