Iniezioni SQL

Iniezioni SQL: attacchi al cuore del tuo sito web

Oltre agli attacchi di forza bruta, le iniezioni SQL compaiono ripetutamente nell'elenco dei maggiori pericoli per i siti web WordPress. Si tratta di manipolazioni relativamente facili del database del tuo sito web. In questo modo si entra in possesso di dati sensibili o si creano account di amministrazione e si può manipolare un sito web a piacimento. Ti mostriamo come funziona l'attacco e perché è così pericoloso.

Nel marzo 2008, 134 milioni di dati di carte di credito sono stati sottratti, tra gli altri, alla società americana Heartland Payment Systems da un vero e proprio genio. Questo attacco si basa su un hack relativamente facile da eseguire chiamato SQL Injection. In questo attacco si ottiene l'accesso al database di un sito web e quindi a tutti i dati del sito stesso. In effetti, le iniezioni SQL sono considerate uno dei maggiori pericoli per i siti web, anche e soprattutto per chi lavora principalmente con WordPress.

E dato che, al più tardi da WooCommerce , i negozi più grandi e complessi in particolare possono essere gestiti anche con WordPress senza problemi, è importante capire quanto sia alto il rischio di una SQL Injection di WordPress e come funziona.

Le iniezioni SQL di WordPress: quanto sono pericolose?

La domanda sulla "pericolosità" di un hack WordPress non può trovare risposta in un singolo indicatore. Piuttosto, bisogna considerare almeno due aspetti: In primo luogo, la probabilità che il proprio progetto WordPress sia vittima di un attacco di questo tipo e, in secondo luogo, i danni che un hack può causare.

Nel caso degli attacchi di forza bruta, il numero di attacchi al mese è così alto (in alcuni casi oltre 1 miliardo di attacchi misurati + il numero di casi non segnalati) che si può effettivamente dire: Prima o poi, ogni sito WordPress viene preso di mira da un attacco di questo tipo. I danni che possono derivare da un attacco riuscito sono molteplici. Gli attacchi di forza bruta vengono solitamente utilizzati per dirottare i siti web e integrarli in una botnet. Il cross-site scripting, invece, si verifica molto meno frequentemente, ma viene utilizzato principalmente per infettare i siti web con codice maligno.

L'organizzazione no-profit Open Web Application Security Project (OWASP) pubblica regolarmente una classifica dei 10 maggiori rischi per la sicurezza delle applicazioni web. In passato, le iniezioni SQL erano sempre al primo posto, ma dal 2021 sono "solo" al terzo posto.

In effetti, le iniezioni SQL sono qui per restare. L'hack è noto da oltre 20 anni. Anche la frequenza delle iniezioni SQL è aumentata nel tempo.

Wordfence, produttore di software di sicurezza per WordPress, giunge alla conclusione che le iniezioni SQL rappresentano un grande pericolo soprattutto per i siti web WordPress. Un'analisi di quasi 1.600 vulnerabilità di sicurezza nei plugin segnalate in un periodo di 14 mesi mostra chiaramente che le iniezioni SQL sono il secondo rischio di sicurezza più comune per i siti web WordPress.

Analisi delle iniezioni SQL di WordPress Wordfence
Il grafico mostra che le iniezioni SQL sono il secondo rischio di sicurezza più comune per i siti web WordPress.

Con tutte queste cifre, devi ovviamente tenere presente che il numero di casi non segnalati è molto più alto: spesso gli attacchi SQL non vengono nemmeno notati e non compaiono nelle statistiche.

I numeri mostrano che le iniezioni SQL di WordPress sono tra i tipi di attacco più comuni dopo gli attacchi brute force e le vulnerabilità XSS. Inoltre, le iniezioni SQL prendono di mira un'area particolarmente sensibile del tuo sito web: il database. In particolare per i negozi, questi attacchi rappresentano una minaccia esistenziale. È quindi importante capire come funzionano e cosa puoi fare per contrastarle.

Le iniezioni SQL di WordPress prendono di mira il cuore del tuo sito web

Per capire come funziona l'iniezione SQL, devi comprendere la struttura di base di WordPress. Se la conosci già, puoi tranquillamente saltare questa sezione.

Il database è la base di ogni installazione di WordPress: tutti i contenuti vengono memorizzati qui. Il CMS stesso rende poi possibile la visualizzazione e la modifica di questi contenuti. WordPress utilizza un database MySQL. SQL è l'acronimo di Structured Query Language, un linguaggio di programmazione completo che può essere utilizzato per creare strutture in un database e inserire, modificare e cancellare dati.

Ogni volta che scrivi un articolo, crei una nuova categoria, cambi la password o scrivi un commento, questi nuovi dati vengono salvati nel database. È qui che viene memorizzato ogni singolo contenuto del tuo sito web.

Ogni volta che il tuo sito web viene richiamato e viene richiesto un determinato contenuto, WordPress estrae i dati appropriati dal database, li riunisce con PHP e crea un documento HTML che viene infine trasferito al browser del cliente. Il cliente non è a conoscenza di tutti i processi che avvengono fino a quel momento.

Le iniezioni SQL iniettano codice esterno nel database

Anche se non interagisci mai direttamente con il database, ma solo con il back end di WordPress, il database è il cuore del tuo sito web.

Ma come già detto, gli utenti possono anche inserire dati nel database. Scrivere un commento, creare un account utente, compilare e inviare un modulo di contatto: tutte queste azioni generano dati che vengono memorizzati nel database.

Ma cosa succede se qualcuno sfrutta questo accesso indiretto al tuo database per introdurvi del codice maligno? Si tratta di una cosiddetta SQL injection.

L'idea alla base non è nemmeno particolarmente complicata: Se non ci sono precauzioni di sicurezza, il codice SQL deve essere inserito solo in un campo del modulo (ad esempio, quando si scrive un commento). Esso contiene dei caratteri che hanno una funzione speciale per l'interprete SQL, responsabile dell'esecuzione dei comandi SQL nel database. Questi caratteri speciali, chiamati metacaratteri, sono ad esempio ; " " e \.

Il CMS ritiene che si tratti di dati innocui e passa l'input al database come di consueto con l'ordine di salvarlo. L'interprete SQL riconosce il codice come una richiesta di azione in base ai metacaratteri ed esegue il comando del database.

Tra l'altro, per le iniezioni SQL vale lo stesso discorso degli attacchi brute force: praticamente nessuno si siede da solo al computer e inserisce manualmente i codici SQL nei moduli. Questi attacchi vengono effettuati anche tramite botnet automatizzate che scansionano migliaia di siti web contemporaneamente alla ricerca di vulnerabilità e colpiscono quando ne scoprono una.

Cosa può succedere ora?

  • Vengono aggirati i meccanismi di autenticazione o viene utilizzata l'identità di un utente esistente per ottenere l'accesso. Se, ad esempio, viene creato un nuovo account amministratore, si parla anche di exploit di escalation dei privilegi.
  • In questo modo, i dati possono essere spiati, modificati o cancellati. Questo è particolarmente importante se gestisci un negozio online e hai dati di pagamento.
  • Puoi anche prendere il controllo dell'intero sito e del tuo spazio web. Questo è possibile accedendo come amministratore. Tramite il back end, si ottiene il pieno controllo del tuo sito web, che può essere utilizzato come spam spinner o inserito in una botnet, o semplicemente può essere introdotto del codice maligno.

"*" indica i campi obbligatori

Desidero iscrivermi alla newsletter per essere informato sui nuovi articoli del blog, sugli ebook, sulle funzionalità e sulle novità di WordPress. Posso ritirare il mio consenso in qualsiasi momento. Si prega di prendere nota della nostra Politica sulla Privacy.
Questo campo è per la convalida e non deve essere modificato.

Conclusione: specialmente a causa dell'automazione WordPress Le iniezioni SQL sono molto pericolose.

Le iniezioni SQL di WordPress sono tra gli hack più pericolosi in assoluto. Sono facili da realizzare, per lo più automatizzate e possono causare danni ingenti: Soprattutto per i negozi, il pericolo di iniezioni SQL è esistenzialmente minaccioso a causa dei dati contenuti nel database.

Pertanto, è importante proteggere il tuo sito web di conseguenza: Qualsiasi input proveniente dall'esterno deve essere controllato e pulito. Devi anche mascherare i dati per evitare l'esecuzione di codice dannoso. Questo processo si chiama sanitizzazione e validazione dei dati ed è trattato in dettaglio nella Guida per gli sviluppatori di WordPress, ad esempio.

Anche i plugin di sicurezza completi sono di fondamentale aiuto in questo caso: sono particolarmente in grado di bloccare gli attacchi automatici ai tuoi siti web, che sono alla base di molti hack.

Ti è piaciuto l'articolo?

Con la tua valutazione ci aiuti a migliorare ancora di più i nostri contenuti. Grazie!

Scrivi un commento

Il tuo indirizzo e-mail non sarà pubblicato. I campi obbligatori sono contrassegnati da *.