
Rilevamento delle Iniezioni SQL: Consigli di Sicurezza per i Suoi Database
Il rilevamento delle iniezioni SQL è in qualche modo simile al filtraggio dello spam delle email. I problemi che gli sviluppatori di tali sistemi devono risolvere sono anche simili.
Guardiamo quindi ai metodi di filtraggio dello spam utilizzati dai server di posta elettronica:
- Analizzare il testo dei messaggi con vari algoritmi (ad esempio, il filtraggio bayesiano).
- Filtraggio del contenuto. Include la ricerca di segni di spam come link, offerte di prodotti, parole chiave ecc. nel testo dei messaggi.
- Filtraggio basato su informazioni statistiche riguardo le decisioni prese da altri utenti del server di posta elettronica (esaminando se hanno contrassegnato messaggi simili come spam).
- Utilizzare informazioni sulla credibilità del server di posta ricevuto da altri servizi.
Ognuno di questi test è suddiviso in sotto-test. Un certo “costo” (in punti) è assegnato a ciascun sotto-test. Se il messaggio in arrivo supera il sotto-test, i suoi punti vengono aggiunti al punteggio complessivo del test. Il punteggio potrebbe essere sia positivo che negativo. Quando il test di un messaggio è completato, il sistema anti-spam somma il punteggio complessivo. Più alto è il punteggio, maggiore è la possibilità che il messaggio testato contenga spam.
Ad esempio, il filtro antispam Spam Assassin dispone di una soglia personalizzabile. Se il punteggio complessivo del test supera la soglia, il messaggio è considerato come spam. Di solito, la soglia è configurata in modo tale che non basta che un messaggio superi un test per eccedere la soglia (per essere contrassegnato come spam). I principi operativi degli altri filtri sono simili a quelli di Spam Assassin.
Nessun metodo di filtraggio dello spam da solo garantisce piena protezione contro messaggi indesiderati così come contro falsi allarmi. Ecco perché in pratica si usa una combinazione di vari metodi. Configurare la soglia complessiva e il “costo” dei sotto-test serve a determinare il “livello di sospetto” del filtro.
Il filtraggio delle iniezioni SQL funziona quasi come i filtri antispam. A livello DAF, nella maggior parte dei casi ci si imbatte in codice SQL valido, ecco perché è necessario utilizzare segni indiretti quando si determina se la query è oggetto di SQL injection.
DataSunrise può rilevare iniezioni SQL basandosi sui seguenti segni.
- Numero di query non valide provenienti da un certo host o emesse da un certo client.
- Presenza di condizioni costanti nella query che restituiscono sempre TRUE o FALSE.
- Se ci sono commenti nel corpo della query e se tali commenti contengono parti di query SQL.
- Blocchi OR e UNION nel codice della query.
- Altre condizioni.
L’abilità di rilevare ciascun segno singolarmente non è sufficiente per riconoscere un attacco di SQL injection, ma la capacità di individuare tutti questi segni in una query consente a DataSunrise di stabilire una protezione essenziale, come dimostrato nell’esempio dimostrativo di come DataSunrise protegge dalle iniezioni SQL.
Infine, va menzionato che una protezione completa contro gli attacchi SQL injection può essere raggiunta solo utilizzando un server applicativo di qualità e adeguatamente testato.