Attacco informatico: cos’è, come funziona, obiettivo e come è possibile prevenirlo: Attacco SQL injection

sql injection

Un attacco informatico è definibile come un’attività ostile nei confronti di un sistema, di uno strumento, di un’applicazione o di un elemento che abbia una componente informatica. È un’attività che mira ad ottenere un beneficio per l’attaccante a discapito dell’attaccato. Oggi analizziamo l’attacco SQL injection

Tempo di lettura stimato: 8 minuti

Esistono diverse tipologie di attacco informatico, variabili in base agli obiettivi da raggiungere e agli scenari tecnologici e di contesto:

  • attacchi informatici per impedire il funzionamento di un sistema
  • che puntano alla compromissione di un sistema
  • alcuni attacchi mirano a conquistare dati personali posseduti da un sistema o da un’azienda,
  • attacchi di cyber-activism a supporto di cause o campagne di informazione e comunicazione
  • ecc…

Tra gli attacchi più diffusi, in tempi recenti, ci sono gli attacchi a scopo economico e gli attacchi per i flussi di dati. Dopo aver analizzato il Man in the Middle, il Malware e il Phishing, nelle settimane scorse, oggi vediamo l’attacco SQL injection

Coloro che operano l’attacco informatico, in solitaria o in gruppo, sono chiamati Hacker

Attacco SQL injection

L’injection SQL è diventata un problema comune con i siti web basati su database. Si verifica quando un malfattore esegue una query SQL al database attraverso i dati di input dal client al server. I comandi SQL sono inseriti nell’input del piano dati (per esempio, al posto del login o della password) per eseguire comandi SQL predefiniti. Un exploit SQL injection riuscito può leggere dati sensibili dal database, modificare (inserire, aggiornare o cancellare) i dati del database, eseguire operazioni di amministrazione (come lo spegnimento) sul database, recuperare il contenuto di un dato file e, in alcuni casi, emettere comandi sul sistema operativo.

Per esempio, un modulo web su un sito web potrebbe richiedere il nome dell’account di un utente e poi inviarlo al database per estrarre le informazioni dell’account associato usando l’SQL dinamico come questo:

“SELECT * FROM users WHERE account = ‘“ + userProvidedAccountNumber +”’;”

Quando questo attacco funziona, perché viene indovinato l’ID dell’account,, lascia un buco per gli attaccanti. Per esempio, se qualcuno decidesse di fornire un ID account “‘ or ‘1’ = ‘1’”, questo risulterebbe in una stringa:

“SELECT * FROM users WHERE account = ‘’ or ‘1’ = ‘1’;”

Poiché ‘1‘ = ‘1‘ è sempre TRUE, il database restituirà i dati per tutti gli utenti invece di un solo utente.

La vulnerabilità a questo tipo di attacco di sicurezza informatica dipende dal fatto che SQL non verifica chi possa avere i permessi o meno. Pertanto, le iniezioni SQL funzionano soprattutto se un sito web utilizza SQL dinamico. Inoltre, l’iniezione SQL è molto comune con le applicazioni PHP e ASP a causa della prevalenza di vecchi sistemi. Le applicazioni J2EE e ASP.NET hanno meno probabilità di ricevere injection SQL sfruttabili a causa della natura delle interfacce di programmazione disponibili.

Per proteggervi da un attacco di SQL injection, applicate il modello least0privilege dei permessi nei vostri database. Attenetevi alle stored procedure (assicuratevi che queste procedure non includano alcun SQL dinamico) e alle istruzioni preparate precedentemente (query parametrizzate). Il codice che viene eseguito verso il database deve essere abbastanza forte da prevenire attacchi di tipo injection. Inoltre, convalidare i dati di input in funzione di una whitelist a livello di applicazione.

Come si sviluppa un attacco SQL injection

L’aggressore interferisce con le query che un’applicazione effettua sul proprio database.

Ecco come funziona:

  • Individuazione dell’input vulnerabile: gli aggressori trovano un input vulnerabile (ad esempio, i campi di input dell’utente) in un sito Web o un’applicazione.
  • Sfruttamento della vulnerabilità: inseriscono codice SQL dannoso in quell’input.
  • Esegui comando SQL appositamente predisposto: l’input dell’aggressore diventa parte della query SQL, eseguendo un comando appositamente predisposto.
  • Conseguenze: gli attacchi SQLi riusciti possono portare all’accesso non autorizzato a dati sensibili (ad esempio password, dettagli della carta di credito) o addirittura compromettere il server.

Prevenzione attacco SQL injection

Per prevenire l’iniezione di query arbitrarie su quelle applicazioni web che interagiscono con un DB è sicuramente basilare, in fase implementativa, una programmazione che preveda un controllo di tutte le potenziali porte di accesso all’archivio di gestione dei dati, quali i form, le pagine di ricerca e qualsiasi altro modulo che preveda una interrogazione SQL.

La validazione degli input, le query parametrizzate tramite template ed una adeguata gestione del reporting degli errori possono rappresentare delle buone pratiche di programmazione utili allo scopo.

Ecco alcuni accorgimenti:

  • prestare attenzione all’utilizzo degli elementi di codice SQL potenzialmente a rischio (virgolette singole e parentesi) che potrebbero essere integrati con opportuni caratteri di controllo e sfruttati per usi non autorizzati;
  • usare l’estensione MySQLi;
  • disattivare sui siti la visibilità delle pagine degli errori. Spesso tali informazioni si rivelano preziose per l’attaccante, il quale può risalire all’identità e alla struttura dei server DB interagenti con l’applicazione bersaglio.
L’estensione di MySql

Una codifica accurata può ridurre sensibilmente la vulnerabilità di un’applicazione web all’iniezione arbitraria di codice SQL. Una buona soluzione risulta quella di utilizzare tra le librerie messe a disposizione da PHP per l’interazione con il MySQL, l’estensione MySQLi (MySQL improveded).

Mysqli, come suggerito dal nome, apporta delle migliorie al Mysql in particolare mettendo a disposizione due approcci di programmazione:

  • procedurale (uso di tradizionali funzioni);
  • orientato agli oggetti (uso di classi e metodi).

È importante, poi, tenere sempre aggiornato anche il browser che usiamo per navigare su Internet ed eventualmente installare uno strumento di analisi in grado di verificare la presenza di vulnerabilità nel codice di un sito Web.

SECURITY ASSESSMENT

E’ il processo fondamentale per misurare il livello attuale di sicurezza della tua azienda.
Per far questo è necessario coinvolgere un Cyber Team adeguatamente preparato, in grado di procede a un’analisi dello stato in cui versa l’azienda rispetto alla sicurezza informatica.
L’analisi può essere svolta in modalità sincrona , tramite un’intervista effettuata dal Cyber Team o
anche asincrona , tramite la compilazione on line di un questionario.

SECURITY AWARENESS: conosci il nemico

Più del 90% degli attacchi hacker ha inizio da un’azione del dipendente.
La consapevolezza è la prima arma per combattere il rischio cyber.

MANAGED DETECTION & RESPONSE (MDR): protezione proattiva degli endpoint

I dati aziendali rappresentano un enorme valore per i criminali informatici, per questo motivo gli endpoint e i server sono presi di mira . E’ difficile per le tradizionali soluzioni di protezione contrastare le minacce emergenti. I criminali informatici aggirano le difese antivirus, approfittando dell’impossibilità da parte dei team IT aziendali di monitorare e gestire gli eventi di sicurezza 24 ore su 24.

MDR è un sistema intelligente che monitora il traffico di rete ed esegue un’analisi comportamentale
del sistema operativo, individuando attività sospette e non volute.
Tali informazioni sono trasmesse a un SOC (Security Operation Center), un laboratorio presidiato da
analisti di cybersecurity, in possesso delle principali certificazioni in cybersecurity.
In caso di anomalia, il SOC, con servizio gestito 24/7 , può intervenire a diversi livelli di severità, dall’invio di un’e mail di avvertimento, fino all’isolamento del client dalla rete.
Questo consentirà di bloccare potenziali minacce sul nascere e di evitare danni irreparabili.

SECURITY WEB MONITORING: analisi del DARK WEB

Il dark web indica i contenuti del World Wide Web nelle darknet (reti oscure) che si raggiungono via Internet attraverso specifici software, configurazioni e accessi.
Con il nostro Security Web Monitoring siamo in grado di prevenire e contenere gli attacchi informatici, partendo dall’analisi del dominio aziendale (es.: ilwebcreativo.it ) e dei singoli indirizzi e mail.

CYBERDRIVE: applicazione sicura per la condivisione e modifica dei file

CyberDrive è un file manager cloud con elevati standard di sicurezza grazie alla crittografia indipendente di tutti i file. Garantisce la sicurezza dei dati aziendali mentre si lavora nel cloud e si condividono e si modificano documenti con altri utenti . In caso di perdita di collegamento, nessun dato viene memorizzato sul PC dell’utente. CyberDrive evita che i file possano essere persi per danni accidentali o esfiltrati per furto, sia esso fisico o digitale.

«THE CUBE»: la soluzione rivoluzionaria

Il più piccolo e potente datacenter in-a-box che offre potenza di calcolo e protezione dai danni fisici e logici. Progettato per la gestione dei dati in ambiti edge e robo, ambienti retail, studi professionali, uffici remoti e piccole aziende dove spazio, costo e consumo di energia sono fondamentali. Non necessita di sale CED ed armadi Rack. Posizionabile in qualunque tipo di ambiente grazie all’estetica d’impatto in armonia con gli spazi di lavoro. «The Cube» mette la tecnologia software enterprise al servizio della piccola e media impresa.

Letture Correlate

Ercole Palmeri

Autore

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *