KNOWLEDGE BASE

Knowledge Base
1Backup
Acronis
Antivirus
Email
Firewall
GFI Software
Mail
Monitoring
N-Able
Sicurezza
TSPlus
Diventa Autore per CoreTech | Scopri di più

Vai al Video

Wordpress - Gestire la sicurezza del proprio sito web

di Riccardo Gallazzi

Wordpress è un software di CMS (Content Management Software) molto utilizzato nella creazione e gestione dei siti web, tanto che secondo dati W3Techs è utilizzato nel 30% di tutti i siti, come mostra l’immagine seguente.
L’effetto collaterale di questa popolarità è che Wordpress è oggi uno dei bersagli preferiti dagli hacker, per cui inevitabilmente gestire un sito Wordpress significa anche e soprattutto gestire la sua sicurezza.

Per quanto sia apprezzato e molto valido, Wordpress richiede un’attenta gestione da parte dello sviluppatore, allo scopo di implementarne il massimo livello di di sicurezza.
Scopo di questo tutorial è introdurre alla sicurezza dei siti web realizzati con Wordpress.


Wordpress: le vilnerabilità

Ci sono diverse vulnerabilità sfruttabili, cui corrispondono vari tipi di attacchi un elenco, pur non esaustivo, comprende:

  • attacchi “casuali” da parte di script kiddies (individui senza particolari conoscenze tecniche) o botnet – sono la maggior parte; fortunatamente si possono prevenire;
  • attacchi mirati da parte di professionisti (black hat hackers) – % minore sul totale ma difficilmente proteggibili;
  • motivazioni economiche, etiche, personali, di “svago”, vandalismo, ecc.

Tipi comuni di attacchi sono:

  • Cross Site Scripting (XSS);
  • Cross Site Request Forgery (CSRF);
  • Man in the Middle (MitM);
  • SQL Injection;
  • Brute Force Login;
  • Distributed Denial of Service (DdoS);
  • Remote Code Execution.

Gli attacchi sono condotti sostanzialmente da due tipi di figure:

  • professionisti, che rappresentano la percentuale minore del totale, anche se proteggersi dagli attacchi sferrati da professionisti, in virtù della loro complessità, richiede soluzioni abbastanza complesse;
  • script kiddies, che sono la maggior parte, ma più facili da prevenire e che arrecano dei danni recuperabili.

Come attuare la prevenzione

Le strategie da attuare per proteggere un sito web realizzato con Wordpress sono articolate e coinvolgono sia il computer dell’utente che utilizza il sito, sia l’implementazione del sito stesso lato Web Server.

Sicurezza del computer utente significa gestire la sicurezza del computer o dispositivo mobile (tablet/smartphone) con cui si naviga e quindi si usa WordPress.

I mezzi da mettere in campo sono, alla fine, quelli consueti, vale a dire antivirus, antimalware, firewall di rete ecc.

Una certa attenzione va prestata ai keylogger, che sono software capaci di carpire le sequenze di tasti battuti e possono acquisire e cedere a terzi le credenziali di accesso al sito, perché possono risalire al sito in cui sono state inserite le credenziali.
La sicurezza del proprio sito web comincia proprio dal lato utente.

Altro accorgimento è una corretta gestione delle credenziali di accesso a Windows, al proprio account e-mail e alle credenziali di accesso a Wordpress.

In generale le credenziali di accesso sono costituite da una coppia di nome utente e password: è importante utilizzare un nome utente diverso da Administrator a Webmaster, quindi utilizzare nome utente diverso da admin, administrator, webmaster, il proprio nome e affini

Inoltre bisogna utilizzare password robuste (indicativamente > 8 caratteri alfanumerici) ed allo scopo è consigliabile ricorrere a un sistema di generazione e gestione password come Keepass o LastPass.

Ogni sito dovrà avere una password sua perché è meglio non utilizzare una singola password per diversi siti; se gestite il sito su una VPS o su un Cloud Server vi dovete occupare della gestione della sicurezza del server che include:

  • una corretta politica di patching;
  • regole del firewall restrittive (del tipo consentire solo ciò che è strettamente necessario);
  • hardening aggiuntivo;
  • monitoring e alert tempestivi;
  • audit a intervalli regolari;

In pratica, tutti compiti onerosi quando si gestisce una VPS o un Cloud Server, quindi è consigliabile affidarsi a un servizio di Web hosting, perché è il provider a pensare alla sicurezza del server; però bisogna scegliere provider affidabile e che offra anche una buona assistenza, perché spesso è questa che fa la differenza.

Quando si verifica un problema per quanto riguarda i certificati SSL, il consiglio è utilizzare un certificato per il vostro sito web. Il certificato SSL garantisce una connessione tra client (il browser dell’utente) ed host (il server che ospita il sito) sia cifrata e quindi in grado di proteggervi dagli attacchi MitM (Man in the Middle) ossia quelli dove qualcuno intercetta i dati nello scambio tra utente e sito.

Il certificato SSL comunque non garantisce in senso assoluto la sicurezza di host e client ed è chi gestisce l’host (il sito) a doversi preoccupare della sicurezza del server, ma anche l’utente deve controllare il proprio computer.
Ricordate che non sempre un sito con certificato è un sito sicuro, ma sicuramente un sito web sicuro ha il certificato SSL.

Ci sono soluzioni a pagamento o anche economiche come i certificati offerti da Let’s Encrypt, che sono supportati da Rocket Webhosting.

Prevenzione in Wordpress

Il backup è una forma efficace di prevenzione ed è necessario eseguirlo prima di ogni aggiornamento o aggiunta di plugin; la pianificazione del backup può essere giornaliera, settimanale o mensile.
Esistono tre metodi di esecuzione del backup:

  • manuale;
  • con plug-in;
  • tramite strumento Plesk (consigliato).

Bisogna sempre testare i backup (ripristino su spazio di staging del sito o in locale con XAMPP o simili) dopo averli eseguiti, per essere certi che al momento in cui serviranno saranno effettivamente utilizzabili.
Inoltre bisogna conservare i backup in una locazione sicura, preferibilmente su un’unità di memoria di massa non raggiungibile dalla rete.

In caso di necessità, il backup permetterà il ripristino del sito; prima, è comunque necessario scoprire da dove e come è partito l’attacco, se non altro per capire quanto efficace sarà il backup e, nel caso si disponga di più backup, per scegliere quale utilizzare. Inoltre, se ad esempio sapete che l’attacco è partito da un certo plug-in, rimuovete

Plug-in utili

Wordpress supporta alcuni plug-in utili a migliorare la sicurezza dei siti costruiti con esso; tra questi abbiamo plugin con funzioni di:

  • WAF (Web Application Firewall), che monitora, filtra e blocca le richieste HTTP sospette;
  • IDPS (Intrusion Detection and Prevention System), che analizza e blocca gli accessi non autorizzati;
  • scanner, ossia plug-in che scansionano il sito alla ricerca di malware, configurazioni errate, vulnerabilità, ecc;
  • integrità file, che scansionano i file e avvisano in caso di cambiamenti sospetti;
  • limite tentativi di login; dopo un certo numero di login errate, l’IP da cui si stanno tentando viene bloccato (utile in caso di attacchi bruteforce, dove un client sistematicamente tenta di indovinare la password.

Alcuni nomi di plug-in molto utili per Wordpress sono Sucuri, WordFence, VaultPress, iThemes Security.

Esistono anche servizi basati su Cloud che possono aiutare a migliorare la sicurezza dei siti web in Wordpress: Sucuri, Incapsula, AKAMAI, CloudFlare, Alibaba Cloud, per citarne alcuni.
Molto utili sono anche i Monitor di reputazione (Google Search Console, strumenti webmaster di Bing, Norton, Yandex, etc..) che avvisano se il sito cui ci si collega è stato inserito in una black list, se è infetto ecc. Ed anche sistemi di uptime del sito (UptimeRobot, Pingdom, ecc.).

Temi e plug-in

Per quanto riguarda temi e plug-in da utilizzare in un sito web con Wordpress, è quasi superfluo dire che vanno utilizzati solo componenti provenienti da fonti affidabili, come ad esempio directory WordPress, eShop sviluppatori, marketplace noti, ed anche aggiornate con frequenza.

Appena l’aggiornamento è disponibile bisogna aggiornarli (ma prima eseguite sempre un backup del sito), perché ciò può risolvere una vulnerabilità, dato che lo sviluppatore spesso crea degli aggiornamenti quando scopre delle vulnerabilità e vi rimedia.

Ricordare che tanti plugin significano maggior vulnerabilità, quindi bisogna l’imitare l’impiego a quelli necessari; infatti il principale vettore di vulnerabilità è costituito da errori nello sviluppo di plugin e temi, best practices di sicurezza non seguite, ecc.

Consigliamo di consultare periodicamente WPScan Vulnerability Database (raggiungibile da https://wpvulndb.com/) che è un buon punto di partenza in quanto questo servizio elenca le vulnerabilità presenti nei plugin man mano che vengono scoperte e propone anche delle soluzioni, se disponibili.

Credenziali e utenti

Per quanto riguarda le credenziali e la gestione degli utenti ,n Wordpress, vale quanto spiegato in precedenza; riguardo alle credenziali, ricordate che password robuste e utilizzo di un gestore password sono un buon punto di partenza.
Se possibile, usare un sistema di autenticazione a 2 fattori (2FA) ed evitare di utilizzare admin o simili come nome utente, perché è facile indovinarlo da parte degli hacker. Vanno anche evitati username che in qualche modo siano riconducibili al sito o allo sviluppatore. Il sistema 2FA consiste nel richiedere, per l’accesso, alla password un codice monouso che solitamente viene inviato via SMS, per cui bisogna essere a conoscenza di due segreti (la password il codice monouso) per accedere al sito

Eventualmente proteggere la directory wp-admin/ con autenticazione lato server (BasicAuth di Apache).

Invece, per quanto riguarda gli utenti utilizzate il principio dei minimi privilegi per cui gli account utente creati devono avere il minimo dei permessi necessari per svolgere il loro compito.

Permessi file e cartelle

A proposito di permessi, è il caso di precisare che i file e le cartelle devono avere tre tipi di permessi da assegnare correttamente, che riguardano:

  • scrittura;
  • lettura;
  • esecuzione.

I file dovrebbero avere maschera 644, le cartelle maschera 755 e il file wp-config.php, che è importantissimo per una sicurezza elevata, deve avere una maschera a 600 (le espressioni riguardano la scrittura “numerale”.

In ogni caso nei file e cartelle nulla deve avere la maschera 777, che sostanzialmente significherebbe che esponete il file indiscriminatamente a tutti permessi.

Banner

I permessi sono impostabili o manualmente via FTP oppure via web tramite gestore file.

Impostazioni tecniche

Passiamo adesso alle impostazioni un po' più tecniche di Wordpress, che garantiscono un ulteriore livello di sicurezza; sono un po’ più complesse da implementare di quelle viste sinora.

Nello specifico, per prima cosa bisogna disabilitare la navigazione fra cartelle e anche l'esecuzione dei file php in wp-includes/ e wp-content/ (attenzione: alcuni plugin potrebbero non funzionare, nel qual caso bisogna annullare le modifiche).

Banner

Da disabilitare, anche l’esecuzione di wp-config.php: quesat operazione è importantissima perché contiene tutte le formazioni di accesso a database di Wordpress.

Nel file wp-config.php bisogna aggiungere dei sali, ossia dei caratteri che vengono utilizzati da Wordpress per cifrare le informazioni contenute nei cookie, riguardanti la login nella sessione dell'utente.

Tra le cose da disabilitare c’è XML-RPC, che è un protocollo per gestire le chiamate a procedura remota (RPC) perché può essere sfruttato per attacchi login bruteforce o per sovraccaricare il server web.

Infine, occorre cancellare il file readme.html, che contiene informazioni come la versione di Wordpress, che potrebbe aiutare gli hacker perché sanno, per ogni versione, quali sono le vulnerabilità.

Per quanto riguarda database, quello di WordPress è formato da diverse tabelle che hanno tutte lo stesso prefisso (wp_) peraltro noto; cambiandolo si altera la struttura (altrimenti nota all’hacker) del database. Cambiando il prefisso delle tabelle si aggiunge un livello di sicurezza al sito, dal momento che gli hacker non conoscono più la struttura del database.
Ad esempio wp_users può diventare t45w_users. Con questa alterazione WordPress è ancora operativo e riesce tranquillamente ad eseguire le query sulle tabelle, solo che il prefisso è cambiato.

Se eseguire tutto quanto spiegato vi sembra complesso, utilizzate Plesk, il quale vi mette a disposizione lo strumento per Wordpress che include Security Check, che analizza l’installazione di Wordpress, trova le regole non rispettate, verifica le impostazioni del database, permessi file/cartelle, nome utente admin, impostazioni tecniche, ecc.

Security Check con WordPress Toolkit è disponibile in tutti gli account web hosting RocketWeb e si tratta di una procedura automatizzata che non commette errori e inoltre è veloce, come spiegato qui di seguito.

Utilizzo di Security Check di Plesk

Immaginiamo adesso di utilizzare Rocketweb Webhosting (www.coretech.it/it/cloud/hosting/hosting.php) e apriamo una sessione Plesk; sulla sinistra clicchiamo la voce Wordpress che ci manderà alla sezione di Wordpress, dalla quale possiamo poi rilevare un’installazione Wordpress.
Vediamo Wordpress Toolkit, che è un modulo che permette di gestire l’installazione di Wordpress da dentro l'account di Rocket Webhosting; nell’immagine seguente si vede la schermata corrispondente con i pulsanti relativi alle funzioni disponibili.

Facendo clic su Check Security possiamo testare l’installazione di Wordpress; se il test dà esito positivo (nessun errore) accanto al nome (nell’immagine, l’installazione è chiamata Demo Webinar ed è la riga in azzurro) non appare alcunché, mentre se vengono rilevati errori compare un cerchio contenente il punto esclamativo bianco, come è nella figura.
Se apriamo l’installazione possiamo trovarci di fronte a una situazione come quella mostrata nell’immagine seguente, che si riferisce a un’installazione fatta creando volutamente degli errori.

Ogni punto esclamativo evidenzia un’errore nel componente corrispondente, che appare con il segno di spunta a destra.

Possiamo quindi tornare alla finestra dell’immagine precedente e, nel menu a sinistra della pagina, cliccare sulle voci (una alla volta) incriminate e così possiamo vedere cosa non va bene e in che modo bisogna cambiarlo.