Defense-in-Depth

Defense-in-depth is a security strategy that uses multiple layers of defenses so that if one layer fails, others still protect the system. The idea comes from military fortification — castles didn’t rely on a single wall; they had moats, outer walls, inner walls, keeps, and so on. Breaching one didn’t mean the attacker won.

In Information Security

This translates to combining different controls rather than depending on any single one. A typical stack might include:

  • Perimeter defenses — firewalls, network segmentation
  • Endpoint protection — antivirus, host hardening
  • Identity controls — authentication, MFA, least-privilege access
  • Application-level safeguards — input validation, secure coding
  • Data protections — encryption at rest and in transit
  • Monitoring and detection — logging, intrusion detection, SIEM
  • Operational practices — patching, backups, incident response

Core Assumption

Any single control will eventually fail or be bypassed — through bugs, misconfiguration, insider action, or a novel attack. Layering means an attacker has to defeat several independent mechanisms in sequence, which:

  • Raises the cost of attack
  • Increases the chance of detection
  • Limits blast radius when something does go wrong

What It Is Not

  • Not stacking redundant copies of the same control (ten firewalls in a row)
  • Not an excuse for weak individual layers

The layers should be diverse — different mechanisms addressing different failure modes — and each should be reasonably strong on its own.

Beyond IT

The concept applies broadly: safety engineering, nuclear plants, aviation, and everyday systems work all use the same principle. For example, in a webhook processing pipeline:

  • Idempotent webhook handlers (application layer)
  • Database constraints (data layer)
  • Monitoring and alerting (detection layer)

Each layer catches failures the others might miss.