Progettare un'architettura sicura significa strutturare sistemi con i principi di sicurezza integrati — difesa in profondità, privilegi minimi, zero trust, impostazioni predefinite sicure e altro ancora. Questi principi guidano la creazione di sistemi resilienti agli attacchi per design.
Principi di sicurezza core
DEFENSE IN DEPTH → multiple LAYERS of security (network, app, data, etc.) → no single
point of failure; if one layer fails, others still protect
LEAST PRIVILEGE → every component/user gets the MINIMUM access needed → limits blast radius
ZERO TRUST → "never trust, always verify" → don't trust based on network location;
authenticate/authorize every request (vs old "trusted internal network" model)
SECURE DEFAULTS → secure out of the box (closed by default, opt-in to open)
FAIL SECURELY → on failure, default to a SAFE/denied state (not open)
