WordPress è il sistema di gestione dei contenuti (CMS) più popolare da anni. Oggi alimenta quasi il 40% dei siti web, comprese grosse testate internazionali. Tuttavia, a causa di questa sua grande diffusione, WordPress è spesso preso di mira dagli hacker di tutto il mondo.
Indipendentemente dal tipo di contenuto fornito dal tuo sito, non sei e non sarai un’eccezione. Se non prendi alcune precauzioni il tuo sito web potrebbe venire hackerato anche pochi giorni dopo averlo messo online. Come tutto ciò che riguarda la tecnologia, devi controllare la sicurezza del tuo sito web.
Perché la sicurezza del tuo sito web WordPress è importante?
Un sito WordPress compromesso può causare gravi danni ai tuoi utenti, alle entrate economiche e alla reputazione della tua azienda. Gli hacker possono rubare informazioni sugli utenti, password, installare software dannoso e persino distribuire malware ai tuoi lettori.
Peggio ancora, potresti ritrovarti a pagare ransomware agli hacker solo per riottenere l’accesso al tuo sito web.
Nel marzo 2016, Google ha dichiarato che più di 50 milioni di utenti di siti web sono stati avvertiti del fatto che un sito web che stanno visitando potrebbe contenere malware o rubare informazioni. Inoltre, Google inserisce nella blacklist circa 20.000 siti web per malware e circa 50.000 per phishing ogni settimana.
Se il tuo sito web rappresenta un’azienda, devi prestare particolare attenzione alla sicurezza di WordPress.
Chi entra nel tuo sito web, visita la tua azienda!
Analogamente a come è responsabilità dei proprietari di attività proteggere l’edificio del loro negozio fisico, in qualità di proprietario di un’attività online è tua responsabilità proteggere il tuo sito web.
In questo tutorial condivido i miei migliori consigli per mantenere sicuro il tuo sito web WordPress.
Vulnerabilità di WordPress
Prima di passare in rassegna le linee guida per mantenere sicuro un sito web sviluppato con WordPress, credo sia importante conoscere le più comuni vulnerabilità di sicurezza che riguardano i siti web (tra l’altro, argomento della mia tesi di laurea Nd.R.).
- Backdoor
- Pharma Hacks
- Brute Force Attack – Tentativi di accesso a forza bruta
- Reindirizzamenti dannosi
- Cross-site Scripting (XSS)
- Denial of Service (DoS) – Negazione del servizio
Backdoor
La vulnerabilità backdoor fornisce agli hacker passaggi nascosti che aggirano la crittografia di sicurezza per ottenere l’accesso ai siti web di WordPress tramite vari metodi: wp-Admin, SFTP, FTP, ecc.
Una volta sfruttate, le backdoor consentono agli hacker di devastare i server di hosting attraverso pericolose contaminazione cross-site, ovvero attacchi che compromettono più siti web ospitati sullo stesso server.
Nel 2019 Sucuri ha pubblicato report annuale sulla sicurezza, ed emerge che le backdoor continuano a essere una delle tante azioni post-hack che gli aggressori intraprendono, con il 47% dei siti infetti che hanno una qualche forma di backdoor injection.
Backdoors are one of the most common threats found on compromised websites. In 2019, 47% of infected sites containing at least one backdoor.
Le backdoor sono spesso crittografate per apparire come file di sistema WordPress legittimi e si fanno strada nei database sfruttando punti deboli e bug nelle versioni obsolete della piattaforma.
Fortunatamente, prevenire e curare questa vulnerabilità è abbastanza semplice. Puoi scansionare il tuo sito WordPress con strumenti come SiteCheck che possono facilmente rilevare backdoor comuni.
L’autenticazione a due fattori, il blocco degli IP, la limitazione dell’accesso dell’amministratore e la prevenzione dell’esecuzione non autorizzata di file PHP sono contromisure utili per contrastare le comuni minacce backdoor.
Pharma Hacks
L’exploit Pharma Hack viene utilizzato per inserire codice maligno in versioni obsolete di siti web e plug-in di WordPress, facendo sì che i motori di ricerca restituiscano snippet modificati per prodotti farmaceutici quando un sito web compromesso viene visualizzato in SERP.
Questa vulnerabilità è più una minaccia di spam rispetto al malware tradizionale, ma fornisce ai motori di ricerca una ragione sufficiente per bloccare il sito con l’accusa di distribuire spam.
Un Pharma Hack include solitamente backdoor in plugin e database, che possono essere ripuliti seguendo le istruzioni di questo blog post di Sucuri. Tuttavia, gli exploit sono spesso varianti ingannevoli di iniezioni dannose crittografate nascoste nei database e richiedono un processo di pulizia approfondito per correggere la vulnerabilità.
Puoi facilmente prevenire gli attacchi Pharma utilizzando i provider di hosting WordPress managed migliori sul mercato, che offrono hardware e software aggiornato e mantenendo aggiornati i tuoi siti web e plugin di WordPress.
Brute Force Attack – Tentativi di accesso a forza bruta
I tentativi di accesso a forza bruta utilizzano script automatici per sfruttare le password deboli e ottenere l’accesso al tuo sito.
L’autenticazione a due fattori, la limitazione dei tentativi di accesso, il monitoraggio degli accessi non autorizzati, il blocco di IP rompiscatole e l’utilizzo di password complesse sono alcuni dei modi più semplici ed efficaci per prevenire attacchi di forza bruta. Se il tuo sito è su un web server gestito da te, potrebbe interessarti leggere la guida su Fail2Ban, un software leggero e molto utile che monitora i file di log e banna gli IP che mettono il naso dove non dovrebbero.
Sfortunatamente, la maggior parte dei proprietari di siti web WordPress non riesce a eseguire queste pratiche di sicurezza, mentre gli hacker sono facilmente in grado di compromettere fino a 30.000 siti web in un solo giorno utilizzando attacchi di forza bruta.
Reindirizzamenti dannosi
I reindirizzamenti dannosi creano backdoor nelle installazioni di WordPress utilizzando FTP, SFTP, wp-admin e altri protocolli e inseriscono codici di reindirizzamento nel sito web.
I reindirizzamenti vengono spesso inseriti nel file .htaccess e in altri file core di WordPress in forme codificate, indirizzando il traffico verso siti web potenzialmente dannosi.
Cross-Site Scripting (XSS)
Il Cross-Site Scripting (XSS) si verifica quando uno script dannoso viene iniettato in un sito web o un’applicazione attendibile. L’autore dell’attacco lo utilizza per inviare codice dannoso, in genere script lato browser, all’utente finale a sua insaputa. Lo scopo è solitamente quello di acquisire cookie o dati di sessione, in alcuni casi anche riscrivere l’HTML su una pagina.
Secondo WordFence, le vulnerabilità Cross-Site Scripting sono la vulnerabilità più comune riscontrata nei plugin di WordPress con un margine significativo.
Cross Site Scripting vulnerabilities are the most common vulnerability found in WordPress plugins by a significant margin. In an analysis that we did of 1599 WordPress plugin vulnerabilities reported over a 14 month period, we found the following distribution:
Denial of Service (DoS) – Negazione del servizio
Forse la più pericolosa di tutte, la vulnerabilità Denial of Service (DoS) sfrutta errori e bug nel codice per sopraffare la memoria dei sistemi operativi che girano sui web server.
Gli hacker hanno compromesso milioni di siti web e incassato milioni di dollari sfruttando versioni obsolete e difettose del software WordPress con attacchi DoS. Sebbene i criminali informatici motivati finanziariamente abbiano meno probabilità di prendere di mira le piccole aziende, tendono a compromettere i siti web obsoleti e vulnerabili con la creazione di catene di botnet che usano a loro volta per attaccare le grandi aziende.
Anche le ultime versioni del software WordPress non sono in grado di difendersi in modo completo dagli attacchi DoS di alto profilo, ma almeno ti aiuteranno a evitare di essere coinvolto nel fuoco incrociato tra istituzioni finanziarie e criminali informatici sofisticati. Parlando di Dos non posso non citare il 21 ottobre 2016. Questo è stato il giorno in cui Internet si è interrotto a causa di un attacco DDoS DNS.
I metodi più comuni per proteggersi o mitigare attacchi Dos sono:
- Disabilitare le REST API di WordPress
- Disabilitare XML RPC in WordPress
- Abilitare un firewall
- Usare le funzioni di sicurezza di CloudFlare
Scegli una buona compagnia di hosting
Il tuo servizio di hosting svolge il ruolo più importante nella sicurezza del tuo sito WordPress. Un buon provider di hosting condiviso come Bluehost o Siteground prende le misure aggiuntive per proteggere i propri server dalle minacce comuni e monitora continuamente la loro rete per attività sospette.
- Tutte le buone società di hosting dispongono di strumenti per prevenire attacchi DDOS su larga scala
- Mantengono aggiornati il software e l’hardware del server per impedire agli hacker di sfruttare una vulnerabilità di sicurezza nota in una vecchia versione.
- Sono pronti a implementare piani di ripristino di emergenza e incidenti che consentono loro di proteggere i dati in caso di incidente grave.
Su un piano di hosting condiviso, condividi le risorse del server con molti altri clienti. Questo apre il rischio di contaminazione tra siti in cui un hacker può utilizzare un sito vicino per attaccare il tuo sito web.
L’utilizzo di un servizio di hosting WordPress gestito come ClousWays o WP Engine forniscono una piattaforma più sicura per il tuo sito web. Le società di hosting WordPress gestite offrono quasi sempre backup automatici, aggiornamenti automatici di WordPress e configurazioni di sicurezza più avanzate per proteggere il tuo sito web
Consiglio WPEngine come provider di hosting WordPress gestito preferito. Sono anche i più popolari nel settore.
Io uso DigitalOcean per i miei progetti, ma i server che affitto sono unmanaged, non gestiti, quindi è un hosting provider solo per chi sa dove mettere le mani.
Il modo più semplice per proteggere il tuo sito è rivolgersi a un provider di hosting che fornisce più livelli di sicurezza e che possa supportarti dove tu non sai arrivare.
Più o meno, tutti pensano che il loro hosting sia fantastico fino a quando qualcosa non si rompe per la prima volta. Nel mondo reale, non tutte le società di hosting e le offerte di hosting sono uguali. Alcuni host sono semplicemente scadenti e non se la cavano bene sotto stress.
Può sembrare allettante rivolgersi a un provider di hosting economico, dopotutto risparmiare denaro sull’hosting del tuo sito web significa che puoi spenderlo altrove. Tuttavia, non lasciarti tentare da questa strada. Una scelta di hosting basata sul risparmio può causare (e spesso causa) incubi lungo la strada. I tuoi dati potrebbero essere completamente cancellati ed i tuoi URL potrebbero iniziare a essere reindirizzati da qualche altra parte.
Pagare poco di più per una società di hosting di qualità significa che al tuo sito web vengono automaticamente attribuiti ulteriori livelli di sicurezza. Un ulteriore vantaggio, utilizzando un buon hosting WordPress, è che puoi velocizzare notevolmente il tuo sito WordPress.
Verifica i servizi inclusi: cerca le scansioni quotidiane del malware e l’accesso all’assistenza 24 ore su 24, 7 giorni su 7, 365 giorni all’anno.
Prevenire è meglio di curare, ti consiglio di trovare una casa idonea al business che rappresenta il tuo sito web. In generale, più paghi, migliore sarà il tuo nuovo host.
Protezione da attacchi DDoS
DDoS è un tipo di attacco DoS in cui vengono utilizzati più sistemi per prendere di mira un singolo sistema provocando un attacco Denial of Service (DoS). Gli attacchi DDoS non sono una novità: secondo Britannica il primo caso documentato risale all’inizio del 2000. A differenza di qualcuno che hackera il tuo sito, questi tipi di attacchi normalmente non danneggiano il tuo sito, ma piuttosto lo bloccheranno per poche ore o giorni.
Cosa puoi fare per proteggerti? Uno dei migliori consigli è utilizzare un affidabile servizio di sicurezza di terze parti come Cloudflare o Sucuri. Se gestisci un’attività, può avere senso investire nei loro piani premium.
La loro protezione DDoS può essere utilizzata per mitigare gli attacchi DDoS di tutte le forme e dimensioni, compresi quelli che prendono di mira i protocolli UDP e ICMP, così come SYN/ACK, DNS amplification e attacchi Layer 7. Altri vantaggi di queste piattaforme includono un proxy per nascondere il tuo indirizzo IP di origine e la possibilità di configurare regole per un firewall in grado di bloccare singoli IP o interi paesi.
Assicurati di controllare il log del web server almeno una volta a settimana, è il posto migliore per monitorare le richieste inviate al web server.
Usa l’ultima versione PHP
PHP è la spina dorsale del tuo sito WordPress e quindi è molto importante utilizzare l’ultima versione sul tuo server. Ogni versione principale di PHP è in genere completamente supportata per due anni dopo il rilascio. Durante questo periodo, bug e problemi di sicurezza vengono risolti e aggiornati regolarmente. Ad esempio, chiunque esegua la versione PHP 7.1 o inferiore non dispone più del supporto per la sicurezza ed è esposto a vulnerabilità di sicurezza senza patch.
Il bello è che pochi server usano software aggiornato. Secondo la pagina ufficiale delle statistiche di WordPress, al momento oltre il 21% degli utenti di WordPress utilizza ancora PHP 5.6 o inferiore. Se si combina questo con PHP 7.0, un enorme 31% degli utenti sta attualmente utilizzando versioni PHP che non sono più supportate. Gli hacker ringraziano.
A volte le aziende e gli sviluppatori impiegano tempo per testare e garantire la compatibilità con il loro codice, ma non hanno scuse per eseguire qualcosa senza supporto di sicurezza. Per non parlare dell’enorme impatto sulle prestazioni in esecuzione su versioni precedenti.
Non sai quale versione di PHP utilizzi attualmente? La maggior parte degli host in genere la include nelle intestazioni HTTP. Un modo rapido per controllare è eseguire il tuo sito tramite Pingdom. Fare clic sulla prima richiesta e cercare un parametro X-Powered-By. In genere questo mostrerà la versione di PHP attualmente utilizzata dal tuo server web. Tuttavia, alcuni host rimuoveranno questa intestazione per motivi di sicurezza. Kinsta ad esempio rimuove questa intestazione per impostazione predefinita per mantenere il tuo sito sicuro.
Se sei su un host WordPress che utilizza cPanel, di solito puoi passare da una versione di PHP a un’altra facendo clic su “Seleziona PHP” nella categoria software.
Non utilizzare temi obsoleti o crackati
I temi premium di WordPress sembrano più professionali e hanno opzioni più personalizzabili rispetto a un tema gratuito. Ma si potrebbe sostenere che ottieni quello per cui paghi.
I temi premium sono codificati da sviluppatori altamente qualificati e vengono testati per superare più controlli WordPress fin da subito. Non ci sono restrizioni sulla personalizzazione del tema e riceverai pieno supporto se qualcosa va storto sul tuo sito. Soprattutto riceverai aggiornamenti regolari del tema. Tuttavia, ci sono alcuni siti che forniscono temi obsoleti o crackati. Un tema obsoleto o crackato è una versione scaduta o compromessa di un tema premium, disponibile tramite mezzi illegali. Sono anche molto pericolosi per il tuo sito. Questi temi contengono codici dannosi nascosti, che potrebbero distruggere il tuo sito web e database o registrare le tue credenziali di amministratore.
Anche se potresti essere tentato di risparmiare qualche soldo, evita sempre i temi provenienti da fonti non sicure.
Installa una soluzione di backup per WordPress
I backup sono la tua prima difesa contro qualsiasi attacco WordPress. Ricorda, niente è sicuro al 100%. Se i siti web del governo possono essere violati, lo stesso vale per i tuoi.
I backup ti consentono di ripristinare rapidamente il tuo sito WordPress nel caso in cui dovesse accadere qualcosa di brutto.
Esistono molti plug-in di backup di WordPress gratuiti e a pagamento che puoi utilizzare. La cosa più importante che devi sapere quando si tratta di backup è che devi salvare regolarmente i backup dell’intero sito (FTP e database) in una posizione remota e mai non il tuo account di hosting. Altrimenti, se il web server viene compromesso, non avrai accesso nemmeno ai file di backup.
Ti consiglio di archiviarlo su un servizio cloud come Amazon, Dropbox o cloud privati come Stash.
In base alla frequenza con cui aggiorni il tuo sito web, l’impostazione ideale per eseguire il backup potrebbe essere una volta al giorno o backup in tempo reale.
Per fortuna questo può essere fatto facilmente utilizzando plugin come VaultPress o UpdraftPlus. Sono entrambi affidabili e, soprattutto, facili da usare (non è necessaria la codifica).
Installa un plugin per la sicurezza di WordPress
È un lavoro che richiede tempo controllare regolarmente la sicurezza del tuo sito web per il malware e, a meno che tu non sia un esperto in sicurezza informatica, potresti non rendertene nemmeno conto che stai guardando un pezzo di malware scritto nel codice.
Fortunatamente altri si sono resi conto che non tutti sono sviluppatori e hanno messo a disposizione plugin per la sicurezza di WordPress per aiutare anche gli utenti meno competenti. Un plug-in di sicurezza si prende cura della sicurezza del tuo sito, scansiona i file in cerca di malware e monitora il tuo sito 24 ore su 24, 7 giorni su 7.
Sucuri Security è un ottimo plugin per la sicurezza di WordPress. Offre controllo delle attività di sicurezza, monitoraggio dell’integrità dei file, scansione remota del malware, monitoraggio della lista nera, rafforzamento della sicurezza, azioni di sicurezza post-hack, notifiche di sicurezza e persino firewall del sito web (funziona premium).
Dopo i backup, la prossima cosa che devi fare è configurare un sistema di controllo e monitoraggio che tenga traccia di tutto ciò che accade sul tuo sito web. Ciò include il monitoraggio dell’integrità dei file, tentativi di accesso non riusciti, scansione di malware, ecc.
Questo plugin per la sicurezza di WordPress è molto potente, quindi sfoglia tutte le schede e le impostazioni per vedere tutto ciò che fa come scansione malware, registri di controllo, tracciamento dei tentativi di accesso non riusciti, ecc.
Altri buoni plugin per la sicurezza di WordPress, alternativi a Sucuri sono:
- Wordfence Security
- iThemes Security
- VaultPress
- BulletProof Security
Utilizzare una password complessa
Le password sono una parte molto importante della sicurezza del sito web e purtroppo spesso vengono trascurate. Se utilizzi una password semplice, ad esempio “123456, abc123, password”, devi modificare immediatamente la password. Sebbene questa password possa essere facile da ricordare, è anche estremamente facile da indovinare, come anche la tua data di nascita. Un utente avanzato può facilmente decifrare la tua password e accedervi senza troppi problemi. Date di nascita e numeri che appaiono sui profili social, non sono una buona idea. Conosco persone che usano la stessa password per tutto. Geni…
È importante utilizzare una password complessa o, meglio ancora, generata automaticamente con una varietà di numeri, combinazioni di lettere maiuscole e minuscole con parole senza senso e caratteri speciali come #, £, $, &, % o ^.
I tentativi di hacking di WordPress più comuni utilizzano password rubate. Puoi renderlo difficile utilizzando password più complesse che sono univoche per il tuo sito web. Non preoccuparti della password solo dell’area di amministrazione di WordPress, ma anche per account FTP, database, account di hosting WordPress e indirizzi email personalizzati che utilizzano il nome di dominio del tuo sito.
Molti principianti non amano usare password complesse perché sono difficili da ricordare. La cosa buona è che non è più necessario ricordare le password. Puoi utilizzare un gestore di password, io ad esempio uso KeePass.
Un altro modo per ridurre il rischio è non consentire a nessuno di accedere al tuo account amministratore di WordPress a meno che non sia assolutamente necessario. Se hai un team numeroso o autori ospiti, assicurati di aver compreso i ruoli e le capacità degli utenti in WordPress prima di aggiungere nuovi account utente e autori al tuo sito WordPress.
Ci sono alcuni accorgimenti efficaci che puoi usare per proteggere il login di WordPress, se l’argomento ti interessa ti consiglio di leggere la guida dedicata.
Disabilitare la modifica dei file
Quando imposti il tuo sito WordPress, nella dashboard è presente una funzione di editor di codice che ti consente di modificare il tema e il plug-in. È possibile accedervi andando su Aspetto> Editor. Un altro modo per trovare l’editor dei plugin è andare in Plugin> Editor.
Una volta che il tuo sito è attivo, ti consiglio di disabilitare questa funzione. Se qualche hacker riesce ad accedere al tuo pannello di amministrazione di WordPress, può iniettare codice dannoso al tuo tema e plugin. Spesso il codice sarà così ben nascosto che potresti non notare nulla di sbagliato finché non sarà troppo tardi.
Per disabilitare la possibilità di modificare i plugin e il file del tema, incolla il seguente codice nel tuo file wp-config.php.
define ("DISALLOW_FILE_EDIT", true);
Imposta attentamente i permessi FTP di file e directory
Attraverso FTP puoi configurare i permessi di lettura ed esecuzione delle cartelle di WordPress. Autorizzazioni di directory errate possono essere fatali, soprattutto se lavori in un ambiente di hosting condiviso.
In tal caso, la modifica dei file e delle autorizzazioni delle directory è una buona mossa per proteggere il sito web a livello di hosting. L’impostazione dei permessi della directory su “755” e dei file su “644” protegge l’intero file system: directory, sottodirectory e singoli file.
Questo può essere fatto manualmente tramite FTP oppure con il File Manager all’interno del tuo pannello di controllo di hosting, o tramite il terminale (connesso con SSH) – usa il comando “chmod”.
Per ulteriori informazioni, puoi installare il plug-in iThemes Security per controllare le tue attuali impostazioni di autorizzazione.
Installa il certificato SSL
Al giorno d’oggi Single Sockets Layer, SSL, è vantaggioso per tutti i tipi di siti web. Inizialmente era necessario SSL per rendere un sito sicuro per transazioni specifiche, come l’elaborazione dei pagamenti. Oggi, tuttavia, Google ne ha riconosciuto l’importanza e fornisce ai siti con un certificato SSL un posto più ponderato nei risultati di ricerca.
SSL è obbligatorio per tutti i siti che elaborano informazioni sensibili, ad esempio password o dettagli della carta di credito. Senza un certificato SSL, tutti i dati tra il browser web dell’utente e il tuo server web vengono forniti come testo normale, in chiaro, non cifrato. Questo testo può essere letto molto facilmente dagli hacker malintenzionati.
Utilizzando un SSL, le informazioni sensibili vengono crittografate prima di essere trasferite tra il browser e il server, rendendo più difficile la lettura e rendendo più sicuro il tuo sito.
Per i siti web che accettano informazioni sensibili, il prezzo medio di SSL è di circa $ 70- $ 199 all’anno. Se non accetti informazioni sensibili, non è necessario pagare per il certificato SSL. Per risolvere questo problema, un’organizzazione senza scopo di lucro chiamata Let’s Encrypt ha deciso di offrire certificati SSL gratuiti ai proprietari di siti web. Il loro progetto è supportato da Google Chrome, Facebook, Mozilla e molte altre società.
Quasi tutte le società di hosting offrono un certificato SSL gratuito Let’s Encrypt che puoi installare sul tuo sito. Se gestisci il tuo web server potrebbe interessarti leggere la guida per installare Let’s Encrypt con Certbot.
Una volta abilitato SSL, il tuo sito web utilizzerà HTTPS invece di HTTP, vedrai anche un lucchetto accanto all’indirizzo del tuo sito web nel browser.
Se la tua società di hosting non ne offre uno, puoi acquistarne uno da Domain.com. Il certificato viene fornito con una garanzia di sicurezza di $ 10.000 e un sigillo di sicurezza TrustLogo. Anche CloudFlare offre gratuitamente un certificato SSL.
Puoi testare la qualità del tuo certificato con lo strumento gratuito sslabs.com.
Aggiungi le ultime intestazioni di sicurezza HTTP
Un altro passaggio che puoi compiere per rafforzare la sicurezza di WordPress è sfruttare le intestazioni di sicurezza HTTP. Questi sono generalmente configurati a livello di server web e indicano al browser come comportarsi durante la gestione dei contenuti del tuo sito.
Ci sono molte diverse intestazioni di sicurezza HTTP, ma di seguito sono in genere quelle più importanti.
- Content-Security Policy – Politica di sicurezza dei contenuti
- X-XSS-Protection – Protezione X-XSS
- Strict-Transport-Security – Rigorosa sicurezza dei trasporti
- X-Frame-Options – Opzioni X-Frame
- Pins chiave pubblica
- X-Content-Type
Puoi verificare quali intestazioni sono attualmente in esecuzione sul tuo sito WordPress avviando Chrome devtools e osservando l’intestazione nella risposta iniziale del tuo sito nella tab Network.
Puoi anche scansionare il tuo sito web WordPress con lo strumento gratuito Securityheaders.com. Questo tool mostrerà quali intestazioni di sicurezza HTTP hai attualmente sul tuo sito. Se non sei sicuro di come implementarli, puoi sempre chiedere al tuo host se può aiutarti oppure al sottoscritto.
Nota: è anche importante ricordare che quando si implementano le intestazioni di sicurezza HTTP come potrebbero influire sui sottodomini di WordPress. Ad esempio, se aggiungi l’intestazione Content Security Policy e limiti l’accesso ai domini, devi aggiungere anche i tuoi sottodomini.
Cambia il tuo URL di accesso WP
Per impostazione predefinita, per accedere a WordPress l’indirizzo è “yoursite.com/wp-admin“. Lasciandolo come predefinito potresti essere preso di mira da un attacco di forza bruta per violare la tua combinazione nome utente/password. Se accetti che gli utenti si registrino per gli account di sottoscrizione, potresti anche ricevere molte registrazioni di spam.
Per evitare ciò, è possibile modificare l’URL di accesso dell’amministratore o aggiungere una domanda di sicurezza alla pagina di registrazione e accesso.
Puoi proteggere ulteriormente la tua pagina di accesso aggiungendo un plug-in di autenticazione a 2 fattori al tuo WordPress. Quando provi ad accedere, dovrai fornire un’autenticazione aggiuntiva per poter accedere al tuo sito, ad esempio, può essere la tua password e un’e-mail (o testo). Questa è una funzionalità di sicurezza avanzata per impedire agli hacker di accedere al tuo sito.
Puoi anche verificare quali IP hanno il maggior numero di tentativi di accesso falliti, quindi puoi bloccare quegli indirizzi IP, ad esempio con Fail2Ban.
La modifica dell’URL di accesso è una cosa facile da fare. Per impostazione predefinita, è possibile accedere alla pagina di accesso di WordPress tramite wp-login.php o wp-admin aggiunto all’URL principale del sito.
Quando gli hacker conoscono l’URL diretto della tua pagina di accesso, possono tentare di entrare con un attacco Brute Force. Di solito gli hacker tentano di accedere al sito con il loro GWDb (Guess Work Database, ovvero un database di nomi utente e password indovinati; ad esempio nome utente: admin e password: p @ ssword … con milioni di tali combinazioni).
A questo punto, hai già limitato i tentativi di accesso dell’utente e scambiato i nomi utente con gli ID e-mail. Ora puoi sostituire l’URL di accesso e sbarazzarci del 99% degli attacchi di forza bruta diretti.
Questo piccolo trucco impedisce a un’entità non autorizzata di accedere alla pagina di accesso. Solo qualcuno con l’URL esatto può farlo.
Il modo più semplice per modificare l’URL di accesso è utilizzare il plug-in WPS Hide Login. È molto semplice da usare; basta inserire il nuovo URL della pagina di accesso e salvare le modifiche. Puoi impostare l’URL come desideri.
Se invece, come me, non ami usare plugin, puoi procedere seguendo 5 semplici passi per modificare la pagina di accesso di WordPress:
- Crea un nuovo file .php
- Copia il codice dal tuo wp-login.php, quindi incollalo nel tuo nuovo file.
- All’interno del codice incollato, sostituisci ogni istanza di “wp-login.php” con il nuovo nome del file. La funzione “Trova e sostituisci” è tua amica.
- Elimina il file wp-login.php.
- Accedi tramite il tuo nuovo URL.
Limita i tentativi di accesso
Per impostazione predefinita, WordPress consente agli utenti di provare ad accedere al sito web tutte le volte che vogliono. Anche se questo può aiutare se dimentichi spesso i dati di accesso, apre la porta anche ad attacchi di forza bruta.
Limitando il numero di tentativi di accesso, gli utenti possono provare un numero limitato di volte fino a quando non vengono temporaneamente bloccati. Ti consiglio di limitare le possibilità di login poiché l’hacker verrà bloccato prima che possa finire con successo il suo attacco.
Puoi abilitare questa funzione con un plug-in di tentativi di accesso limite di WordPress. Dopo aver installato il plug-in, puoi modificare il numero di tentativi di accesso tramite Impostazioni > Tentativi limite di accesso.
Per limitare i tentativi di accesso a WordPress su un web server unmanaged io uso Fail2Ban con una Jail dedicata a WordPress.
Aggiungi autenticazione a due fattori
La tecnica di autenticazione a due fattori richiede che gli utenti accedano utilizzando un metodo di autenticazione in due passaggi. Il primo è il nome utente e la password e il secondo passaggio richiede l’autenticazione utilizzando un dispositivo o un’app separata.
La maggior parte dei migliori siti web online come Google, Facebook, Twitter, ti consente di abilitarlo per i tuoi account. Puoi anche aggiungere la stessa funzionalità al tuo sito WordPress.
Innanzitutto, è necessario installare e attivare il plug-in Two Factor Authentication. Dopo l’attivazione, è necessario fare clic sul collegamento “Autenticazione a due fattori” nella barra laterale di amministrazione di WordPress.
Successivamente, è necessario installare e aprire un’app di autenticazione sul telefono. Ce ne sono molti disponibili come Google Authenticator, Authy e LastPass Authenticator.
Tutto qui, la tua app di autenticazione ora lo salverà.
- La prossima volta che accedi al tuo sito web, ti verrà chiesto il codice di autenticazione a due fattori dopo aver inserito la password.
- Inserisci il tuo codice di autenticazione a due fattori
- Apri semplicemente l’app di autenticazione sul tuo telefono e inserisci il codice che vedi su di essa.
Modifica il nome utente “admin” predefinito
Ai vecchi tempi, il nome utente predefinito dell’amministratore di WordPress era “admin”. Poiché i nomi utente costituiscono metà delle credenziali di accesso, ciò ha reso più facile per gli hacker eseguire attacchi di brute force.
Per fortuna, WordPress da allora ha cambiato questa situazione e ora richiede di selezionare un nome utente personalizzato al momento dell’installazione di WordPress.
Tuttavia, alcuni programmi di installazione di WordPress con 1 clic, impostano ancora il nome utente amministratore predefinito su “admin”. Se noti che è così, probabilmente è una buona idea cambiare il tuo web hosting.
Poiché WordPress non ti consente di modificare i nomi utente per impostazione predefinita, ci sono tre metodi che puoi utilizzare per modificare il nome utente.
- Crea un nuovo nome utente amministratore ed elimina quello vecchio.
- Usa il plugin Username Changer
- Aggiorna il nome utente da phpMyAdmin
Cambia il prefisso del database di WordPress
Per impostazione predefinita, WordPress utilizza wp_ come prefisso per tutte le tabelle nel database di WordPress. Se il tuo sito WordPress utilizza il prefisso del database predefinito, sarà più facile per gli hacker indovinare il nome della tua tabella. Questo è il motivo per cui consiglio di cambiarlo.
Puoi modificare il prefisso del database seguendo il tutorial passo passo per migliorare la sicurezza.
Nota: questo procedimento può danneggiare il tuo sito se non viene eseguito correttamente. Procedi solo se ti senti a tuo agio con le tue capacità di programmazione, e dopo aver fatto un backup del database.
Nascondi i file wp-config.php e .htaccess
Sebbene questo sia un processo avanzato per migliorare la sicurezza del tuo sito, se prendi sul serio la sicurezza è una buona pratica nascondere i file .htaccess e wp-config.php del tuo sito per impedire agli hacker di accedervi.
Consiglio vivamente di fare implementare questa opzione da sviluppatori esperti, poiché è imperativo eseguire prima un backup del tuo sito e poi procedere con cautela. Qualsiasi errore potrebbe rendere il tuo sito inaccessibile.
Per nascondere i file, dopo il backup, ci sono due cose che devi fare:
Per prima cosa, vai al tuo file wp-config.php e, se usi Apache, aggiungi il seguente codice nel file .htaccess:
# protect wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>
Sebbene il processo stesso sia molto semplice, è importante assicurarsi di avere il backup prima di iniziare nel caso in cui qualcosa vada storto nel processo.
Il file wp-config.php contiene informazioni cruciali sulla tua installazione di WordPress ed è il file più importante nella directory principale del tuo sito. Proteggerlo significa proteggere il nucleo del tuo blog WordPress.
Questa tattica rende difficile agli hacker violare la sicurezza del tuo sito, poiché il file wp-config.php diventa loro inaccessibile.
Sarebbe anche buona cosa spostare il file wp-config.php altrove. Prendi il tuo file wp-config.php e spostalo (e magari cambia anche il nome file) a un livello superiore rispetto alla tua directory principale.
Ora, la domanda è: se lo memorizzi altrove, come fa il server ad accedervi? Dopo aver spostato tutti i dati sensibili dal file wp-config.php, aggiungi la seguente riga <? Php nel file wp-config.php:
<?php
include('/home/yourusername/config.php');
Ricordati che nell’attuale architettura di WordPress, le impostazioni del file di configurazione sono impostate sul più alto livello nell’elenco delle priorità. Quindi, anche se il file è memorizzato in una cartella sopra la directory principale, WordPress può comunque vederlo.
Protezione con password di amministrazione e pagina di accesso di WordPress
Una buona misura è proteggere con password l’area di amministrazione di WordPress. Normalmente, gli hacker possono richiedere la tua cartella wp-admin e la pagina di accesso senza alcuna restrizione. Ciò consente loro di provare i loro trucchi di hacking o eseguire attacchi DDoS.
È possibile aggiungere ulteriore protezione tramite password a livello lato server, che bloccherà efficacemente tali richieste.
Come? Questo dipende se usi un web server Apache o Nginx, online trovi mille guide per aggiungere autenticazione a livello di cartella.
Aggiorna la tua versione di WordPress
Tanti sviluppatori o webmaster, vuoi per pigrizia, vuoi per incompetenza o vuoi per budget ridicoli dei clienti, una volta pubblicato live il sito web lo abbandonano a se stesso. Non aggiornando WordPress, temi e plugin con costanza il sito web diventerà presto obsoleto, ci saranno bug noti che potranno essere sfruttati dagli hacker il sito non sarà più sicuro.
WordPress è un software open source che viene regolarmente mantenuto e aggiornato. Per impostazione predefinita, WordPress installa automaticamente gli aggiornamenti minori. Per le versioni principali, è necessario avviare manualmente l’aggiornamento.
WordPress include anche migliaia di plugin e temi che puoi installare sul tuo sito web. Questi plugin e temi sono gestiti da sviluppatori di terze parti che rilasciano (o dovrebbero rilasciare) regolarmente anche aggiornamenti.
Questi aggiornamenti di WordPress sono fondamentali per la sicurezza e la stabilità del tuo sito web. Devi assicurarti che il core, i plugin e il tema di siano sempre aggiornati.
Con ogni aggiornamento, gli sviluppatori apportano alcune modifiche, spesso inclusi aggiornamenti alle funzionalità di sicurezza. Rimanendo aggiornato con l’ultima versione, stai aiutando a proteggerti da exploit pre-identificati che gli hacker possono utilizzare per ottenere l’accesso al tuo sito.
È anche importante aggiornare i plugin e i temi per gli stessi motivi.
Rimuovi il numero di versione di WordPress
Il tuo attuale numero di versione di WordPress può essere trovato molto facilmente. Fondamentalmente si trova proprio nel codice sorgente del tuo sito.
Ecco il punto: se gli hacker sanno quale versione di WordPress utilizzi, è più facile per loro creare su misura l’attacco perfetto.
Puoi nascondere il tuo numero di versione con quasi tutti i plugin di sicurezza di WordPress che ho menzionato sopra.
Per un approccio più manuale (e per rimuovere anche il numero di versione dai feed RSS), considera l’aggiunta della seguente funzione al tuo file functions.php:
function wpeve_remove_version() {
return '';
}
add_filter('the_generator', 'wpeve_remove_version');
Abilita web Application Firewall (WAF)
Il modo più semplice per proteggere il tuo sito ed essere sicuro della sicurezza di WordPress è utilizzare un firewall per applicazioni web (WAF).
Un firewall blocca tutto il traffico dannoso prima ancora che raggiunga il tuo sito web.
Esistono anche Firewall a livello DNS come quello usato da CloudFlare: questi firewall instradano il traffico del tuo sito web attraverso i loro server proxy cloud. Ciò consente loro di inviare solo traffico autentico al tuo server web.
Si trovano anche Firewall a livello di applicazione, come quelli presenti in alcuni plugin di sicurezza di WordPress. Questa tipologia di firewall esamina il traffico una volta che raggiunge il tuo server, ma prima di caricare la maggior parte degli script di WordPress. Questo metodo non è efficiente quanto un firewall a livello DNS nel ridurre il carico del server.
Ti consiglio di usare il firewall di CloudFlare e/o di configurarne uno nel tuo web server, come ad esempio con UFW su Ubuntu.
Disattiva l’indicizzazione e la navigazione nelle directory
A volte i webmaster si dimenticano di disabilitare la navigazione nelle directory. La navigazione nelle directory può essere utilizzata dagli hacker per scoprire se sono presenti file con vulnerabilità note, in modo che possano trarre vantaggio da questi file per ottenere l’accesso alla macchina o al sito web.
La navigazione nelle directory può essere utilizzata anche da altre persone per esaminare i tuoi file, copiare immagini, scoprire la struttura della tua directory e altre informazioni. Questo è il motivo per cui si consiglia di disattivare l’indicizzazione e la navigazione nelle directory.
per disabilitare la navigazione delle directory devi connetterti al tuo sito web utilizzando FTP o il file manager di cPanel. Quindi, individua il file .htaccess, se usi Apache, nella directory principale del tuo sito web.
Dopodiché, devi aggiungere la seguente riga alla fine del file .htaccess:
Options -Indexes
Non dimenticare di salvare e caricare nuovamente il file .htaccess sul tuo sito.
Se invece usi Nginx come web server, devi modificare il file nginx.com come segue (sostituisci
#Disable nginx directory listing
server{
location /cartella{
autoindex off;
}
}
È possibile aggiungere la riga autoindex off all’interno di qualsiasi sezione di location. Per disabilitare l’elenco delle directory in tutto il sito Web, aggiungi il parametro autoindex alla posizione principale (“/”). È possibile specificare posizioni specifiche per disabilitarlo in modo selettivo. Per abilitare l’elenco delle directory, utilizzare l’opzione autoindex on nel file.
Disabilita XML-RPC in WordPress
XML-RPC era abilitato per impostazione predefinita in WordPress 3.5 perché aiuta a connettere il tuo sito WordPress con app web e mobili.
A causa della sua natura potente, XML-RPC può amplificare in modo significativo gli attacchi di forza bruta.
Ad esempio, tradizionalmente se un hacker volesse provare 500 password diverse sul tuo sito web, dovrebbe effettuare 500 tentativi di accesso separati che verranno rilevati e bloccati dal plug-in di blocco dell’accesso. Ma con XML-RPC, un hacker può utilizzare la funzione system.multicall per provare migliaia di password con diciamo 20 o 50 richieste.
Questo è il motivo per cui se non utilizzi XML-RPC, ti consiglio di disabilitarlo.
Per disabilitare XML-RPC in WordPress su web server Apache, apri il file di configurazione:
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>
Con Nginx invece devi editare il server block come segue:
server {
...
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
return 444;
}
}
Se stai utilizzando un firewall a livello applicativo, puoi usarlo per proteggerti da chiamate al servizio XML RPC.
Esegui il log-out automatico degli utenti inattivi in WordPress
Gli utenti che hanno effettuato l’accesso a volte possono allontanarsi dallo schermo e questo rappresenta un rischio per la sicurezza. Qualcuno può dirottare la propria sessione, modificare le password o apportare modifiche al proprio account.
Questo è il motivo per cui molti siti bancari e finanziari disconnettono automaticamente un utente inattivo. Puoi implementare funzionalità simili anche sul tuo sito WordPress.
Dovrai installare e attivare il plug-in Inactive Logout. Dopo l’attivazione, visitare la pagina Impostazioni > Inactive Logout per configurare le impostazioni del plug-in.
Basta impostare la durata e aggiungere un messaggio di disconnessione. Non dimenticare di fare clic sul pulsante Salva modifiche per memorizzare le tue impostazioni.
Aggiungi domande di sicurezza alla schermata di accesso di WordPress
Una soluzione tanto semplice quanto efficace per proteggere i login da tentativi automatici è aggiungere una domanda di sicurezza nella schermata di accesso.
L’aggiunta di una domanda di sicurezza alla schermata di accesso di WordPress rende ancora più difficile per qualcuno ottenere un accesso non autorizzato.
Puoi aggiungere domande di sicurezza installando il plugin WP Security Questions. Dopo l’attivazione, è necessario visitare la pagina Impostazioni > Security Questions per configurare le impostazioni del plug-in.
Scansiona WordPress per malware e vulnerabilità
Scansiona il sito web alla ricerca di malware è qualcosa che dovresti fare almeno su base mensile, oppure automatizzare.
Se è installato un buon plug-in per la sicurezza di WordPress, tale plug-in controllerà regolarmente la presenza di malware e segni di violazioni della sicurezza.
Tuttavia, se noti un improvviso calo del traffico del sito web o del posizionamento, potresti voler eseguire manualmente una scansione. Puoi utilizzare il tuo plug-in di sicurezza di WordPress o uno di questi malware e scanner di sicurezza. I più noti sono:
- Sucuri SiteCheck
- IsItWP Security Scanner
- Google Safe Browsing
- WPScans
- ScanWP
- WordPress Security Scan
- wprecon
- Quttera
- Web Inspector
- WordPress Vulnerability Scanner
- UpGuard Cloud Scanner
- urlquery URL Scanner
- VirusTotal
- Norton Safe Web
L’esecuzione di queste scansioni online è abbastanza semplice, devi solo inserire gli URL del tuo sito web ei loro crawler passano attraverso il tuo sito web per cercare malware noto e codice dannoso.
Ora tieni presente che la maggior parte degli scanner di sicurezza di WordPress può semplicemente scansionare il tuo sito web. Non possono rimuovere il malware o pulire un sito WordPress compromesso.
Questo ci porta direttamente alla sezione successiva…
Correzione di un sito WordPress compromesso
Molti utenti di WordPress non si rendono conto dell’importanza dei backup e della sicurezza del sito web finché il loro sito web non viene violato.
La pulizia di un sito WordPress può essere molto difficile e richiede tempo. Il primo consiglio sarebbe quello di lasciare che un professionista se ne occupi. Se non sai cosa stai facendo è meglio se eviti qualsivoglia intervento.
Gli hacker installano backdoor e se queste non vengono riparate correttamente, è probabile che il tuo sito web venga nuovamente violato.
Consentire ad un professionista oppure ad una società di sicurezza professionale come Sucuri di riparare il tuo sito web garantirà che il tuo sito sia di nuovo sicuro da usare. Un intervento svolto da persone competenti ti proteggerà anche da eventuali attacchi futuri.
Blocca tutti gli hotlink
Supponiamo che tu abbia individuato un’immagine online e desideri condividerla sul tuo sito web. Prima di tutto, hai bisogno dell’autorizzazione o di pagare per quell’immagine, altrimenti ci sono buone probabilità che sia illegale farlo. Ma se ottieni l’autorizzazione, potresti estrarre direttamente l’URL dell’immagine e utilizzarlo per inserire la foto nel tuo post. Il problema principale qui è che l’immagine viene mostrata sul tuo sito, ma è ospitata sul server di un altro sito.
Da questo punto di vista, non hai alcun controllo sul fatto che la foto rimanga o meno sul server. Ma è anche importante rendersi conto che le persone potrebbero farlo sul tuo sito web.
Facciamo un esempio. Sul tuo sito web hai delle belle immagini che hai realizzato, sono originali e le pagine web che le mostrano ricevono buon traffico da Google Immagini. Un giorno il traffico crolla. Cerchi le tue immagini su Google e le trovi utilizzate in altre pagine web, in un altro sito web, ma l’URL dell’immagine punta sempre al tuo server.
Se stai cercando di proteggere il tuo sito web WordPress, l’hotlinking è fondamentalmente un’altra persona che ruba la tua foto e la larghezza di banda del tuo server per mostrare l’immagine sul proprio sito web. Alla fine, vedrai velocità di caricamento più lente e magari più costi per l’utilizzo di maggiore banda.
Sebbene esistano alcune tecniche manuali per prevenire l’hotlinking, il metodo più semplice è trovare un plug-in di sicurezza WordPress per il lavoro. Ad esempio, il plug-in All in One WP Security and Firewall include strumenti integrati per bloccare tutti gli hotlink.
Conclusione
La sicurezza online è una delle parti cruciali di un sito web, WordPress o meno. Se non mantieni un alto livello di sicurezza gli hacker possono facilmente attaccare il tuo sito. Mantenere la sicurezza del tuo sito web non è difficile e può essere fatto senza spendere un centesimo. Alcune di queste soluzioni sono per utenti avanzati, ma se hai domande lascia un commento ppure richiedimi una consulenza
Come puoi vedere, ci sono molti modi per migliorare la sicurezza di WordPress. Utilizzare password intelligenti, mantenere aggiornati core e plug-in e scegliere un host WordPress gestito sicuro sono solo alcuni di quelli che manterranno il tuo sito WordPress attivo e funzionante in sicurezza.
Per molti di noi, il sito web rappresenta sia l’attività che il reddito, quindi è importante dedicare del tempo e implementare alcune delle migliori pratiche di sicurezza sopra menzionate, il prima possibile.
Hai qualche importante suggerimento sulla sicurezza di WordPress che mi sono perso? Se è così, non esitare a farmelo sapere di seguito nei commenti.
Commenti |2
Lascia un commentoBellissimo articolo, completo e ben strutturato!
Riguardo la password leggevo di recente un articolo nel quale si consigliava non tanto di usare caratteri non alfanumerici, ma invece di comporre una frase di media lunghezza: questo non solo rende la password molto più forte, ma anche memoralizzabile; ecco l’articolo https://www.howtogeek.com/195430/how-to-create-a-strong-password-and-remember-it/
Condividi questa pratica?
Ciao Marco, è una questione di tempo necessario al brute force.
Per un hacker incrociare milioni di combinazioni con solo lettere “normali” e trovare la soluzione è una cosa.
Incrociare maiuscole, minuscole, numeri e simboli e trovare la corretta password è tutt’altra cosa, praticamente impossibile in un arco di tempo ragionevole.
I caratteri speciali, numeri e maiuscole si usano per rendere sempre più lenta e difficile la scoperta della password da dizionari di brute force.
Ad esempio, se hai una password estremamente semplice e comune lunga sette caratteri (“abcdefg”), un professionista potrebbe decifrarla in una frazione di millisecondo. Aggiungi solo un altro carattere (“abcdefgh”) e il tempo aumenta a cinque ore. Le password di nove caratteri richiedono cinque giorni per essere interrotte, le parole di 10 caratteri richiedono quattro mesi e le password di 11 caratteri richiedono dieci anni. Crea fino a 12 caratteri e stai guardando 200 anni di sicurezza. Aggiungi numeri, maiuscole e simboli e sei quasi al sicuro :)
Nel mio caso evito frasi, sono le prime cose che vengono testate.