Sicurezza di WordPress, quello che dovresti sapere in 9 punti Suggerimenti, considerazioni ed idee per difendersi dagli attacchi informatici sul proprio sito

<span class="entry-title-primary">Sicurezza di WordPress, quello che dovresti sapere in 9 punti</span> <span class="entry-subtitle">Suggerimenti, considerazioni ed idee per difendersi dagli attacchi informatici sul proprio sito</span>

Come possiamo migliorare la sicurezza di WordPress? La cosa migliore sarebbe quella di delegare ad un esperto questo arduo compito, per quanto sia possibile quantomeno effettuare alcune operazioni essenziali in modo autonomo ed installando al limite qualche plugin. Vediamo subito, quindi, di che si tratta.

La scelta della password (e della username)

La prima regola, aurea, da seguire, è quella legata alla scelta della password di accesso al sito, in particolare quella di amministratore. Esiste una classe di attacchi informatici che viene effettuata in continuazione, e che va sotto il nome di attacchi brute force: come suggerito dal nome stesso, si tratta di script malevoli che tentano di combinare le username e le password più comuni o banali (ad esempio “admin” “admin”, oppure “admin” “12345”), ed avranno così una certa probabilità di riuscire ad accedere al nostro sito. A meno che non siano attivi meccanismi di protezione ad hoc, in certi casi neanche sapremo che il nostro sito è stato attaccato per cui potrebbero rubarci le credenziali di accesso senza che neanche ce ne accorgiamo. Non è agevole, ad oggi, proteggersi dagli attacchi brute force neanche per gli hosting, visto che questi attacchi ad esempio usano indirizzi IP variabili e molto ampiamente distribuiti, per cui è opportuno che la scelta della username e della password rispetti dei requisiti minimali di sicurezza, ovvero:

  1. sia composta da almeno 8 caratteri;
  2. sia composta da lettere e numeri assieme;
  3. contenga almeno un carattere non alfabetico come ! oppure .;
  4. sia abbastanza difficile da indovinare e facile da ricordare.

Evitate anche di usare admin come username di amministratore, in quanto uno dei primi tentativi che vengono fatti sui siti, a campione, usa tipicamente questa username. I principali plugin per la sicurezza di WordPress offrono numerosi meccanismi di protezione e monitoraggio da questo genere di attacchi. Ricordatevi che non sono tutti uguali, nè equivalenti: la maggioranza di essi introducono delle “regole” che rendono la vita più difficile agli attaccanti (che chiamiamo impropriamente hacker, in molti casi), ovvero – ad esempio – gli impediscono di visualizzare il contenuto delle cartelle, ma nessuno di questi è realmente sicuro al 100%. Il rischio di vedersi sottrarre le credenziali di accesso al proprio sito è accentuato da altri fattori esterni, molto spesso.

Nel caso in cui abbiate subito un attacco del genere, l’attaccante potrà accedere al vostro sito, cancellare o modificare i contenuti e così via: in questi casi, è sempre opportuno reinstallare una copia fresca di WordPress, e rigenerare tutte le password sperando di disporre di un backup recente del sito salvato a parte.

Per migliorare la sicurezza è anche un’ottima cosa cambiare periodicamente la password di accesso: si è soliti suggerire, in questi casi, di inserire password complesse (con simboli non alfabetici e piuttosto lunghe, ad esempio babba6538!^h piuttosto che pippo), senza considerare che questo tipo di password sono difficili da gestire e ricordare per l’utente meno esperto. Come fare allora? Non siamo tutti nerd, in effetti (e per fortuna!), per cui una buona regola per generare password sicure è ad esempio costruirle con 3 o 4 parole di fila poco intuitive e che ricordiamo facilmente / non siano ovvie: quindi una buona password per il vostro sito si può generare da qualsiasi ragionamento o associazione di idee non ovvia. Anche matematicamente, del resto, risultano essere password più difficili da scoprire di quelle “caotiche”: c’è una vignetta di xkcd che ne parla, vedi terzo punto.

Cambiare periodicamente le password è importante così come evitare di usare sempre la stessa password per diversi siti: nel caso in cui una password sia associata al vostro indirizzo email su un altro servizio, ad esempio, sarete comunque scoperti e passibili di furto di informazioni. Conviene sempre inserire delle variazioni sulle proprie password, dunque, ed evitare di riutilizzarle in gruppo o, quantomeno, modificarle periodicamente. Con il furto di credenziali verificatosi qualche tempo fa è successo proprio questo, e una volta che le password sono svelate in massa su un servizio diverso dal nostro sito, non c’entra neanche più nulla che siano complicate o meno. Motivo per cui è essenziale sia cambiarle spesso, e non “riciclarle” mai altrove. Molta della sicurezza di WordPress passa da qui, ma non è tutto: numerosi attacchi informatici avvengono mediante privilege escalation o, se preferite, senza che l’utente debba conoscere la password del sito.

WordPress e sicurezza informatica, un binomio “open”

WordPress è un CMS open source, e come tale è soggetto sia a miglioramenti che a leak (ovvero “rivelazioni” di falle informatiche) pubbliche: questo è molto utile perchè più di uno sviluppatore possa contribuire alla qualità del codice, cosa che un codice chiuso non permetterebbe, se non dietro politiche aziendali specifiche- che spesso tendono ad occultare i difetti. Pregi e difetti di WP sono quindi alla luce del sole, man mano che vengono scoperti, riparati ed analizzati dalla community. Su WordPress si parla molto di sicurezza sia perchè è giusto che sia così, sia perchè è un CMS talmente diffuso ed utilizzato che sarebbe sinceramente da irresponsabili non farlo.

In genere, la scoperta di falle informatiche passa per l’utilizzo di software avanzati di analisi come WPscan: non voglio dire che ognuno debba installarselo (anche perchè non è un prodotto alla portata di chiunque, e richiede tempo e conoscenze specialistiche per un uso corretto), ma bisogna certamente sapere che nuove falle di WordPress vengono scoperte in continuazione. Quello che è sicuro oggi, in altri termini, potrebbe smettere di esserlo domani.

4919659112_70f8836dfa_wordpressPiù passa il tempo più WP diventa “immune”, ma alla fine dei conti tanto dipende da come lo configuriamo, e dalle configurazioni dell’hosting su cui si trova. Ogni nuova versione introduce miglioramenti di velocità, qualità del codice e sicurezza: per esempio, la versione 4.7.1 ha risolto alcuni problemi specifici di sicurezza del nostro sito, che permettevano ad un utente esterno di fare potenziali danni anche irreversibili alle nostre pagine.

Gli attacchi DoS (Denial of Service)

Gli attacchi su larga scala ai siti in WordPress sono numerosissimi, e quasi sempre finalizzati al DoS (Denial of Service, o saturazione delle risorse come RAM e CPU): in pratica questi script “sparano nel mucchio” su vari indirizzi IP, e qui purtroppo è materia specialistica. C’è poco da fare dal punto di vista di “meno esperti”, insomma: sono gli hosting che si tutelano (o dovrebbero farlo), in questi casi, mediante firewall e protezioni varie, e dal nostro punto di vista non possiamo fare altre che non fare mai troppo affidamenti sui dati in remoto e tenere sempre a portata di mano un backup recente del nostro sito. Le soluzioni low cost tendono, nella mia esperienza (anche se non sempre) a trascurare di più le misure di sicurezza più basilari.

Tutti i siti sono soggetti a DoS (a volte anche in versione su larga scala, DDoS), e non c’è ragione per credere che “tanto al mio sito non succederà mai“.

La sicurezza del tuo WordPress… sei tu!

i want you photo

Come ho scritto anche su Webhouse (Cinque approcci errati alle personalizzazioni WP), molta delle sicurezza del sito dipende da noi: basti pensare che uno dei modi più comuni per compromettere la sicurezza del sito in WP è modificare il codice dei plugin. Vedo che moltissimi lo fanno lo stesso, ma questo secondo me denota una superficialità davvero imperdonabile. Non esiste un modo safe per modificare plugin di WordPress, si tratta quindi di una modifica “brutale” al vostro sito che, al successivo aggiornamento, andrà persa – WP non è pensato per quello.

Le personalizzazioni vanno semmai introdotte sempre mediante theme child o, al limite, mediante ulteriori plugin sostitutivi, ma mai modificando il codice degli esistenti: se ci fosse una falla di sicurezza scoperta in seguito, infatti, non potreste aggiornare più il plugin (salvo perdere le modifiche) ed il vostro sito rimarrebbe scoperto per sempre. Attenzione quindi ai theme che usiamo, ai plugin installati (quelli a pagamento sono ugualmente soggetti a problemi di sicurezza), ed ai permessi CHMOD (vedi come impostare i permessi CHMOD di WordPress e come impostare il chown).

Rimuovere o rinominare alcune utenze

Ci sono anche degli accorgimenti ulteriori per migliorare la sicurezza di WP: ad esempio, è buona norma abbassare i privilegi dell’utente admin o rimuoverlo del tutto, perchè se avete scelto una password banale per l’amministratore potreste essere soggetti ad attacchi “a dizionario” (per tentativi automatizzati, in pratica), ed il rischio è che l’attaccante possa prendere il controllo del vostro sito.Se cambiate il ruolo di admin in sottoscrittore (si fa da wp-admin/users.php), di fatto, ridurrete di molto il rischio di abusi futuri, anche se – almeno in teoria – il nome utente amministratore resta comunque rilevabile con altre tecniche. Non illudetevi di diventare degli esperti di sicurezza informatica solo per questo, quindi.

Se siamo vittime di un certo tipo di SQL poisoning, ad esempio, queste contromisure diventano ancora una volta del tutto irrilevanti. Non voglio fare terrorismo psicologico su questi argomenti, ma è necessario sapere che tutte le contromisure che prendiamo servono a ridurre la possibilità di defacciamento e furto di dati, ma non potranno mai eliminarli del tutto. Questi accorgimenti servono più che altro a personalizzare il sito e renderlo meno attaccabile, un po’ come dire che le vitamine C aiutano l’organismo, certo, ma non ci immunizzano dai rischi influenza.

Plugin, maledetti plugin…

Nella mia esperienza sono i plugin a dare la maggioranza dei problemi di sicurezza: basti pensare alle falle di cui ho parlato in questi mesi sul blog, come quella di Slider Revolution Plugin, Video Gallery WordPress, Theme My Login, WordPress Pods e la lista potrebbe proseguire per molte altre righe. Certo, si tratta di falle corrette nel frattempo, ma su diversi siti in WordPress abbandonati o poco aggiornati potrebbero essere sfruttabili per molti anni. Da un punto di vista statistico, in effetti, basta installare meno plugin possibile per ridurre un (bel) po’ le possibilità di un attacco, e ricorrere alle sane (anche se più faticose) personalizzazioni per ottenere l’effetto desiderato. Se un plugin sono aggiornati spesso e seguiti dalla community problemi non dovreste averne, e nella maggioranza dei casi basta installare quelli della lista dei migliori plugin di WP per non avere problemi. Ad ogni modo è bene sapere che per togliere di mezzo un plugin difettoso o problematico per la sicurezza basta semplicemente cancellarlo dalla cartella /wp-content/plugins via FTP o meglio ancora SSH.

Sicurezza del database, e file di configurazione wp-config.php

Difendersi da XSS (introduzione di codice arbitrario dall’esterno) e SQL poisoning (introduzione di query in lettura/scrittura sul nostro sito) mediante scalata di privilegi (cioè senza conoscere le password di accesso) può essere molto complesso e fuori dalla nostra portata: WordPress cura molto questo aspetto versione dopo versione, ma non c’è un modo per preservarsi dal rischio al 100%. Una delle tecniche principali è quella di cambiare il suffisso delle tabelle del DB (di norma è wp_) in qualcosa di casuale: questo perchè molti attacchi danno per scontato che esista quel prefisso, e cambiarlo ci mette al sicuro da molti pericoli. Attenzione, pero’, che bisogna aggiornare anche il wp-config.php di conseguenza, altrimenti WP non funzionerà più.

VI suggerisco inoltre di leggere l’articolo sui settaggi base e sui settaggi avanzati del file wp-config.php, che descrive nel dettaglio come potenziare ancora di più la sicurezza delle sessioni e dei cookie, per limitare abusi in tal senso.

Cambiare i path di accesso al sito

Inoltre può essere opportuno modificare il path wp-admin, in modo da evitare attacchi manuali o automatizzati al vostro form di login, anche se in questo caso dovrete ricordare il nuovo path di accesso. Per farlo si agisce sulla variabile di sistema WP_ADMIN_DIR come spiegato nell’articolo: si può fare anche modificando il file .htaccess ma, in questo caso, è necessario controllare i permessi CHMOD ed è meglio non farlo da qui, in generale, dato che il file potrebbe essere leggibile dall’esterno senza login.

Una lista di misure di sicurezza ulteriori potrebbe essere la seguente:

  • attivare SSL sul login di WordPress (serve un certificato software a pagamento per farlo);
  • attivare misure di ban dopo un certo numero di tentativi di login;
  • cancellare i file che contengono informazioni sulla versione corrente (molti plugin per la sicurezza permettono di farlo);
  • assicurarsi di avere credenziali di accesso al PHPMyAdmin e all’account FTP robuste (password difficili da indovinare);
  • disabilitare le modifiche al codice dei plugin e del theme via interfaccia amministrativa (basta la direttiva xxx nel file wp-config.php, e serve anche ad evitare danni involontari da parte degli “utonti” poco esperti)
  • evitare di divulgare credenziali di accesso al sito via email, o almeno cambiarle periodicamente;
  • tenere attivo un log sul sito per verificare e registrare eventuali accessi illeciti o ripetuti (serve un sistemista per verificarlo a dovere).

Le misure di fatto poco o per nulla utili sono le seguenti:

  • inibire l’accesso ai file PHP sensibili (come ad esempio wp-config.php) via direttive apposite sul file htaccess, perchè comunque per leggere il contenuto del file in questione serve una connessione FTP;
  • pensare “tanto a me figurati se succede“.

Installare SSL su WordPress

Sembra che il 2017 sia l’anno di HTTPS importato in massa sui nostri siti in WordPress: questo può interessare sia le pagine singole che quelle di login, per cui si tratta di acquistare un certificato SSL ed installarlo sul proprio sito. Questo impedirà, o comunque limiterà, i casi in cui le nostre credenziali di accesso vengano spiate da terzi, e farà in modo che se i nostri utenti si loggano sul sito possano farlo con un minimo di certezze e sicurezza in più.

Se vi interessa sapere come fare, c’è un tutorial su come installare HTTPS su WordPress da me pubblicato di recente.


Ti piace questo articolo?

1 voto

Su Trovalost.it puntiamo sulla qualità dei contenuti da quando siamo nati: la tua sincera valutazione può aiutarci a migliorare ogni giorno.

Sicurezza di WordPress, quello che dovresti sapere in 9 punti

Come possiamo migliorare la sicurezza di WordPress? La cosa migliore …
Votato 10 / 10, campione di 1 utenti

Ti potrebbero interessare (Guide WordPress):

Cerca altro nel sito

Clicca sul box, e scegli la sezione per vederne i contenuti.