Che cos'è un attacco 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 di cybersicurezza considerano lo SQLI come una delle minacce informatiche meno sofisticate e facili da difendere. Malwarebytes Labs ha classificato lo SQLI al terzo posto della classifica The Top 5 Dumbest Cyber Threats that Work Anyway, citando il fatto che lo SQLI è un attacco noto e prevedibile con contromisure facilmente implementabili.
Gli attacchi SQLI sono così facili che gli aggressori possono trovare siti web vulnerabili utilizzando le ricerche su Google advanced , chiamate Google Dorking. Una volta trovato un bersaglio adatto, gli aggressori SQLI possono utilizzare programmi automatizzati per portare a termine l'attacco al posto loro. Tutto ciò che devono fare è inserire l'URL del sito bersaglio e guardare i dati rubati che arrivano.
Eppure gli attacchi SQLI sono comuni e si verificano ogni giorno. In effetti, se avete un sito web o un'attività online, è probabile che i criminali informatici abbiano già provato a utilizzare l'SQLI per cercare di penetrare nel vostro sito. Uno studio del Ponemon Institute su The SQL Injection Threat & Recent Retail Breaches ha rilevato che il 65% delle aziende intervistate è stato vittima 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 perché spesso non conoscono le tecniche utilizzate dai criminali informatici in un attacco SQLI e, allo stesso modo, non sanno come difendersi da tale attacco.
Per questo motivo, facciamo il primo passo per difenderci da un'iniezione SQL, istruendoci sull'argomento. Ecco il vostro primer sulle iniezioni SQL.
Come funziona un'iniezione SQL?
Sviluppato all'inizio degli anni '70, SQL (acronimo di structured query language) è uno dei più antichi linguaggi di programmazione ancora in uso per la gestione dei database online. Questi database contengono elementi come prezzi e livelli di inventario per i siti di shopping online. Quando un utente ha bisogno di accedere alle informazioni del database, SQL viene utilizzato per accedere e presentare i 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 iniezioni 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 anche essere utilizzati per inviare messaggi di spam e rubare altri login per altri siti. Malwarebytes Labs In passato abbiamo riportato la notizia di account LinkedIn violati che venivano utilizzati per spammare altri utenti con messaggi InMail contenenti URL errati, o falsificati, in modo da sembrare una pagina di login di Google Docs, con cui i criminali informatici potevano raccogliere i nomi utente e le password di Google.
Qual è la storia delle iniezioni 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ù grave mancanza di sicurezza va a Equifax. La violazione dei dati di Equifax del 2017 ha reso disponibili informazioni estremamente personali (nomi, numeri di previdenza sociale, date di nascita e indirizzi) di 143 milioni di consumatori. Per un'organizzazione che funge da custode delle informazioni di ogni singolo americano, tranne quelli che vivono fuori dalla rete, si potrebbe pensare che prenda precauzioni contro un attacco SQLI di base. Prima che si verificasse la violazione dei dati, una società di ricerca sulla sicurezza informatica aveva persino avvertito Equifax che era suscettibile di un attacco SQLI, ma l'ufficio crediti non ha preso provvedimenti finché non è stato troppo tardi.
In quello che si classifica come l'hacking più inquietante della storia, un attacco SQLI del 2015 al produttore di giocattoli Vtech ha portato alla violazione di quasi cinque milioni di genitori e 200.000 bambini. Parlando con Motherboard, la pubblicazione multimediale online, l'hacker responsabile ha dichiarato di non avere alcun piano per i dati e di non averli pubblicati online. Al contrario, l'hacker ha anche spiegato che i dati erano molto facili da rubare e che qualcun altro avrebbe potuto raggiungerli per primo. Una magra consolazione.
Oggi l'attacco SQLI è ancora una realtà. Ogni tre anni l'Open Web Application Security Project (OWASP) stila la classifica dei 10 rischi più critici per le applicazioni Web Security . Nell'ultima edizione del 2017, l'attacco SQLI si è 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.
Notizie sulle iniezioni 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
Che impatto hanno le iniezioni SQL sulla mia attività?
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 iniezioni 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.
Visitate OWASP. L'Open Web Application Security Project, in breve OWASP, è la principale autorità in materia di applicazioni web e offre molte altre informazioni su come prevenire le iniezioni SQL.
Se non ne avete mai abbastanza di SQL injection, visitate il blogMalwarebytes Labs per conoscere tutte le ultime novità sul mondo delle minacce informatiche e della sicurezza informatica.