Attacco SQL Injection: di che si tratta?

(di Alessandro Rugolo)
26/02/24

Quante volte avete sentito parlare di SQL Injection e vi siete ripromessi di capire di che si tratta, senza poi avere il tempo o la voglia di farlo?

Se avete tre minuti, provo a spiegarvelo io, in modo semplice.

Partiamo dal nome: SQLi, SQL Injection o, per esteso (in una delle possibili interpretazioni), "Structured Query Language Injection" è un tipo di attacco nei confronti del database di un'applicazione web che consiste nella esecuzione di una interrogazione malevola. Per completezza aggiungo che SQL è il linguaggio standard impiegato per interagire un database relazionale.

Ma cosa significa? Direte voi. 

Facciamo un esempio pratico. Pensate ad una pagina web di un sito di commercio online, in cui generalmente è possibile eseguire la ricerca e selezione di un prodotto da acquistare. Spesso nella casella di ricerca è possibile inserire delle stringhe di testo che includono dei simboli o dei caratteri speciali. Ebbene alcuni caratteri a noi possono sembrare innocui ma ciò non vale per il database che li interpreta in tutt'altro modo.

Cosa può accadere se si è vittima di un attacco SQLi?

Purtroppo può accadere di tutto.

Se i controlli sulle possibili interrogazioni del database sono sbagliati (o come capita ancora di vedere, inesistenti) è possibile che i dati contenuti al suo interno vengano modificati, cancellati, copiati o anche cifrati. Passare poi dal database ad altre aree del sistema non è difficile per cui un attaccante dotato di tempo e un minimo di risorse e conoscenze informatiche può fare veramente molti danni.

SQLi è uno degli attacchi più conosciuti e che ancora oggi funziona, principalmente a causa della cattiva programmazione delle pagine web in cui, come già accennato, non sono eseguiti i corretti controlli su ciò che un utente del sito può inserire come richiesta.

Questo tipo di attacco è noto pubblicamente almeno dal 1998, grazie all'articolo "NT Web Technology Vulnerabilities" uscito su Phrack a firma di Rain Forest Puppy, pseudonimo di Jeff Forristal, hacker ed esperto di sicurezza mondiale.

Per approfondire:

- http://phrack.org/issues/54/8.html

- https://www.esecurityplanet.com/networks/how-was-sql-injection-discovered/

- https://owasp.org/www-community/attacks/SQL_Injection