Codepath

Defense in depth

Defense in depth means having redundant security measures in place. Skydivers do not just take one parachute with them. They have a backup in case the first one fails. It is too important to risk everything on one point of failure. It is essential to have a secondary plan in place in case the primary plan fails. Secure systems avoid single points of failure.

Defense in depth also means have multiple layers of security. Medieval castles were often designed with moats surrounding high walls, surrounding, additional inner walls, protecting well-fortified buildings (keeps). Invaders would need to penetrate all the defenses to take the castle. (It is worth noting that "Defense in depth" was originally a military term.)

In security, the layers of defense are commonly grouped into three main categories: People, Technology, Process.


People

  • write security policies
  • follow best practices
  • assign responsibilities
  • perform system administration

Technology

  • firewalls
  • intrusion detection
  • web server, code, database, installed technologies
  • encryption
  • access controls

Process

  • technology evaluation, acquisition, and maintenance
  • data handling procedures
  • security monitoring
  • security responses
  • security reviews

Each category needs to be strong and each category should itself have multiple layers so there is no single failure point.

Fork me on GitHub