Partendo dal presupposto che probabilmente intraprenderai iniziative simili nel prossimo futuro, penso che sia necessario un approccio diverso da quello che è stato proposto nelle risposte precedenti. Vorrei suggerire di delineare e stabilire una strategia per "assicurare" le future applicazioni / sistemi. Utilizzando una strategia puoi garantire coerenza, delegare responsabilità e migliorare la tua pratica nel tempo.
Credo che la sicurezza di un server non dovrebbe essere fatta in un modo ad hoc, ma piuttosto metodologicamente e coerentemente. Dovrebbe essere un processo ripetibile con il minor spazio possibile per gli errori. Noi umani siamo notoriamente cattivi nel ricordare i dettagli, spesso mescolando bit di informazione in qualcosa di completamente diverso.
Nello scenario che descrivi sopra usando una prospettiva di Disponibilità sembra essere per lo più rilevante e utile. Inizia descrivendo stabilire le dipendenze del sistema. Quali altri sistemi devono essere accessibili per il corretto funzionamento dell'applicazione? Dipende da una directory utente esterna? Le dipendenze sono importanti perché aiutano a capire meglio i potenziali "viali", o vettori, di attacco.
Prossimi dettagli di chi deve avere accesso al sistema e al "terminale" di accesso primario (desktop remoto, workstation, laptop, telefono cellulare, ecc.). In questo modo avrai iniziato a stabilire il tuo schema di riferimento o il limite del sistema, se lo desideri.
È molto probabile che ci siano dei limiti organizzativi a cui devi semplicemente obbedire. Questi potrebbero includere metodi di autenticazione obbligatori dell'azienda, algoritmi di crittografia e simili, descrivere e documentare queste limitazioni. Potrebbe anche essere necessario prendere in considerazione i requisiti legali e ora potrebbe essere un buon momento per scoprirlo.
Una volta stabiliti i blocchi fondamentali più "fondamentali" del tuo sistema, è tempo di un po 'di brainstorming creativo. Prova e descrivi tutte le potenziali vie attraverso le quali tu (o un utente malintenzionato) potresti accedere al sistema usando la descrizione di sistema di cui sopra come una sorta di limitazione.
Quello che dovrai fare successivamente è determinare quali controlli di sicurezza garantirebbero la protezione più appropriata. Sì, lo so, è qui che le cose si complicano perché è un processo un po 'soggettivo, ma è necessario. Ogni contromisura che si determina è necessaria sarà associata ad un certo costo (tempo di installazione, configurazione, manutenzione ed eventualmente ritiro).
Dovresti anche provare a descrivere con una sorta di misura quantitativa come "bene" una serie di contromisure attenui un particolare rischio, o "limiti" una via d'attacco. Credo che questo sia importante soprattutto per la "gestione superiore", parla una lingua di numeri. Ad esempio, un'implementazione "buona" delle password salate eliminerà completamente la minaccia degli hash precomputed e potrebbe quindi essere descritta come una contromisura "ad alta sicurezza".
In breve:
- Determina l'obiettivo / obiettivo di sicurezza principale (riservatezza, integrità e disponibilità)
- Stabilire le dipendenze del sistema
- Chi, come e quando?
- Dettaglio dei requisiti / limitazioni / vincoli organizzativi e / o legali
- Brainstorm attack vettors (supponiamo che si possa chiamare questa una leggera analisi delle minacce)
- Scegli le contromisure appropriate per il sistema in questione
- Crea arcobaleni, carte colorate e unicorni.