ABSTRACT

This chapter explores critical concepts of security perimeter and attack surface, which led to a list of design and development best practices for secure and resilient application software. The principle of least privilege is widely recognized as an important design consideration in enhancing the protection of data and functionality from faults and malicious behavior. In the Jurassic period of internal client–server applications and glass-house mainframe applications, administrators of networks and servers could rely on network security controls to protect users and devices from malicious or unwanted communications. The attack surface is usually larger than a typical application developer or software architect imagines. Sometimes attackers target the implementation rather than the actual theoretical weakness in a system. The principle of defense in depth emphasizes that security is increased markedly when it is implemented as a series of overlapping layers of controls and countermeasures that provide three elements needed to secure assets: prevention, detection, and response.