Requisiti principali per proteggere la mia applicazione in qualsiasi funzione relativa al database

1

Ho un'applicazione che è ospitata su un server Windows su cui esiste un DB SQL. Questo server comunica con i client e gli agenti installati sui PC host tramite connessioni TCP / IP e SSL. Attualmente mi sto concentrando su tutte le funzionalità di sicurezza relative al database. Quali sono i requisiti principali necessari per essere in grado di raggiungere un ambiente protetto a livello di database. I fattori principali che potrei pensare sono i seguenti:

  1. Account utilizzato dall'applicazione per accedere al database (account utente con privilegi minimi).
  2. Database crittografato.
  3. Controlla i diritti di accesso sul database.
  4. I dati nel database devono essere sottoposti a hash.
  5. Controlla i diritti di accesso sul server.
posta Optimus Prime 25.09.2013 - 10:53
fonte

2 risposte

1

Oltre a ciò che hai già elencato, devi validare tutti i dati passati al database. L'input non convalidato può portare allo scripting cross-site persistente o all'iniezione SQL.

Come convalidare l'input passato al database:

  • Identifica gli input dell'applicazione
  • Identifica i punti di ingresso del database
  • Crea e utilizza i validatori
  • Utilizza i parametri Type-Safe nelle istruzioni SQL (stored procedure e query con parametri)

La registrazione e il monitoraggio sono un altro miglioramento. Puoi agire in caso di qualsiasi comportamento anomalo. Ad esempio, è possibile applicare una serie di regole per rispondere quando l'applicazione commette un comportamento sospetto. Esistono strumenti / prodotti che l'attività del database montiros protegge e protegge con una serie di difese preconfigurate e consente di creare una politica di sicurezza personalizzata per il proprio ambiente. Puoi effettuare ricerche sul Web se non vuoi costruirti.

Inoltre, è possibile utilizzare un sistema di rilevamento delle intrusioni basato su host come OSSEC per l'analisi dei registri, il controllo dell'integrità dei file, il monitoraggio delle politiche, avviso in tempo reale e risposta attiva.

    
risposta data 25.09.2013 - 16:52
fonte
0

Se è possibile, una best practice è gestire tutta la logica del database con Stored Procedures e concedere all'account che accede al database l'accesso solo alle stored procedure, questo aiuterà a prevenire un hacker che acceda all'applicazione dall'accedere direttamente alle tabelle . Lo spostamento della logica aziendale nelle stored procedure può anche migliorare le prestazioni se riduce il numero di chiamate che l'applicazione deve effettuare sul database. Non utilizzare mai SQL dinamico, ancora una volta, che ti apre all'iniezione SQL e danneggia anche le prestazioni perché non sfrutta i piani di query memorizzati nella cache. È inoltre consigliabile crittografare le stored procedure.

    
risposta data 25.09.2013 - 17:12
fonte

Leggi altre domande sui tag