Il tema della sicurezza ha acquisito nel corso degli anni sempre più importanza, diventando di fatto una tematica centrale per chi gestisce progetti web. La difesa più efficace, in questi casi, è la prevenzione.
Non è sempre possibile sapere anzitempo le modalità con cui agiscono i malintenzionati, ma possiamo considerare gli attacchi più comuni per comprendere come tutelare il proprio sito web WordPress dalle possibili intrusioni.
Indice dei contenuti:
Attacco Brute Force
Il brute force è uno degli attacchi più antichi e diffusi, anche se corrisponde solitamente all’ultimo tentativo di danneggiamento o furto di dati poiché dispendioso in termini di tempo.
L’aggressore tenta di indovinare la password di accesso, utilizzando molteplici script che girano simultaneamente. Questi script testano più combinazioni tramite la funzionalità xmlrpc.php, una procedura di chiamata remota attiva di default su ogni installazione WordPress, ma non solo, che utilizza HTTP come trasporto e XML come codifica, consentendo di fatto la comunicazione tra il CMS e altri sistemi.
Una delle varianti di attacco brute force è il dictionary attack. In questo caso l’hacker utilizza un certo numero di stringhe, composte da parole contenute nel dizionario, fornite al software. Un attacco di questo genere può essere utilizzato anche nel tentativo di trovare la chiave necessaria per decrittografare un messaggio o un documento crittografato.
Questo sistema può rivelarsi efficace nel caso in cui gli utenti scelgano password semplici, spesso per evitare di scordarle. Questi attacchi, infatti, difficilmente hanno successo contro sistemi che utilizzano password composte da più parole oppure contro password con lettere maiuscole e minuscole a cui vengono affiancati dei numeri.
Uno strumento che consente la creazione di dizionari per attacchi brute force è Crunch, un generatore di elenchi di parole in grado di formare tantissime combinazioni.
Software per attacchi brute force
Esistono diversi programmi adibiti agli attacchi brute force, tra questi:
- JohnTheRipper (JTR). Software open source, esegue attacchi brute force standard e dictionary attack. Permette, inoltre, di risalire al tipo di hash usato.
- Hydra. È uno dei software più utilizzati per gli attacchi brute force. Risulta particolarmente efficiente nella ricerca delle credenziali di autenticazione remota, supportando diversi protocolli tra cui SSH, MySQL, HTTPS.
- Hashcat. È un potente software di calcolo di CPU e GPU per il recupero veloce delle password, disponibile per Linux, OS X, e Windows
Come proteggere il proprio sito da un attacco brute force?
Una buona contromisura per stanare gli attacchi brute force è quella di limitare il numero di tentativi d’accesso consentiti in un breve arco di tempo, non dimenticando comunque di impostare una password quanto più sicura.
Se restringi il numero di accessi a 3 o 5, hai alte probabilità di bloccare lo script sul nascere. Una strategia di difesa contro il dictionary attack deve, in sintesi, prevedere:
- una password o chiave elaborata, frutto di un miscuglio di lettere, numeri e caratteri speciali;
- solo tre tentativi di password;
- un periodo di 15 o 20 minuti prima di procedere con altri tre tentativi.
Per rafforzare ulteriormente il sistema di difesa del tuo WordPress, puoi abilitare l’autenticazione a due fattori (2FA), quindi l’uso di un codice da inserire in un secondo passaggio durante la fase di accesso. Se hai intenzione di implementare su WordPress questo livello di sicurezza, puoi utilizzare il plugin WP 2FA che offre diversi piani a pagamento, a seconda delle proprie esigenze.
SQL Injection
Gli attacchi SQL Injection alterano le query SQL, utilizzate per eseguire comandi, iniettando codice dannoso e sfruttando le vulnerabilità delle applicazioni web che interrogano un database. In generale, questo attacco può interessare qualsiasi sito o applicazione web che utilizza un database SQL (come MySQL). I criminali possono utilizzarlo per ottenere l’accesso non autorizzato ai dati sensibili, quindi alle informazioni sui clienti e ai dati personali. Gli attacchi SQL Injection colpiscono più frequentemente le applicazioni web più datate.
Per effettuare un attacco SQL Injection, il malintenzionato ricerca l’input dell’utente all’interno dell’applicazione web inserendo una stringa malevola SQL. Il codice maligno viene processato nel database del sito e, in questa maniera, l’hacker sarà in grado di appropriarsi di dati sensibili e personali.
Ci sono diversi tipi di SQL injection, tra cui:
- In-band: è il più comune degli attacchi SQL injection e si verifica quando un malintenzionato è in grado di utilizzare lo stesso canale di comunicazione sia per lanciare l’attacco che per raccogliere le informazioni.
- Out-of-band: l’aggressore, in questo caso, non riceve una risposta sul medesimo canale di comunicazione, ma è comunque capace di trasferire le risposte dell’applicazione web a un endpoint remoto in suo controllo. Questo attacco è possibile solamente se il server in uso dispone di comandi che attivano richieste DNS o HTTP.
- Inferential: l’utente malintenzionato non riesce a visionare direttamente le informazioni ottenute dal comando SQL, ma ricostruisce la struttura del database tramite l’invio di payload e osservando la risposta e il comportamento dell’applicazione web. È in genere la tipologia che richiede più tempo di esecuzione, anche se è altrettanto efficace.
Come proteggere il proprio sito da una SQL Injection?
Una valida mitigazione degli attacchi SQL Injection consiste nella convalida dell’input, quindi nel garantire che in ogni campo vengano inseriti solo i dati pertinenti.
L’applicazione sa distinguere i dati che non rispondono propriamente all’input dell’utente e, nel caso in cui venisse iniettato un comando SQL, l’intento del malintenzionato verrebbe bloccato. Per implementare la convalida puoi seguire la guida di WordPress.
Cross Site Scripting
Il Cross Site Scripting, comunemente chiamato XSS, avviene quando un hacker inietta il suo script malevolo all’interno di un sito web. Un XSS effettivo si verifica sempre lato client, sfruttando la vulnerabilità del sito web per infettare il dispositivo del visitatore attraverso il browser.
Una vulnerabilità utilizzata solitamente per i Cross-site Scripting è il form di contatto, dove viene inserita una stringa dannosa che verrà trattata come codice sorgente dal browser della vittima.
Possiamo distinguere due principali tipologie di XSS:
- Stored: si verifica quando il malintenzionato inietta script dannosi nel server di un sito web (ad esempio, tramite un form di contatto). Ogni volta che viene visualizzata la pagina infetta, lo script malevolo viene trasmesso al browser della vittima.
- Reflected: sono gli attacchi XSS più diffusi. L’input vettore di codice malevolo viene restituito direttamente, inserendo nel codice HTML del sito web l’attacco al browser dell’utente. Il browser sostanzialmente viene portato ad eseguire il codice dannoso poiché proveniente da un server affidabile.
Come proteggere il proprio sito da un Cross Site Scripting?
Un Web Application Firewall (WAF) è la soluzione più comunemente utilizzata per la protezione da attacchi XSS.
Ispezionando il traffico HTTP, WAF può rilevare e bloccare qualsiasi script dannoso e prevenire gli attacchi che sfruttano le vulnerabilità più note di un’applicazione web, come cross-site scripting e SQL Injection.
Proteggi il tuo sito WordPress con un hosting affidabile
Oltre agli accorgimenti presi in considerazione, per proteggere al meglio il tuo sito devi affidarti a un hosting provider che assicuri un certo standard di affidabilità e sicurezza. In quest’ottica l’impegno di Shellrent è costante, offrendo soluzioni improntate sulla sicurezza.
Tutti i processi sviluppati sono security oriented: dall’ingegnerizzazione dei servizi, ai software e alle politiche di backup by default, fino ad arrivare all’analisi del traffico di rete in tempo reale per identificare e correggere eventuali vulnerabilità.