Secure by design
Software architects should strive to create software systems that are secure by design. By following proven security principles and practices, we can make our software applications more secure.
Minimizing the attack surface
The attack surface consists of all of the points that an attacker can use to get into a system. The design of a software system should attempt to minimize the total attack surface area as much as possible. Using different types of security control and following security principles and practices that are known to improve security can reduce the attack surface. One should consider the attack surface when choosing from among multiple approaches that will satisfy a particular functional requirement.
Defense in depth
Security tends to be more effective when a variety of techniques is used together. No security control is perfect, and defense in depth is the concept of using multiple techniques in conjunction and the belief that in doing so a software system will...