Cos'è un attacco di SQL injection?
Forse non sapete cosa sia un attacco SQL injection (SQLI) o come funzioni, ma sicuramente conoscete le vittime. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn e Sony Pictures: tutte queste aziende sono state violate da criminali informatici che hanno utilizzato iniezioni SQL.
Un SQLI è un tipo di attacco con cui i criminali informatici sfruttano le vulnerabilità del software nelle applicazioni web allo scopo di rubare, cancellare o modificare i dati o di ottenere il controllo amministrativo sui sistemi che eseguono le applicazioni interessate.
I ricercatori in cybersecurity considerano le SQLI come una delle minacce informatiche meno sofisticate e più facili da difendere. Malwarebytes Labs ha classificato le SQLI al terzo posto in Le 5 minacce informatiche più stupide che funzionano comunque, citando il fatto che le SQLI sono un attacco noto e prevedibile con contromisure facilmente implementabili.
Gli attacchi SQLI sono così facili che gli aggressori possono trovare siti web vulnerabili usando ricerche avanzate di Google, chiamate Google Dorking. Una volta trovato un obiettivo adatto, gli attaccanti SQLI possono utilizzare programmi automatizzati per eseguire efficacemente l'attacco per loro. Tutto ciò che devono fare è inserire l'URL del sito target e guardare i dati rubati fluire.
Eppure, gli attacchi SQLI sono all'ordine del giorno e accadono ogni giorno. Infatti, se hai un sito web o un'attività online, i cybercriminali hanno probabilmente già provato a usare il SQLI per entrare nel tuo sito. Uno studio del Ponemon Institute sulla minaccia delle injectioni SQL e recenti violazioni retail ha rilevato che il 65% delle aziende intervistate erano vittime di un attacco basato su SQLI.
Le applicazioni web frequentemente prese di mira includono: siti di social media, rivenditori online e università. Le piccole e medie imprese sono particolarmente vulnerabili in quanto spesso non sono al corrente delle tecniche utilizzate dai cybercriminali in un attacco SQLI e, allo stesso modo, non sanno come difendersi da tali attacchi.
Con questo detto, facciamo il primo passo per difenderci da un'injectione SQL educandoci sull'argomento. Ecco la tua introduzione alle injectioni SQL.
Come funziona un SQL injection?
Sviluppato nei primi anni '70, SQL (abbreviazione di structured query language) è uno dei linguaggi di programmazione più antichi ancora in uso oggi per la gestione di database online. Questi database contengono cose come prezzi e livelli di inventario per i siti di shopping online. Quando un utente ha bisogno di accedere alle informazioni del database, viene utilizzato SQL per accedere e presentare quei dati all'utente. Ma questi database possono contenere anche dati più sensibili e preziosi come nomi utente e password, informazioni sulle carte di credito e numeri di previdenza sociale. È qui che entrano in gioco le injectioni SQL.
In parole povere, un'iniezione SQL avviene quando gli hacker criminali inseriscono comandi dannosi nei moduli web, come il campo di ricerca, il campo di login o l'URL, di un sito web non sicuro per ottenere l'accesso non autorizzato a dati sensibili e preziosi.
Ecco un esempio. Immaginate di andare sul vostro sito di abbigliamento online preferito. State acquistando dei calzini e vi trovate davanti a un mondo in technicolor di calzini colorati, tutti disponibili con un semplice clic del mouse. Le meraviglie della tecnologia! Ogni calzino che vedete esiste in un database su un server da qualche parte. Quando trovate un calzino che vi piace e fate clic su di esso, inviate una richiesta al database dei calzini e il sito di shopping risponde con le informazioni sul calzino che avete cliccato. Ora immaginate che il vostro sito di shopping online preferito sia costruito in modo approssimativo, pieno di vulnerabilità SQL sfruttabili.
Un criminale informatico può manipolare le query del database in modo tale che una richiesta di informazioni su un paio di calzini restituisca il numero di carta di credito di qualche sfortunato cliente. Ripetendo questo processo più e più volte, un criminale informatico può scandagliare le profondità del database e rubare informazioni sensibili su ogni cliente che abbia mai fatto acquisti sul vostro sito di abbigliamento online preferito, compresi voi. Se si vuole approfondire l'esperimento di pensiero, immaginate di essere il proprietario di questo sito di abbigliamento. Avete per le mani un'enorme violazione dei dati.
Un attacco SQLI può portare ai criminali informatici informazioni personali, e-mail, login, numeri di carte di credito e numeri di previdenza sociale di milioni di consumatori. I criminali informatici possono poi rivendere queste informazioni personali negli angoli più oscuri del dark web, per utilizzarle per ogni tipo di scopo illegale.
Le e-mail rubate possono essere utilizzate per attacchi di phishing e malspam. Gli attacchi di malspam, a loro volta, possono essere utilizzati per infettare le vittime con ogni tipo di malware distruttivo come ransomware, adware, cryptojackers e Trojan (ad esempio Emotet), per citarne alcuni. I numeri di telefono rubati per Android e iOS possono essere presi di mira con robocall e messaggi di testo spam.
I login rubati dai siti di social network possono persino essere utilizzati per inviare spam di messaggi e rubare ulteriori login per altri siti. Malwarebytes Labs ha precedentemente riportato di account LinkedIn hackerati utilizzati per inviare spam ad altri utenti con messaggi InMail contenenti URL dannosi contraffatti per somigliare a una pagina di accesso di Google Docs, tramite cui i cybercriminali potevano raccogliere nomi utente e password Google.
Qual è la storia delle injectioni SQL?
L'exploit SQL injection è stato documentato per la prima volta nel 1998 dal ricercatore di sicurezza informatica e hacker Jeff Forristal. Le sue scoperte sono state pubblicate sulla rivista per hacker Phrack. Scrivendo sotto lo pseudonimo di Rain Forest Puppy, Forristal spiegava come una persona con competenze di base in materia di codifica potesse aggiungere comandi SQL non autorizzati a comandi SQL legittimi ed estrarre informazioni sensibili dal database di un sito web non protetto.
Quando Forristal ha notificato a Microsoft l'impatto della vulnerabilità sul suo popolare prodotto SQL Server, non l'ha considerato un problema. Come ha detto Forristal: "Secondo loro [Microsoft], quello che state per leggere non è un problema, quindi non preoccupatevi di fare qualcosa per impedirlo".
Ciò che rende la risposta negligente di Microsoft così scioccante è che molti settori e istituzioni dipendevano seriamente (allora e oggi) dalla tecnologia di gestione dei database dell'azienda per mantenere le loro operazioni, tra cui il commercio al dettaglio, l'istruzione, la sanità, le banche e le risorse umane. Questo ci porta all'evento successivo nella cronologia della storia della SQLI: il primo grande attacco SQLI.
Nel 2007, la più grande catena di minimarket degli Stati Uniti, 7-Eleven, è stata vittima di un attacco SQLI. Gli hacker russi hanno utilizzato le iniezioni SQL per entrare nel sito web di 7-Eleven e utilizzarlo come trampolino di lancio per accedere al database delle carte di debito dei clienti del minimarket. Questo ha permesso agli hacker di prelevare contanti in Russia. In totale, i colpevoli sono riusciti a portare via due milioni di dollari, come riporta la rivista Wired.
Non tutti gli attacchi SQLI sono motivati dall'avidità. In un altro esempio degno di nota, risalente al 2007, i criminali informatici hanno utilizzato la SQLI per ottenere il controllo amministrativo di due siti web legati all'esercito degli Stati Uniti e reindirizzare i visitatori verso siti web di propaganda antiamericana e anti-israeliana.
La violazione dei dati di MySpace del 2008 è uno dei più grandi attacchi a un sito web di consumatori. I criminali informatici hanno rubato e-mail, nomi e password parziali di quasi 360 milioni di account. Ecco perché non riutilizziamo le password da un sito all'altro.
Il titolo per la più grande mancanza di sicurezza va a Equifax. La violazione dei dati Equifax del 2017 ha portato alla divulgazione di informazioni estremamente personali (ovvero nomi, numeri di previdenza sociale, date di nascita e indirizzi) per 143 milioni di consumatori. Per un'organizzazione che agisce come custode delle informazioni per ogni singolo americano, tranne quelli che vivono fuori dalla rete, si potrebbe pensare che farebbero attenzione a evitare un attacco SQLI di base. Prima che la violazione dei dati si verificasse, un'azienda di ricerca sulla sicurezza informatica ha persino avvertito Equifax che erano suscettibili a un attacco SQLI, ma il bureau dei crediti non ha preso alcuna misura fino a quando non era troppo tardi.
In quella che è considerata l'hack più inquietante della storia, un attacco SQLI del 2015 contro il produttore di giocattoli Vtech ha portato a una violazione di quasi cinque milioni di genitori e 200.000 bambini. Parlando con Motherboard, la pubblicazione multimediale online, l'hacker responsabile ha affermato di non avere piani per i dati e non ha pubblicato i dati da nessuna parte online. Al contrario, l'hacker ha anche spiegato che i dati erano molto facili da rubare e che qualcun altro avrebbe potuto arrivare prima. Conforto freddo, davvero.
Passando al giorno d'oggi, l'attacco SQLI è ancora presente. Ogni tre anni il progetto Open Web Application Security Project (OWASP) classifica i 10 rischi più critici per la sicurezza delle applicazioni web. Nell'edizione più recente del 2017, l'attacco SQLI è stato classificato al primo posto.
Al di là della longevità dell'attacco SQLI, l'aspetto interessante è che gli attacchi SQLI non sono cambiati o evoluti in alcun modo. Gli attacchi SQLI funzionano e continueranno a funzionare finché le persone non cambieranno atteggiamento nei confronti della sicurezza informatica. Siate voi a cambiare.
Novità sulle injectioni SQL
- Che cos'è una honeypot? Come si usano nella cybersecurity
- Intervista a un cacciatore di insetti: Youssef Sammouda
- Una guida agli zero-day per il 2020: Attacchi recenti e tecniche di prevenzione advanced
- Le vulnerabilità delle app finanziarie mobili mettono a rischio consumatori e imprese
- Come proteggere il sistema di gestione dei contenuti
- Spiegato: Iniezione SQL
- OWASP top ten - La sicurezza noiosa che dà i suoi frutti
- Le 5 minacce informatiche più stupide che funzionano comunque
Come le injectioni SQL influenzano il mio business?
Come riportato nel nostro rapporto Cybercrime Tactics and Techniques, gli attacchi informatici (di ogni tipo) alle aziende sono aumentati del 55% nella seconda metà del 2018, mentre gli attacchi ai singoli consumatori sono aumentati solo del 4%. Le statistiche non sorprendono. Le aziende con una sicurezza carente rappresentano per i criminali un bersaglio facile, con un tesoro di dati preziosi che valgono milioni.
Al contrario, un'azienda al centro di una violazione dei dati può aspettarsi di pagare milioni. Uno studio IBM ha rilevato che il costo medio di una violazione dei dati, comprese le misure di riparazione e le sanzioni, è di 3,86 milioni di dollari. La violazione dei dati di LinkedIn, citata in precedenza, è costata al sito di business networking 1,25 milioni di dollari in un accordo extragiudiziale.
Dopo la violazione dei dati, Target è stata costretta a pagare la cifra più alta mai registrata - 18,5 milioni di dollari - per risolvere le indagini avviate da diversi Stati. Questa somma si aggiunge ai 10 milioni di dollari pagati da Target per risolvere una causa collettiva intentata dai consumatori.
Certo, si tratta di enormi violazioni di dati che riguardano milioni di consumatori. Tuttavia, le piccole e medie imprese possono ancora aspettarsi di pagare 148 dollari per ogni record rubato ai consumatori.
Morale della favola? Prendete sul serio la vostra sicurezza ed evitate di essere un "bersaglio" per i criminali informatici.
Come posso proteggermi dalle injectioni SQL?
A parte questo ragionamento, siete qui perché sapete che le iniezioni SQL sono una minaccia seria. Ora facciamo qualcosa al riguardo. Ecco alcuni consigli per proteggere la vostra azienda dagli attacchi di SQL injection.
Aggiornate il software di gestione del database. Il vostro software è difettoso così come viene fornito dal produttore. È un dato di fatto. Non esiste un software privo di bug. I criminali informatici possono sfruttare queste vulnerabilità del software, o exploit, con un SQLI. Potete proteggervi semplicemente patchando e aggiornando il vostro software di gestione dei database.
Applicare il principio del minimo privilegio (PoLP). PoLP significa che ogni account ha l'accesso sufficiente per svolgere il proprio lavoro e nulla di più. Ad esempio, un account web che ha bisogno di accedere solo in lettura a un determinato database non dovrebbe avere la possibilità di scrivere, modificare o cambiare i dati in alcun modo.
Utilizzare istruzioni preparate o stored procedure. A differenza dell'SQL dinamico, le istruzioni preparate limitano le variabili dei comandi SQL in entrata. In questo modo, i criminali informatici non possono inserire iniezioni SQL dannose in istruzioni SQL legittime. Le procedure memorizzate limitano in modo analogo le possibilità dei criminali informatici memorizzando le istruzioni SQL sul database, che vengono eseguite dall'applicazione web dall'utente.
Assumete sviluppatori competenti ed esperti. Gli attacchi SQLI spesso derivano da una codifica approssimativa. Fate sapere in anticipo ai vostri sviluppatori di software cosa vi aspettate in termini di sicurezza.
Cosa succede se le mie informazioni personali sono state rubate in una violazione dei dati? Dovreste dare un'occhiata alla nostra lista di controllo sulla violazione dei dati. Lì imparerete a ripulire e a stare al sicuro dopo una violazione dei dati da parte di un attacco SQLI.
Visita OWASP. L'Open Web Application Security Project, in breve OWASP, è l'autorità principale sulle applicazioni web e offre molte letture aggiuntive su come prevenire le SQL injection.
E se proprio non ne hai abbastanza di SQL injection, visita il blog di Malwarebytes Labs per tutte le ultime novità nel mondo delle minacce informatiche e della cybersecurity.