SQL injection

Cos'è l'SQL injection?

Un SQL Injection è un tentativo da parte di un hacker di caricare comandi SQL su un sito web al fine di manipolare i dati sul server. L'obiettivo è solitamente quello di rubare dati, distruggere dati o manipolare dati per scopi di truffa.

Il metodo più comune è inserire comandi SQL in un modulo web. Tuttavia, ci sono molti altri modi per iniettare SQL in un server web, come aggiungere comandi a un URL, iniettarli in un HTTP Post o inserire comandi in un cookie del browser utilizzato dal tuo sito web.

Perché l'SQL Injection è importante

Le SQL Injection sono state in cima a ogni lista di OWASP Top 10 per oltre 10 anni. Molte applicazioni web utilizzano database per l'archiviazione e il recupero efficienti dei dati. Ciò significa che i database contengono molti dati importanti e sensibili, come nomi utente, password, date di nascita, numeri di previdenza sociale e altro ancora.

Le applicazioni web interagiscono con il livello del database utilizzando query SQL. Tipicamente, queste query vengono eseguite utilizzando input nella pagina web, come una query di ricerca. Tuttavia, un'applicazione web progettata in modo scadente può accettare qualsiasi tipo di query SQL in una casella di input destinata solo ad accettare un tipo specifico di dati, ad esempio il nome dell'utente. Gli attaccanti sfruttano questo difetto inserendo query SQL in queste caselle di input per recuperare o corrompere i dati memorizzati nel database.

Cosa puoi fare

Esistono diverse tecniche per limitare la capacità degli attaccanti di rubare o corrompere direttamente i tuoi dati. La maggior parte delle tecniche è destinata a ridurre la capacità degli utenti finali di fornire dati o comandi che possono essere interpretati dal tuo server web o database. È importante notare che questo input può provenire da una varietà di fonti, tra cui invii di moduli pubblicati, argomenti URL e cookie del browser.

Alcune delle tecniche più comuni per la prevenzione dell'iniezione SQL sono elencate di seguito.

  • Sanificazione. La protezione più comune è sanificare tutti i dati forniti dall'utente per rimuovere stringhe di caratteri che potrebbero essere eseguite come comandi SQL dall'interprete o passate direttamente a un database SQL. La sanificazione generalmente comporta la sostituzione dei comandi eseguibili trovati all'interno dei dati dell'utente con caratteri alternativi non eseguibili.
  • Filtraggio e convalida. Tutti i dati forniti dall'utente devono essere convalidati limitando il formato, la lunghezza e altri attributi degli input consentiti. Le occorrenze di comandi SQL o altro codice dannoso devono essere filtrate.
  • Evitare i parametri URL non sicuri. Evitare l'utilizzo di argomenti URL come in un object relational model (ORM) che attivano operazioni di database. Invece, utilizzare un'API sicura per tutti gli accessi al database.
  • Limitare l'ambito dei comandi SQL. Utilizzare i comandi LIMIT all'interno delle operazioni SQL per ridurre al minimo la divulgazione dei dati nel caso in cui un'iniezione SQL raggiunga il tuo database.

Sebbene le tecniche di codifica come quelle sopra elencate siano importanti, una codifica accurata non garantisce la protezione. Le librerie software di terze parti, le modifiche al codice successive da parte di altri sviluppatori e le nuove tecniche di offuscamento scoperte possono lasciare il tuo sito web esposto ad attacchi di SQL injection. Aggiungere un livello di protezione automatizzato con un Web Application Firewall può garantire che i tuoi siti web e le tue applicazioni web rimangano protetti.

In che modo Barracuda può essere di aiuto

Barracuda Web Application Firewall protegge le tue applicazioni e i tuoi dati contro tutti i tipi di attacchi SQL Injection, utilizzando potenti modelli di sicurezza positivi e negativi. Questi permettono di identificare e bloccare sia gli attacchi tradizionali che quelli offuscati alle query di database, garantendo che solo gli input permessi in un campo specifico siano accettati.

Maggiori informazioni

Contattaci per scoprire come proteggere la tua organizzazione dagli SQL Injections e da centinaia di altre minacce. Puoi anche ottenere una valutazione gratuita del Barracuda Web Application Firewall ed eseguire una scansione gratuita delle vulnerabilità del sito web.