Metodi di Rilevamento delle SQL Injection
Il rilevamento delle SQL injection è in qualche modo simile al filtraggio dello spam nelle email. I problemi che i sviluppatori di tali sistemi devono risolvere sono anche simili.
Vediamo quindi i metodi di filtraggio dello spam utilizzati dai server email:
- Analisi del testo dei messaggi con vari algoritmi (ad esempio il filtraggio bayesiano).
- Filtraggio dei contenuti. Include la ricerca di segni di spam come link, offerte di prodotti, parole chiave ecc. nel testo dei messaggi.
- Filtraggio basato su informazioni statistiche sulle decisioni prese da altri utenti del server email (vedere se hanno contrassegnato messaggi simili come spam).
- Utilizzo di informazioni sulla credibilità del server di posta ricevute da altri servizi.
Ognuno di questi test è diviso in sotto-test. A ciascun sotto-test viene assegnato un certo “costo” (in punti). Se il messaggio in arrivo supera il sotto-test, i suoi punti vengono aggiunti al punteggio complessivo del test. Il punteggio può 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 ha una soglia personalizzabile. Se il punteggio complessivo del test supera la soglia, il messaggio è considerato spam. Di solito, la soglia è configurata in modo tale che non sia sufficiente per un messaggio superare un solo test per superare il valore soglia (per essere contrassegnato come spam). I principi di funzionamento di altri filtri sono simili a quelli di Spam Assassin.
Nessun metodo di filtraggio dello spam da solo garantisce una protezione completa contro i messaggi indesiderati così come contro i falsi allarmi. Ecco perché nella pratica viene utilizzata una combinazione di vari metodi. La configurazione della soglia complessiva e del “costo” dei sotto-test deve determinare il “livello di sospetto” del filtro.
Il filtraggio delle SQL injection funziona quasi in modo simile ai filtri anti-spam. A livello DAF, nella maggior parte dei casi si incontrano codici SQL validi, per questo motivo è necessario utilizzare segni indiretti quando si determina se la query è SQL-injected.
DataSunrise può rilevare le SQL injection 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 questi commenti contengono parti della query SQL.
- Blocchi OR e UNION nel codice della query.
- Altre condizioni.
La capacità di rilevare ogni segno da solo non è sufficiente per il riconoscimento di un attacco SQL injection, ma la capacità di individuare tutti questi segni in una query consente a DataSunrise di stabilire una protezione essenziale, come mostrato nell’esempio dimostrativo di come DataSunrise protegge dalle SQL injection.
Infine, va menzionato che la protezione completa contro gli attacchi SQL injection può essere raggiunta solo usando un server di applicazione di qualità e debitamente testato.