Tamponare gli attacchi di sql injection su SQLServer

Gli attacchi effettuati ai siti web attraverso sql injection devono essere bloccati attraverso la riscrittura del codice sorgente, al fine di evitare l’utilizzo diretto dei parametri passati attraverso querystring o post nelle query sql: su questo argomento si trova molta letteratura online.

Tuttavia ci sono casi dove questa attività potrebbe essere troppo dispendiosa, se non impraticabile (magari non abbiamo sviluppato noi il sito e lo dobbiamo solo erogare).

In questi casi si può tamponare l’attacco considerando il fatto che questi attacchi nella maggior parte dei casi prevedono l’iniezione di uno script sql che:

  • legge l’elenco delle tabelle e delle colonne da sysobects e syscolumns sulla database corrente, sfruttando la connessione attiva
  • crea dinamicamente procedure di update sui campi testo, appendendovi del codice javascript (che, una volta visualizzato dai browser lancerà a suo volta del codice maligno)

Facendo girare la webapplication con un utente sql che NON ABBIA i permessi di lettura su sysobjects e syscolumns il problema può essere tamponato.

Ovviamente il problema persiste nel caso in cui l’attaccante conosca la struttura del vostro database, anche se è un caso molto più raro (di norma si tratta di worm, non di attacchi mirati).

Published mercoledì 14 maggio 2008 10.36 by marcodelgatto

Comments

No Comments

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Powered by Community Server (Commercial Edition), by Telligent Systems