Questo è scritto dal punto di vista di uno sviluppatore di software e project manager, che spesso ha bisogno di gestire i dati sensibili nelle app che sono coinvolto nella creazione.
Defense In Depth non è necessariamente in contrasto con il principio di semplicità. La semplicità è difficile , e non è quello che pensi. La semplicità non significa necessariamente mancanza di sforzo.
Può (e in questo caso, penso che di solito significhi) non utilizzare meccanismi complessi e autocostruiti quando esistono pratiche / strumenti consolidati.
Può anche significare mantenere i tuoi sistemi semplici per ridurre la superficie di attacco o renderli bersagli meno attraenti non memorizzando il tipo di dati che le persone vogliono rubare.
C'è una vera arte, oltre che scientifica nel trovare il giusto equilibrio tra semplicità e funzionalità, ma nella mia esperienza, quando si parla di semplicità, la semplicità in alcuni aspetti è una delle chiavi per la difesa in profondità.
L'essenza di ciò che cercherò di ottenere qui è che la quantità di tempo che impieghi per difendere la tua applicazione dovrebbe essere proporzionale alla sensibilità dei dati contenuti all'interno e alle dimensioni dell'area di attacco.
Ecco due modi in cui la semplicità aggiunge alla difesa in profondità sottraendo qualcosa.
-
Decidendo attentamente se archiviare i dati sensibili in primo luogo
- Una delle verità più incredibilmente evidenti sulla protezione dei dati sensibili è che se non si dispone di dati sensibili, non è necessario proteggerli.
- Durante lo sviluppo di sistemi / software, la cosa più semplice che puoi fare per aumentare la sicurezza relativa del tuo sistema è farlo limitando i dati sensibili in primo luogo.
- Decidendo di non archiviare dati sensibili non necessari, lo rendi più semplice, ma eserciterai la difesa in profondità considerando la difesa come parte della tua fase di raccolta dei requisiti iniziali
-
Riduzione della superficie di attacco
- Simile a quanto sopra, ma questa volta guardando le caratteristiche. Ogni singolo controllo di input dell'utente - casella di testo, elenco a discesa, ecc. È una potenziale "finestra" che, se non protetta, può essere un punto di ingresso per un utente malintenzionato. Se non si riesce a convalidare l'input o non si riesce a disinfettare l'output, tale controllo potrebbe essere vulnerabile a qualsiasi numero di attacchi noti. Come sviluppatore, posso dirti che quando si creano siti / moduli grandi e complessi, è facile perdere un controllo di validazione qui o convalidare qualcosa in modo errato lì.
- L'azienda potrebbe desiderare un'interfaccia elegante con tutti i tipi di campane e fischietti, ma il vantaggio di avere quell'interfaccia / funzionalità dovrebbe essere valutato rispetto al costo di messa in sicurezza e al rovescio della maggiore superficie di attacco. li>
Inoltre, mantenere la sicurezza semplice non significa necessariamente limitare le difese a meno difese. Mantenere semplice la sicurezza significa semplicemente non renderlo più difficile del necessario. I modi in cui è possibile mantenere la sicurezza semplice e includono ancora la difesa in profondità:
- Avere impostazioni predefinite sicure. Stabilisci le tue normali difese. Puoi avere cinquanta strati di difese, ma se sai qual è la tua linea di base, la stai ancora mantenendo semplicemente seguendo la normale routine.
- Uso delle best practice consolidate. Simile a quanto sopra, per quasi tutti i tipi di I.T. attività, esiste già una serie consolidata di buone pratiche. Semplicemente seguirli invece di inventare schemi selvatici per se stessi mantiene le cose semplici.
- Utilizzo di strumenti consolidati e affidabili. Ovviamente, nessuno strumento è infallibile, ma se si aggiungono livelli di difesa, l'uso di strumenti consolidati invece di creare il proprio o utilizzare strumenti meno noti e non supportati rende le cose più semplici a lungo termine. Avrai una documentazione migliore, una community di utenti più ampia per il supporto e una maggiore probabilità che, in caso di problemi, venga tempestivamente riparata.
La difesa in profondità riguarda gli strati di sicurezza. Mantenere ogni strato il più semplice possibile è la chiave per applicare il principio del semplice approccio a una strategia di difesa in profondità.