View Full Version : librerie java per analisi stringhe sql alla ricerca di injection
Ciao,volevo chiedervi una cosa che qui in azienda in questi giorni sarebbe utile avere…
dopo problemi con un cliente che ha rilevato problemi (evidenti) di sicurezza nel nostro sw stiamo di corsa tappando varie falle.
In particolare per quanto riguarda sql injection.. oltre a vari controlli che stanno pianificando di far fare nel codice.. volevo sapere se qualcuno è a conoscienza di qualche libreria java che possa cmq in fase di execute dello statement fare una vlautazione di massima sulla stringa sql per identificare eventuali ‘rischi’ di injection per come la query è stata costruita?
sottovento
09-10-2012, 05:52
Ciao,volevo chiedervi una cosa che qui in azienda in questi giorni sarebbe utile avere…
dopo problemi con un cliente che ha rilevato problemi (evidenti) di sicurezza nel nostro sw stiamo di corsa tappando varie falle.
In particolare per quanto riguarda sql injection.. oltre a vari controlli che stanno pianificando di far fare nel codice.. volevo sapere se qualcuno è a conoscienza di qualche libreria java che possa cmq in fase di execute dello statement fare una vlautazione di massima sulla stringa sql per identificare eventuali ‘rischi’ di injection per come la query è stata costruita?
Le PreparedStatement non sono abbastanza sicure, in particolare per l'sql injection?
Cmq http://sqlmap.org/ potrebbe esserti di aiuto
ciao e grazie per la risposta :)
i PreparedStatement sarebbero ovviamente perfetti ma l'applicazione che è molto vasta e complessa non sempre può permettersi di usarli... dove possibile cmq verrà fatto
il link che mi hai dato se non ho capito male è un penetration testing tool
quello che intendevo io era una semplice libreria open alla quale passando una stringa che rappresenta l'sql costruito dall'applicazione da far girare e la analizzasse individuando eventuali rischi per come è stata costruita (per esempio presenze di ; fuori dalle stringhe... aperture di commenti -- e altri eventuali controlli più 'evoluti')
spero di essermi spiegato :)
sottovento
10-10-2012, 13:05
Il problema, come sai, non e' di facile soluzione.
Googlando un po' (immagino l'avrai gia' fatto anche tu) ho visto che ci sono diversi paper che descrivono librerie per la convalida di una query, al fine di evitare sql injection. Pero' non ho trovato nulla di scaricabile.
Magari potresti guardare questa pagina:
http://www.cc.gatech.edu/~orso/software.html
Il tipo in questione ha fatto qualcosa che sembra interessante, scaricabile pero' su richiesta. Prova a sentirlo.
In alternativa, potresti provare a cercare una libreria per il parsing delle stringhe sql (suppongo siano facili da trovare). Generalmente ti restituiscono un albero di simboli, ovviamente classificati mediante l'analisi lessicale.
A questo punto, potresti confrontare l'albero che ottieni dopo la sostituzione dell'input con quello che ti aspetti di ottenere. Se sono diversi-->zac :D
My 2 cents
ciao e grazie per la risposta :)
i PreparedStatement sarebbero ovviamente perfetti ma l'applicazione che è molto vasta e complessa non sempre può permettersi di usarli... dove possibile cmq verrà fatto
il link che mi hai dato se non ho capito male è un penetration testing tool
quello che intendevo io era una semplice libreria open alla quale passando una stringa che rappresenta l'sql costruito dall'applicazione da far girare e la analizzasse individuando eventuali rischi per come è stata costruita (per esempio presenze di ; fuori dalle stringhe... aperture di commenti -- e altri eventuali controlli più 'evoluti')
spero di essermi spiegato :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.