Difesa in profondità vs bassa complessità - Punto di equilibrio?

6

Ho fatto alcune domande relative agli schemi per varie funzioni relative alla sicurezza e ho proposto schemi per raggiungere questi obiettivi. Nelle risposte, vedo un conflitto tra due principi fondamentali della sicurezza IT; "difesa in profondità" (fai in modo che un attaccante non si rompa, ma molti livelli di sicurezza delle informazioni) e "La complessità è il nemico della sicurezza" (il principio KISS).

La domanda IMO è ovvia; quando uno di questi due ha la priorità sull'altro? Non puoi avere entrambi nell'estremo; l'aggiunta di livelli aumenta necessariamente la complessità del sistema, mentre semplificare la sicurezza in genere la "limita". C'è uno spettro tra la semplicità ideale "ideale" e la profondità infinita "ideale", e quindi un equilibrio da colpire. Quindi, quale di questi, quando sono in conflitto, è generalmente da preferire nella progettazione di uno schema di sicurezza delle informazioni?

    
posta KeithS 17.01.2013 - 21:25
fonte

3 risposte

4

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.

  1. 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
  2. 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à.

    
risposta data 17.01.2013 - 22:49
fonte
2

"Difesa in profondità" viene solitamente respinta da un sentimento di paranoia. Implementa i livelli su livelli di difesa in risposta a rantoli di panico da parte del management superiore.

"Bassa complessità" viene solitamente promosso al fine di ridurre i costi e i tempi di consegna. Riduci la complessità in modo da rispettare le scadenze imposte dal management superiore.

Spesso, il "management superiore" insisterà su entrambi gli aspetti allo stesso tempo. È quindi tuo compito informarli di quanto dettagli fastidiosi e fastidiosi come le Leggi della Fisica possano impedire o rallentare l'adempimento simultaneo di entrambi gli obiettivi.

In definitiva, questa non è una decisione tecnica; si tratta di economia . L'analisi del rischio dovrebbe mettere un prezzo alle intrusioni e quindi valutare quanto denaro in profondità può risparmiare nel lungo periodo, contenendo il danno derivante da un attacco riuscito. Allo stesso modo, maggiori costi di sviluppo e ritardi saranno forniti con le proprie stime finanziarie. Spetta ai responsabili decisionali bilanciare questi costi in quanto meglio si adatta alla loro strategia; il punto importante è che questa è una questione di politica , non di tecnologia .

    
risposta data 17.01.2013 - 21:43
fonte
1

La difesa in profondità e la semplicità non sono contraddittorie finché ogni livello è semplice e indipendente. Ogni livello non dovrebbe dipendere da altri livelli o in realtà non è una buona difesa in profondità. (Dal momento che in questo punto è solo un livello complesso.) Se ogni livello può essere lavorato separatamente e viene implementato in modo semplice, verificabile e gestibile, allora non c'è davvero niente in contrario.

    
risposta data 17.01.2013 - 22:53
fonte

Leggi altre domande sui tag