domenica 31 luglio 2011

SQL Injection Web Application Attack. L'attacco Sql Injection


I DataBase rappresentano il luogo dove vengono custodite le informazioni per la loro natura costituiscono spesso la parte più importante nella realizzazione di un progetto. E' facile quindi intuire perché gli hackers sono attratti da questi sistemi, in quanto contengono informazioni spesso di natura confidenziale come numeri di carte di credito, dati personali, dati di natura finanziaria ecc., ma spesso chi attacca è molto più affascinato dal fatto che un database è un elemento importante nel funzionamento di una applicazione è quindi viene dedicato molto tempo da parte degli sviluppatori per renderlo sicuro, poter bucare quindi un sistema con alto grado di sicurezza diventa per un hacker una sfida allettante, visto che sa bene che spesso oltre a poter accedere alle informazioni contenute nel database bucandolo può avere il completo controllo dell'applicazione che lo utilizza .

Spesso i siti vengono realizzati con database per permettere una migliore gestione dei contenuti e la possibilità per gli utenti di interagire (come forum, sondaggi ecc).

La sicurezza di un sito oltre a dipendere dalla configurazione del web server dipende anche da chi sviluppa le applicazioni web. L'attacco SQL Injection è una tecnica di exploiting della applicazione web che interessa qualsiasi linguaggio di programmazione e qualsiasi DBMS

La SiglaSQL sta per Structured quer Language è il linguaggio usato per interagire con i database relazionali. Un'istruzione SQL può interrogare il database, modificare il contenuto e cambiare la struttura.

Gli attacchi portati con questa tecnica producono l'effetto di poter inserire ed estrarre, eliminare dati nel database a piacimento , in molti casi vengono utilizzati per ottenere l'accesso alle aree di amministrazione di siti web dinamici.

In cosa consiste l'Attacco SQL Injection

Come abbiamo detto i siti web di ultima generazione basano molti dei loro servizi sull'utilizzo di database, quindi all'interno delle pagine web vengono implementate diverse query che spesso acquisiscono dall'esterno informazioni e dati(proprio per permettere l'interattività del sistema). Questo tipo di attacco consiste quindi nel manipolare dall'esterno le query nel database. E' possibile attaccare un sito con SQL Injection manipolando l'sql tramite URL (query String) form di compilazione quindi forum sondaggi, motori di ricerca sistemi di identificazione per arie riservate ecc..

Sito Web Dinamico

Per fissare meglio il concetto di sito web dinamico, un semplice esempio è la visualizzazione delle pagine che spesso è effettuata utilizzando la tecnica delle query String.
http://www.nomesito.it/VisualizzaArticolo.asp?titolo=Sicurezza


il programmatore nella pagina VisualizzaArticolo.asp avrà implementato un codice che prima recupera il valore passato nell'indirizzo del browser, quindi titolo=sicurezza e poi effettuerà una query del tipo :


SELECT titolo,testo FROM articoli WHERE titolo='Sicurezza'


visualizzando quindi il titolo ed il testo del record con campo titolo=Sicurezza


In questo modo la pagina VisualizzaArticolo.asp modifica il suo contenuto a seconda del titolo dell'articolo che viene richiesto

Dim titolo_richiesto, SQL
titolo_richiesto=request.QueryString("id") 'recupero il valore della variabile id inviato nell'url
SQL="SELECT * FROM articoli WHERE titolo='"&titolo_richiesto& "'"
Set rec = Server.CreateObject("ADODB.Recordset")
Set Rec=Conn.Execute(SQL)
Response.Write(Rec("titolo")&" "&Rec("testo")) 'stampo i campi
Rec.close
L'Attacco
Cosa succede se si manipola l'input della query string
la nostra query si modifica e iniettando particolari codici nella query è possibile manipolare i risultati
Per ovvie ragioni non scendo nei dettagli dell'attacco, questo testo a solo l' obiettivo di mettere al corrente i web master dei pericoli che si corrono non proteggendo adeguatamente le applicazioni web 

Nessun commento:

Posta un commento