Il 28% di tutto il web utilizza WordPress per creare siti web o blog personali. Come ogni software popolare, anche WordPress è bersagliato da attacchi di qualsiasi genere, condotti da malintenzionati che vogliono sfruttare le vulnerabilità del sistema per poter accedere a dati sensibili o addirittura prendere il controllo del server su cui il sito è ospitato. Vediamo quindi come mettere in sicurezza il nostro sito WordPress in pochi semplici passaggi:
BACKUP
Backup deve essere configurato propriamente sull’hosting, un backup configurato erroneamente è assolutamente inutile. Il backup non deve essere fatto sulla stessa macchina ma esternalizzato.
Sono due le principali cose da salvare: il database e i dati (generalmente all’interno della cartella public_html)
Il backup è importantissimo, rappresenta sempre l’ultima spiaggia di salvezza, se il nostro sito / database dovesse corrompersi o essere infettato potremo effettuare ancora un ripristino, quindi verifica l’integrità dei backup con frequenza.
COMPLICARE LA VITA AI BOT
File da cancellare dopo avere installato wordpress perché compromettono la sicurezza e/o inutili, cancellandoli renderete più difficile la vita ai bot che scansionano siti WordPress.
Collegarsi in SFTP (se non possibile FTP) e sfogliare public_html che è la cartella di installazione di wordpress, per voi potrebbe essere diversa.
public_html/wp-config-sample.php
File per configurazione database e altre impostazioni
In genere se avete effettuato una installazione automatica avrete sia il file wp-config.php che wp-config-sample.php
Cancellare il file wp-config-sample.php, perchè ormai risulta inutile
public_html/readme.html
Assolutamente cancellare rende nota la versione di wordpress in uso, utilizzabile da un hacker per capire possibili falle del sistema
public_html/license.txt
public_html/license.html
public_html/wp-admin/install.php
File di prima installazione ormai non più necessario
Cancellare “Powered by WordPress’’
Cancellare Powered by WordPress nel footer, ciò compromette la sicurezza permettendo ai bot di capire immediatamente che il nostro sito usa WordPress
PRIVILEGI DEGLI UTENTI NEL SISTEMA E PERMESSI DEI FILE
Il principio dei privilegi si basa su questa idea: dare alle persone che lo richiedono, l’accesso fintanto che possano svolgere il proprio lavoro, non di più e non di meno.
Non dare mai permessi al di là di quello di cui hanno bisogno agli utenti e riduci al minimo gli utenti che hanno permessi di ammistratore sul sito.
Lo schema di base per i permessi deve essere per le cartelle 775 (lettura, scrittura ed esecuzione per proprietario e gruppo, e lettura ed esecuzione per altri) e per i files 644 (lettura e scrittura per il proprietario, solo lettura per il gruppo e altri)
Assolutamente nessuna cartella o files deve avere permessi 777 (lettura, scrittura ed esecuzione per il proprietario, il gruppo e altri)
AGGIORNAMENTI E PLUGIN
Mantieni i plugin aggiornati sempre all’ultima versione così come wordpress ed eventuali temi installati, ma effettua sempre un backup prima di aggiornamenti importanti.
Mantieni sempre l’ultima versione del PHP supportata da Worpress e dal tuo Hosting, non solo risolverai problemi di sicurezza ma il tuo sito sarà più veloce, per esempio dalla versione 5.6 alla 7.0 le pagine caricano il 25% più rapidamente.
Installa plugin provenienti soltanto da fonti conosciute e disinstalla tutti quelli che non servono più.
Non cercare mai plugin premium gratis su google, portano soltanto malware.
PROTOCOLLI SICURI
Connettiti al server sempre in SFTP e non in FTP così la connessione sarà crittografata
P.S. Se usi Filezilla trasferisci i file con impostazione binaria e non automatica o ascii in quanto alcuni di questi saranno corrotti dopo il trasferimento
Implementa l’HTTPS ed il redirect da HTTP a HTTPS (per rendere sicura la connessione tra l’utente e il tuo sito) se il tuo sito contiene form di login, o se l’utente ha la possibilità in qualsiasi modo di inviare di informazioni sensibili.
L’HTTPS è implementabile gratuitamente con Let’s Encrypt ( con certificati che scadono ogni 3 mesi) oppure con certificati a pagamenti di durata più lunga.
Il sito in entrambi i casi provvederà una connessione crittografata e riconosciuta valida dai browser, cambia soltato l’emittente del certificato.
CONTROLLO ACCESSO
La base della sicurezza per l’accesso è creare una password solida composta da almeno 8 caratteri, tra cui 1 maiuscola, 1 minuscola, 1 numero ed 1 simbolo e non condividerla con nessuno.
Bisogna assolutamente limitare l’accesso alla pagina di login di WordPress per evitare attacchi di tipo bruteforce, la soluzione migliore è limitare l’accesso soltanto da determinati indirizzi ip, come quelli dell’amministratore del sistema e del proprietario del sito internet, lasciare abilitato per il login solo wp-login.php e/o cambiare l’indirizzo della pagina di login con uno personalizzato.
In questo modo eliminiamo alla base il problema non permettendo più a nessuno tranne che a noi stessi l’accesso di amministratore/editor al sito internet.
XML-RPC
L’ XML-RPC è un protocollo che serve per eseguire delle procedure remote (richieste HTTP) all’interno di un sito WordPress. Viene usato dagli sviluppatori per creare app (plugin, temi, ecc.. ) che possano dialogare direttamente con il sito WordPress ma senza loggarsi all’interno dello stesso. In questo modo è possibile utilizzare App esterne (ad es. un app su cellulare che modera i commenti del nostro blog) per fare delle operazioni che normalmente potremmo fare solo quando siamo loggati all’interno del pannello di controllo di WordPress .
Le maggiori vulnerabilità che affliggono XML-RPC sono due: Attacchi Brute Force tramite XMLRPC.php (meno individuabile di quello che si potrebbe fare analogamente sul wp-login.php spiegato precedentemente, i dettagli su questa vulnerabilità li trovate qui) e attacchi di tipo DDos (dettagli qui)
Per disabilitare XML-RPC puoi inserire all’interno del tuo file .htaccess questa stringa all’inizio del file:
Order Allow,Deny Deny from all
o in alternativa installare il plugin DISABLE XML-RPC. Basta attivarlo e avrai disabilitato XML-RPC.
Nel disabilitare XML-RPC stiamo attenti che esso preverrà l’accesso al vostro sito da parte, ad esempio, dell’App di WordPress su mobile, e qualche plugin che ne sfrutta le funzioni, come ad esempio il famoso JetPack.
DISABILITARE L’EDITING DEI FILES
È consigliabile disabilitare la modifica dei files all’interno della dashboard wordpress per fare questo aggiungere questa stringa alla fine del file wp-config.php:
/** Disabilitare l’editing nella dashboard. */ define('DISALLOW_FILE_EDIT', true);
BLOCCO ESECUZIONE PHP WP-CONTENT/UPLOADS
La cartella uploads è una cartella che deve essere sempre scrivibile dal webserver, è la cartella dove sono caricati tutti i file in remoto. È meglio prevenire l’esecuzione del php in questa cartella, se però il tuo tema richiede ne richiede l’esecuzione potrebbe non funzionare più. Crea un file chiamato .htaccess con estensione .htaccess ed inserisci queste stringhe:
# Kill PHP Esecuzione <Files.*php> deny from all
METTERE IN SICUREZZA IL WP-Config.php
Blocca a chiunque l’acesso al file WP-Config.php dove sono memorizzate informazioni sensibile del tuo sito, come credenziali e nome del database, inserisci queste stringhe incima al file .htaccess:
order allow,deny deny from all