1 Defense in depth

 

This chapter covers

  • Defining your attack surface
  • Introducing defense in depth
  • Adhering to standards and best practices
  • Decomposing security into fundamentals
  • Identifying Python security tools

We trust organizations with our personal information more now than ever. For each of us, some of this personal information has been surrendered to attackers by now. Visit https://haveibeenpwned.com if you find this hard to believe. This site allows you to search through billions of compromised accounts by email address. It is only a matter of time before another one of our accounts ends up in this database. As software users we have developed an appreciation for security through this common experience.

If you’ve opened this book then I’m betting you appreciate security for an additional reason. Like me, you don’t just want to use secure systems, you want to create them as well. Most programmers value security, but they don’t always have the background to make it happen. I wrote this book to provide you with a toolset for building this background.

Security is the ability to resist attack. This chapter decomposes security from the outside in, starting with attacks. The subsequent chapters cover the tools you need to implement layers of defense, from the inside out, in Python.

1.1      Attack surface

1.2      Defense in depth

1.2.1   Security standards

1.2.2   Best practices

1.2.3   Security fundamentals

1.3      Tools

1.4      What’s in scope?

1.5      Summary