Ovviamente, la sicurezza è un aspetto fondamentale per qualsiasi sito web. Che sia sviluppato a mano tramite codice o con un sistema come WordPress, non cambia nulla: qualunque sito può essere attaccato. Anzi una volta un saggio disse: “esistono due tipi di siti, quelli che sono stati attaccati e quelli che lo saranno”.
I siti realizzati con WordPress non fanno eccezione.

Piccolo disclaimer: la sicurezza informatica è così complessa e articolata che il fatto di proteggere un sito WordPress è solo una parte del lavoro da fare. Hosting, gestione delle password, conoscenza dei fattori di rischio, responsabilità, privacy… e altri elementi sono basilari affinché le pratiche di messa in sicurezza di un sito siano veramente efficaci.

Un altro dettaglio importante è ricordare che un sito “bucato” non è sempre riconoscibile. Spesso ce ne accorgiamo solo quando il danno è evidente (quindi alcuni contenuti sono diversi dal solito), o ancora peggio quando il sito diventa irraggiungibile. Ma a quel punto è tardi… (a fine articolo ti elenco alcuni sintomi di un sito affetto da virus o hackerato)

Vediamo le pratiche più semplici, comuni ed efficaci per proteggere un sito WordPress in pochi minuti. Iniziamo!

sicurezza sito WordPress

Procedure per mettere in sicurezza un sito WordPress

  • Verifica dell’integrità dei plugin e dei temi prima dell’installazione
  • Aggiornamento costante del software
  • Verifica della compatibilità dei plugin con la tua versione di WordPress
  • Uso di plugin di sicurezza
  • Autenticazione a più fattori
  • Cambiare il nome utente e la password di default
  • Non impostare admin come nome utente
  • Limitare gli accessi a utenti con ip e ruoli definiti
  • Eseguire backup regolari
  • Certificato SSL
  • Monitoraggio e revisione dei log
  • Disabilitazione dell’editor di file
  • Configurazione del firewall
  • Blocco di indirizzi IP sospetti
  • Protezione del file wp-config.php
  • Disabilitazione del debug display
  • Utilizzo di una rete di distribuzione dei contenuti
  • Miglioramento della sicurezza del database
  • Rinominare la tabella del database di WordPress
  • Ottimizzazione del file .htaccess
  • Rimozione della versione di WordPress dal tuo sito
  • Limitazione dei permessi utente
  • Verifica dei permessi dei file
  • Impostazione di un sistema di allarme per attività sospette
  • Monitoraggio dell’integrità dei file
  • Utilizzo di password sicure per il database
  • Disabilitazione dei pingback e dei trackback
  • Configurazione di un Web Application Firewall
  • Sorveglianza delle metriche di sicurezza
  • Verifica regolare delle vulnerabilità
  • Blocco dell’accesso diretto ai file PHP
  • Utilizzo di HTTPS per l’accesso al pannello di amministrazione
  • Mantenimento di un registro delle attività degli utenti
  • Controllo dei contenuti caricati
  • Disabilitazione delle funzionalità non necessarie
  • Limitazione della durata delle sessioni di accesso
  • Uso di captcha per i form
  • Implementazione di politiche di sicurezza dei contenuti
  • Implementazione di un sistema di rilevamento delle intrusioni
  • Disabilitazione delle risposte di errore dettagliate
  • Uso di un servizio di protezione DDoS
  • Impostazione di un indirizzo email per le notifiche di sicurezza
  • Uso di chiavi di autenticazione uniche
  • Attivazione di misure di protezione anti-spam
  • Revisione periodica delle impostazioni di sicurezza
  • Ottimizzazione delle impostazioni del server web
  • Rafforzamento della sicurezza delle API
  • Implementazione di restrizioni geografiche
  • Uso di un servizio di monitoraggio della reputazione online
  • Sicurezza delle e-mail associate all’account di amministrazione

Tra le pratiche utili a prevenire e curare i danni, ti segnalo tre voci utili:

  • Sicurezza a livello di hosting (assicurarsi che l’hosting sia efficiente, rapido ad intervenire, sia comunicativo, abbia a disposizione i backup, ecc.)
  • Implementazione di un piano di risposta agli incidenti di sicurezza (cosa fare quando un sito viene hackerato, come informare il cliente, quali sono le operazioni in ordine di priorità, come ripristinare un backup o cercare la falla, ecc)
  • Formazione sulla sicurezza per informarsi e informare (seguire uno o più corsi di formazione e di aggiornamento sulla sicurezza informatica ti permetterà di intervenire in maniera rapida in caso di attacco riuscito, ma soprattutto mettere al sicuro i tuoi progetti, prevenendo la maggior parte degli attacchi di basso livello)
  • Tenersi aggiornati sui prossimi rilasci e aggiornamenti per farsi trovare pronti in caso di update automatico di alcune parti del sito

Fatte le premesse, ecco le attività per mettere in sicurezza il tuo sito WordPress spiegate una per una, con parole semplici.

Verifica dell’integrità dei plugin e dei temi prima dell’installazione

Importanza della verifica
Prima di installare nuovi plugin o temi, assicurati che siano stati creati da sviluppatori affidabili e che abbiano buone recensioni. Questo ridurrà il rischio di incorporare software dannoso nel tuo sito, inclusi malware, vulnerabilità e potenziali backdoor che gli aggressori potrebbero sfruttare. È quindi essenziale accertarsi della provenienza e dell’affidabilità del codice che si sta per integrare nel proprio sito.

Metodologie per la verifica
Per verificare l’integrità dei plugin e dei temi, è possibile utilizzare diversi metodi. Innanzitutto, è consigliabile scaricare tali componenti solo da fonti affidabili, come il repository ufficiale di WordPress o siti web di aziende e sviluppatori di fiducia. Inoltre alcuni strumenti online permettono di effettuare controlli di sicurezza sul codice, analizzandolo alla ricerca di codice malevolo o vulnerabilità note. Leggere le recensioni e controllare la frequenza degli aggiornamenti può dare una buona indicazione della qualità e dell’affidabilità del plugin o del tema. L’ultima data di aggiornamento è uno dei fattori più importanti per valutare un progetto attivo e seguito.

Esempio
Supponiamo che tu voglia installare un nuovo form di contatto sul tuo sito WordPress. Invece di cercare a caso su Internet, dovresti andare direttamente al repository ufficiale di WordPress e utilizzare la funzione di ricerca digitando “form”. Una volta trovati plugin che sembrano soddisfare le tue esigenze, controlla il numero di installazioni, la valutazione media, la compatibilità con l’ultima versione di WordPress e quando sono stati aggiornati l’ultima volta. Questi fattori possono aiutarti a determinare se il plugin è affidabile o meno. Se tutto sembra a posto, puoi procedere con l’installazione.

Aggiornamento costante del software

Mantenere WordPress e tutti i plugin aggiornati è cruciale per la sicurezza. Gli aggiornamenti contengono spesso correzioni per vulnerabilità note. WordPress rilascia regolarmente aggiornamenti che includono correzioni di bug, miglioramenti delle prestazioni e, più importantemente, patch di sicurezza che chiudono eventuali vulnerabilità. Avere un sito WordPress obsoleto significa esporre il proprio sistema a rischi potenziali che potrebbero essere sfruttati da malintenzionati.

Oltre all’aggiornamento del core di WordPress, è altrettanto cruciale mantenere aggiornati tutti i plugin e i temi installati. Spesso, le vulnerabilità possono derivare da plugin e temi non aggiornati che offrono un facile accesso a potenziali aggressori. Pertanto, è consigliabile controllare regolarmente la dashboard di WordPress e installare tutti gli aggiornamenti disponibili. Un esempio pragmatico potrebbe essere impostare un promemoria settimanale per accedere al pannello di amministrazione e verificare la disponibilità di nuovi aggiornamenti, affinché non sfuggano importanti migliorie o correzioni.

Ricorda: anche se gli aggiornamenti sono importanti, potrebbero comunque causare problemi di incompatibilità e rendere il sito irraggiungibile. Fai sempre dei test, dei backup e leggi le compatibilità prima di eseguire.

Verifica della compatibilità dei plugin con la tua versione di WordPress

Prima di installare un nuovo plugin, verifica che sia compatibile con la versione di WordPress che stai utilizzando. La mancata compatibilità potrebbe esporre il sito a rischi di sicurezza. I plugin sono fondamentali per estendere le funzionalità di WordPress, ma se non sono compatibili con la tua versione, possono causare problemi che vanno dal malfunzionamento di alcune funzionalità fino a problemi di sicurezza gravi. Ogni plugin sul repository ufficiale di WordPress mostra le informazioni sulla sua compatibilità con le diverse versioni del CMS. Ignorare queste informazioni può portare a vulnerabilità che potrebbero essere sfruttate per attacchi.

Nel processo di selezione di un plugin, è bene leggere le recensioni, controllare il rating e, soprattutto, verificare la data dell’ultimo aggiornamento e le versioni di WordPress con cui è compatibile. Se un plugin non è stato aggiornato da molto tempo, potrebbe essere un segnale che il progetto è stato abbandonato e che potrebbe presentare problemi di sicurezza o di compatibilità. Un esempio pratico di verifica potrebbe essere la consultazione dei forum di supporto associati al plugin, dove utenti e sviluppatori discutono potenziali problemi e soluzioni. Essere proattivi in questa fase può risparmiare molto tempo e sforzi in futuro, prevenendo problemi prima che si manifestino.

Uso di plugin di sicurezza

Installa plugin specifici per la sicurezza che monitorano il tuo sito in tempo reale e offrono funzioni come firewall e scansione malware. Ci tengo a sottolineare che non sono una soluzione definitiva, ma permettono con pochi clic (e a volte gratuitamente) di sistemare una serie di vulnerabilità basilari che i neofiti sotttovalutano e che sono comunque risolvibili con pochi clic.

L’uso di plugin di sicurezza può servire come un primo livello di difesa per il tuo sito WordPress, offrendo una serie di funzionalità che vanno dalla scansione di malware alla protezione contro attacchi di forza bruta. Questi plugin possono monitorare il traffico in tempo reale, bloccare indirizzi IP sospetti e fornire rapporti dettagliati su potenziali minacce. È essenziale scegliere un plugin di sicurezza che sia ben noto e altamente valutato nella community di WordPress. Il beneficio di utilizzare un plugin rispettato è che è più probabile che venga mantenuto attivamente, con aggiornamenti frequenti che risolvono nuove vulnerabilità man mano che vengono scoperte.

Oltre alla selezione di un plugin affidabile, è importante configurarlo correttamente per ottenere la massima efficacia. Molte persone installano plugin di sicurezza ma poi non li configurano adeguatamente, il che può lasciare delle falle. Prenditi il tempo per leggere la documentazione e, se possibile, consultare le guide o i tutorial che mostrano come sfruttare al meglio le funzioni di sicurezza offerte. Ad esempio, alcuni plugin di sicurezza offrono la possibilità di configurare l’autenticazione a due fattori, una funzionalità che aggiunge un ulteriore livello di sicurezza oltre alla semplice password. Utilizzando questa funzione, anche se un malintenzionato dovesse scoprire la tua password, avrebbe ancora bisogno di un secondo codice per accedere al tuo sito. In questo modo, un plugin di sicurezza ben configurato può servire come un robusto baluardo contro diverse tipologie di attacchi.

Autenticazione a più fattori

L’autenticazione a più fattori (o 2FA, dall’inglese Two-Factor Authentication) è un meccanismo di sicurezza che richiede due o più livelli di verifica prima di concedere l’accesso a un account o a un sistema. L’uso della 2FA aggiunge un ulteriore strato di protezione, rendendo molto più difficile per i malintenzionati accedere al tuo sito WordPress anche se riescono a scoprire la tua password.

Come funziona 2FA?
Questo metodo va ben oltre la semplice inserzione di una password, richiedendo una seconda forma di identificazione che solo l’utente legittimo dovrebbe essere in grado di fornire. Ad esempio, oltre alla password, potrebbe essere richiesto un codice generato da un’app sul proprio smartphone. Una volta attivata, ogni volta che si tenta di accedere al pannello di amministrazione, sarà necessario fornire il secondo fattore di autenticazione, che potrebbe essere un codice temporaneo inviato via SMS o generato da un’app di autenticazione (come Google Authenticator ad esempio). Questo meccanismo può sembrare un po’ scomodo, ma il livello di sicurezza che aggiunge è fondamentale per proteggere il sito da accessi non autorizzati.

Esempio pratico
Immagina di ricevere un SMS con un codice di verifica mentre non stai tentando di accedere al tuo sito. Questo sarebbe un segnale immediato che qualcuno sta cercando di accedere al tuo account e ti darebbe la possibilità di prendere misure preventive prima che si verifichino danni. Implementare l’autenticazione a più fattori nel tuo sito WordPress è relativamente semplice, soprattutto con l’aiuto di plugin specifici che guidano l’utente attraverso il processo di configurazione.

Cambiare il nome utente e la password di default

Cambiare il nome utente e la password di default è uno dei primi passi da compiere quando si configura un sito WordPress. La verità? presi dall’euforia che l’installazione sia andata a buon fine, nessuno lo fa, e la password banale scelta per l’installazione rimane quella per mesi o anni…

Molte installazioni di WordPress usano ‘admin’ come nome utente di default, e talvolta anche la password è debolmente protetta. Queste scelte rendono più semplice per i malintenzionati indovinare le tue credenziali e accedere al tuo sito. Modificando il nome utente e optando per una password forte, diversificata e unica, si alza significativamente la barriera contro potenziali attacchi.

Non basta semplicemente scegliere una nuova password; è anche consigliabile cambiare il nome utente in qualcosa di unico e non facilmente indovinabile. In WordPress, il nome utente non può essere cambiato direttamente dal pannello di amministrazione una volta creato l’account, ma la cosa migliore è crearne uno nuovo con privilegi di amministratore e cancellare quello vecchio. In alternativa, è possibile modificare il nome utente attraverso l’accesso al database del sito web, anche se questa operazione è più delicata e rischiosa se non si sa cosa si sta facendo. Per quanto riguarda la password, l’ideale è una combinazione di lettere maiuscole e minuscole, numeri e simboli speciali, preferibilmente di lunghezza superiore a 12 caratteri.

Esempio: invece di utilizzare “admin” come nome utente, potresti scegliere un soprannome o una combinazione di parole e numeri che solo tu possa riconoscere. Per la password, invece di usare qualcosa come “password123”, opta per una frase segreta o una combinazione complessa come “J#4!q8Lm^2R!” dove ci siano, senza un senso logico numeri, lettere minuscole e maiuscole e simboli. Almeno 13 caratteri è consigliato…

Non impostare admin come nome utente

Ne ho già parlato prima, quindi non mi dilungo. Semplicemente ricorda di non utilizzare “admin” come nome utente è una regola d’oro nel mondo della sicurezza WordPress. Questo perché “admin” è il primo nome utente che gli attaccanti proveranno quando cercheranno di accedere al tuo sito. Se sei uno dei molti che utilizzano questo nome utente di default, hai appena reso il lavoro degli hacker un po’ più facile. È come lasciare la chiave della tua casa sotto lo zerbino: tutti sanno che è lì. Quindi, se il tuo nome utente è “admin”, ti consiglio vivamente di cambiarlo il prima possibile.

Metodo facile
Come spiegato prima, basta creare un nuovo utente con un nome diverso e dare a questo nuovo utente i privilegi di amministratore. Dopo aver fatto ciò, accedi con il nuovo account e elimina il vecchio utente “admin”. Durante la cancellazione dell’utente admin, WordPress ti darà l’opzione di trasferire tutti i contenuti pubblicati da “admin” al nuovo utente, quindi non perderai nulla nel contenuto creato dal vecchio utente, anzi, i contenuti risulteranno scritti da quello nuovo.

Metodo tecnico
Un altro metodo, più tecnico, consiste nell’accedere al database MySQL di WordPress (ad esempio tramite phpmyadmin) e cambiare il nome utente direttamente da lì, ma questa operazione è rischiosa se non hai familiarità con il database. In entrambi i casi, l’obiettivo è lo stesso: rendere più difficile per gli attaccanti indovinare le tue credenziali di accesso.

Limitare gli accessi a utenti, IP, ruoli definiti

Limitare gli accessi al tuo sito WordPress a specifici utenti, indirizzi IP o ruoli è un ottimo modo per aggiungere un ulteriore livello di sicurezza. Questo riduce il numero di persone che possono accedere al backend del tuo sito, limitando così i potenziali rischi. Ad esempio, se gestisci un sito web aziendale, potresti voler consentire l’accesso solo da specifici indirizzi IP associati alla tua rete aziendale. In questo modo, anche se le credenziali di un dipendente finissero nelle mani sbagliate, l’accesso sarebbe comunque bloccato se proveniente da un indirizzo IP non autorizzato.

Esistono vari plugin WordPress che ti permettono di impostare regole di accesso in base all’indirizzo IP, al ruolo utente o ad altri criteri. Alcuni di questi plugin ti permettono di impostare regole complesse, come ad esempio consentire l’accesso agli amministratori solo da certi indirizzi IP, mentre gli autori possono accedere solo durante determinate ore del giorno. Un’altra opzione è quella di limitare l’accesso a determinate funzioni o pagine in base al ruolo utente. Ad esempio, potresti voler consentire ai contributor di accedere solo all’editor dei post, ma non alle impostazioni del tema o ai plugin. Le configurazioni sono infinite e possono essere personalizzate in base alle esigenze specifiche del tuo sito. Se sei abile con il codice, puoi anche aggiungere queste restrizioni manualmente al tuo file .htaccess o al file di configurazione del tuo server web. In ogni caso, l’obiettivo è sempre lo stesso: rendere il tuo sito WordPress il più inaccessibile possibile per chi non dovrebbe accedervi.

Eseguire backup regolari

Un backup è una copia di sicurezza dei dati, conservata in un luogo separato. Serve per ripristinare il sistema in caso di perdita di dati, guasti o altri problemi.

Eseguire backup regolari del tuo sito WordPress è come avere un’assicurazione sulla tua presenza online. In caso di guasti, attacchi hacker o errori umani, un backup completo del sito ti permette di ripristinare tutto alla normalità in modo relativamente semplice e veloce. Senza backup, potresti trovarti a dover ricostruire il tuo sito da zero, con il rischio di perdere dati importanti, contenuti e, soprattutto, la fiducia degli utenti e clienti che frequentano il tuo sito.

Gli strumenti per eseguire backup su WordPress sono numerosi e variano per complessità e costo. Esistono plugin dedicati, come UpdraftPlus o BackupBuddy, che automatizzano l’intero processo. Ti permettono di scegliere cosa esattamente vuoi eseguire nel backup (database, file, ecc.), con quale frequenza e dove desideri conservarlo (ad esempio, su un servizio cloud come Dropbox o Google Drive). In alternativa, se preferisci un controllo più manuale o hai esigenze specifiche, potresti optare per soluzioni più tecniche come i cron job sul server, utilizzando comandi Shell o script PHP personalizzati. Questo approccio è più laborioso e richiede una certa conoscenza tecnica, ma ti offre il massimo controllo sul processo di backup.

Backup manuale
Quello che consiglio sempre ai miei clienti e collaboratori è di fare anche dei backup manuali. Per eseguirlo bisogna fare una copia di TUTTI i file (via ftp) e esportare il database (in gergo fare un dump).

Un esempio pratico dell’importanza del backup potrebbe essere un aggiornamento del tema o dei plugin che va storto. Immagina di aver installato un aggiornamento che genera conflitti con altri elementi del tuo sito, rendendo alcune funzionalità inutilizzabili. Se hai un backup recente, puoi semplicemente ripristinare la versione precedente del tuo sito mentre risolvi il problema, minimizzando così i tempi di inattività e l’impatto negativo sulla tua attività. Nel mondo digitale, dove le cose possono cambiare in un attimo, avere una solida strategia di backup ti mette in una posizione di forza.

Certificato SSL

Installa un certificato SSL per criptare i dati che passano tra il tuo sito e gli utenti, aumentando la sicurezza e la fiducia.

Ma cos’è? Il certificato SSL (Secure Socket Layer) è una tecnologia di crittografia che garantisce la trasmissione sicura dei dati tra il server e il browser dell’utente. In sostanza, quando un sito web utilizza un certificato SSL, tutte le informazioni scambiate tra l’utente e il sito sono crittografate e, quindi, protette da possibili intrusioni esterne. Questo è particolarmente importante per i siti web che gestiscono dati sensibili come informazioni di pagamento, dati personali o password.

Molti browser moderni indicano visivamente la presenza di un certificato SSL attraverso un lucchetto accanto all’URL o il prefisso “https” anziché “http”. Se il tuo sito web gestisce dati sensibili o effettua transazioni online, l’installazione di un certificato SSL è praticamente obbligatoria, non solo per la sicurezza, ma anche per aumentare la fiducia dell’utente nel tuo sito. Per esempio, se hai un e-commerce, l’uso di un certificato SSL può rassicurare l’utente nel momento in cui deve inserire i dati della sua carta di credito.

Attenzione ai browser moderni che annunciano in maniera abbastanza evidente quando un sito è privo di certificato. Questo diventa un grosso spauracchio (legittimo) e l’utente abbandona facilmente. Esistono certificati anche gratuiti e quasi tutti i servizi di hosting lo integrano nel servizio base. Uno tra tutti è Let’s Encrypt.

Monitoraggio e revisione dei log

Controlla regolarmente i log del server e del sito per individuare qualsiasi attività sospetta o non autorizzata.
I log sono registri dettagliati di eventi e attività che si verificano su un sistema o un’applicazione, inclusa la tua installazione di WordPress. Essi possono includere dettagli su tentativi di accesso, modifiche ai file, attività degli utenti e molto altro. Questi registri possono essere utilizzati per identificare attività sospette o non autorizzate, che potrebbero essere indicative di un attacco o di una vulnerabilità del sistema.

Effettuare un controllo regolare dei log ti permette di individuare rapidamente eventuali anomalie e agire di conseguenza, prima che si trasformino in problemi più gravi. Ci sono vari plugin che possono assisterti in questo compito, fornendo interfacce user-friendly e notifiche in tempo reale per eventi specifici. Ad esempio, se noti numerosi tentativi falliti di accesso al tuo pannello di amministrazione da un indirizzo IP sconosciuto, potresti considerare di bloccare quell’IP per prevenire ulteriori tentativi malevoli.

Come aprire un file di log?
Un file d log è un semplice file di testo che puoi aprire con qualunque pc e un blocco note. Troverai una serie di righe con data, ora, evento, errore, pagina, e informazioni varie su quello che accade.

Dove sono memorizzati i file di log?
Di solito i log sono memorizzati nella stessa cartella del sito o in una parallela. Se accedi via FTP, quindi direttamente all’elenco dei file sul server e non alla gestione di WordPress, troverai quasi sicuramente una cartella www dove risiede il sito vero e proprio e una cartella log con i file di cui parlo. Alcune volte la cartella log è dentro la cartella www, ma non cambia nulla. Doppio clic e sei dentro.

Disabilitazione dell’editor di file

Disabilita l’editor di file in WordPress per prevenire modifiche non autorizzate ai file del tuo sito.

La disabilitazione dell’editor di file in WordPress è una misura di sicurezza proattiva che impedisce le modifiche dirette ai file del tema o dei plugin dal pannello di amministrazione. Anche se questa funzionalità può essere conveniente per apportare piccole modifiche, può anche essere un vettore di attacco se il tuo sito dovesse essere compromesso. Un malintenzionato con accesso all’editor di file potrebbe inserire codice malevolo, creando una backdoor o causando altri danni al sito.

Generalmente, la disabilitazione si effettua inserendo due righe di codice nel file wp-config.php :

define( ‘DISALLOW_FILE_EDIT’, true );
define( ‘DISALLOW_FILE_MODS’, true );

Questo blocca l’accesso all’editor da parte di chiunque, inclusi gli amministratori. È una precauzione che, anche se potrebbe sembrare eccessiva, aumenta significativamente la resilienza del tuo sito contro attacchi malevoli. Immagina, per esempio, che un collaboratore del tuo blog sia vittima di phishing e perda il controllo del proprio account: se l’editor di file è disabilitato, l’attaccante avrà una via in meno per compromettere il sito. Considera inoltre che le modifiche ai file di wordpress sono decisamente rare. Le poche volte che ti servirà potrai commentare questa riga, intervenire e togliere nuovamente il commento (si può fare tutto in pochi secondi via FTP).

Configurazione del firewall

Installa e configura un firewall per bloccare attacchi e traffico sospetto. Un firewall agisce come una sorta di barriera tra il tuo sito web e il traffico in entrata, filtrando richieste sospette e bloccando tentativi di attacco come SQL Injection, Cross-Site Scripting e bruteforce. Questa funzione è essenziale per impedire l’accesso non autorizzato ai dati e alle risorse del tuo sito.

Esistono diverse tipologie di firewall che possono essere configurate. I firewall a livello di applicazione sono plugin che si installano direttamente su WordPress e monitorano il traffico attraverso il CMS. I firewall a livello di rete, invece, sono posizionati tra il server del tuo sito e il traffico in entrata, filtrando le richieste prima che raggiungano il server su cui è ospitato il tuo sito. Entrambi i tipi di firewall hanno i loro pro e i loro contro, ma l’importante è scegliere una soluzione che si adatti alle esigenze specifiche del tuo sito. Ad esempio, un e-commerce con un alto volume di transazioni potrebbe beneficiare di un firewall a livello di rete per garantire una protezione ottimale.

Blocco di indirizzi IP sospetti

Il blocco di indirizzi IP sospetti è un’altra tattica di sicurezza critica per la protezione del tuo sito WordPress. Quando si identifica un indirizzo IP da cui provengono comportamenti sospetti, come tentativi di accesso falliti ripetuti o schemi di traffico inusuali, è possibile bloccare tale indirizzo IP per impedirgli di interagire ulteriormente con il sito. Questo è utile per prevenire una varietà di attacchi, che vanno dal bruteforce all’iniezione di codice SQL.

Ci sono diversi metodi per implementare il blocco degli IP sospetti. Uno dei modi più semplici è utilizzare un plugin di sicurezza di WordPress che offre questa funzionalità. Altri metodi includono la modifica del file .htaccess o l’uso delle impostazioni del firewall per inserire regole specifiche. Importante è anche monitorare costantemente gli accessi al sito attraverso i log, per identificare pattern di comportamento sospetti e aggiornare la lista dei blocchi di IP di conseguenza.

Ad esempio, se noti che un certo indirizzo IP sta tentando ripetutamente di accedere alla tua area di amministrazione WordPress senza successo, potrebbe essere prudente aggiungerlo alla lista degli IP bloccati per prevenire ulteriori tentativi dannosi.

Protezione del file wp-config.php

La protezione del file wp-config.php è fondamentale per la sicurezza di qualsiasi installazione WordPress. Questo file contiene informazioni sensibili come i dettagli del database e le chiavi di autenticazione uniche, rendendolo un obiettivo primario per gli hacker. Se compromesso, il file wp-config.php può fornire un accesso quasi illimitato a un malintenzionato. Pertanto, è cruciale adottare misure preventive per proteggerlo da accessi non autorizzati.

Una delle strategie più comuni per la protezione di wp-config.php è spostare il file al di fuori della directory radice del sito web, in modo che non sia direttamente accessibile attraverso il browser. Altre misure includono l’impostazione di permessi di file rigorosi e l’aggiunta di regole nel file .htaccess per negare l’accesso al file da tutti gli indirizzi IP tranne quelli autorizzati. È anche possibile utilizzare plugin di sicurezza di WordPress che offrono opzioni per proteggere il file wp-config.php. Per esempio, potresti usare un plugin che riscrive automaticamente le regole di .htaccess per proteggere il file o che crea una copia crittografata del wp-config.php, che è l’unica versione utilizzabile dal sistema. In ogni caso, è vitale monitorare regolarmente la sicurezza del file wp-config.php e apportare aggiornamenti alle misure di protezione come parte di una strategia di sicurezza globale.

Disabilitazione del debug display

Disabilita la visualizzazione degli errori di debug per evitare che informazioni sensibili possano essere visualizzate.

In una configurazione standard, WordPress può mostrare errori, avvisi e notifiche direttamente sulle pagine del sito, fornendo così dettagli che potrebbero essere utilizzati da un malintenzionato per scoprire vulnerabilità nel sistema. Il debug display è solitamente attivato per agevolare il processo di sviluppo e individuare rapidamente problemi nel codice, ma dovrebbe essere disattivato in un ambiente di produzione per evitare la divulgazione di informazioni sensibili.

Disabilitare il debug display è un passaggio semplice.
La disabilitazione del debug display si effettua modificando il file wp-config.php. All’interno di questo file, è necessario impostare la costante WP_DEBUG_DISPLAY su ‘false’. Facendo ciò, gli errori saranno ancora registrati in un file di log, ma non saranno visualizzati all’utente. Questo permette agli sviluppatori e agli amministratori di continuare a monitorare eventuali problemi dai file di log, visti qualche paragrafo prima, senza compromettere la sicurezza.

Un caso reale è l’ecommerce: se il debug display è attivo, un errore in una funzione di pagamento potrebbe rivelare dettagli sui metodi di pagamento, rendendo il sistema più vulnerabile. Una volta disabilitato il debug display, tali informazioni sarebbero nascoste, mantenendo una maggiore integrità della piattaforma.

Utilizzo di una rete di distribuzione dei contenuti

L’uso di una rete di distribuzione dei contenuti (Content Delivery Network, CDN) è fondamentale in molti progetti web sviluppati con WordPress. Per migliorare sia la sicurezza che le performance di un sito web, in particolare se è basato su una piattaforma come quella di cui parliamo oggi. Una CDN è una rete di server dislocati geograficamente in posti diversi… che immagazzinano copie dei contenuti di un sito web. Quando un utente accede al sito, la CDN reindirizza la richiesta al server più vicino, riducendo i tempi di caricamento e alleggerendo il carico sul server principale.

Dal punto di vista della sicurezza, una CDN offre diversi vantaggi. Primo, può fungere da cuscinetto contro attacchi DDoS, assorbendo il traffico malevolo e impedendo che raggiunga il server originale. Inoltre, molte CDN offrono funzionalità di Web Application Firewall (WAF), che aiutano a filtrare il traffico malevolo prima che possa raggiungere il tuo sito. Alcune CDN includono anche funzionalità di ottimizzazione delle immagini e minimizzazione del codice, contribuendo a migliorare ulteriormente le performance del sito.

Un esempio di come una CDN possa essere utile è il caso di un sito di notizie che riceve un’alta quantità di traffico. Utilizzando una CDN, il sito può gestire picchi di visite durante eventi importanti senza incorrere in problemi di scalabilità o disponibilità. Inoltre, le funzionalità di sicurezza della CDN possono proteggere il sito da tentativi di intrusione o attacchi DDoS che mirano a renderlo inaccessibile per occultare una notizia.

Miglioramento della sicurezza del database

Il miglioramento della sicurezza del database è un aspetto cruciale nella gestione di qualsiasi sito web, e in particolar modo per chi utilizza WordPress, dato che questa piattaforma fa uso intensivo del database per archiviare post, pagine, commenti, impostazioni e molto altro. Le misure di sicurezza per il database possono includere una serie di pratiche come la crittografia dei dati sensibili, l’utilizzo di password complesse per l’accesso al database e il controllo rigoroso dei permessi per i vari utenti che possono accedervi.

Un’altra tattica efficace è quella di cambiare il prefisso della tabella del database, che di default è “wp_”. Questo semplice cambiamento può rendere più difficile per gli hacker indovinare la struttura del tuo database. Si possono anche implementare misure come il monitoraggio in tempo reale delle query SQL, per identificare e fermare eventuali tentativi di SQL Injection. Inoltre, è altamente consigliabile effettuare backup regolari del database, così da poter ripristinare rapidamente tutte le informazioni in caso di attacco riuscito o fallimento del sistema.

Ottimizzazione del file .htaccess

Configura il file .htaccess per limitare l’accesso a directory e file sensibili, gestire redirect e ottimizzare la velocità.

Questo file, tipicamente situato nella directory radice del tuo sito web, è un potente strumento che ti permette di dare istruzioni al server su come gestire diverse tipologie di richieste. Ad esempio, è possibile reindirizzare gli utenti, bloccare specifici indirizzi IP o impostare regole per la memorizzazione nella cache di determinati tipi di contenuti.

Dal punto di vista della sicurezza, il file .htaccess può essere utilizzato per limitare l’accesso a determinate aree del tuo sito, come le directory di amministrazione, o per impedire l’esecuzione di script in cartelle particolarmente sensibili. Puoi anche usarlo per implementare misure anti-hacking, come la prevenzione di hotlinking, o per bloccare specifici agenti utente noti per scraping o attività malevole. Vale la pena di notare che un file .htaccess mal configurato può causare problemi, quindi è importante testare accuratamente qualsiasi modifica in un ambiente di sviluppo prima di applicarla al sito in produzione.

Per darti un esempio pratico, immagina di voler bloccare l’accesso all’amministrazione di WordPress a tutti tranne che da un determinato indirizzo IP. Puoi farlo aggiungendo alcune righe al tuo file .htaccess. In questo modo, anche se qualcuno dovesse indovinare la password di un amministratore, non sarebbe in grado di accedere al pannello di controllo a meno che non si connetta dallo specifico indirizzo IP che hai autorizzato. Questa è solo una delle molte tattiche che possono essere implementate attraverso l’ottimizzazione del file .htaccess.

Nascondere la versione di WordPress dal sito

Nascondi la versione di WordPress per rendere più difficile per gli aggressori identificare vulnerabilità note.

Molti hacker utilizzano scanner automatici che cercano siti con versioni obsolete o vulnerabili di WordPress. Se la versione è visibile, essi possono sfruttare falle di sicurezza specifiche di quella versione per compromettere il tuo sito. Rimuovendo questa informazione, si aggiunge un ulteriore strato di ambiguità che potrebbe dissuadere potenziali attacchi.

Come rimuovere la versione di WordPress
Per rimuovere la versione di WordPress, è possibile modificare il file functions.php del tuo tema o utilizzare un plugin di sicurezza che offre questa funzione. Ad esempio, per farlo manualmente, puoi aggiungere il seguente codice al file functions.php:

remove_action(‘wp_head’, ‘wp_generator’)

Questo impedirà che la versione di WordPress sia visibile attraverso il codice sorgente della pagina. Tuttavia, è essenziale sapere cosa si sta facendo quando si modifica il codice del sito, perché errori possono causare problemi funzionali. Se non sei sicuro, è meglio consultare un professionista o utilizzare un plugin affidabile per gestire queste impostazioni di sicurezza.

Limitazione dei permessi utente

Assegna solo i permessi necessari agli utenti, evitando di dare accesso amministrativo a chi non ne ha bisogno.

Limitare i permessi degli utenti è una pratica di sicurezza basilare. Controlla esattamente chi può fare cosa sul tuo sito WordPress. WordPress ha un sistema di gestione dei ruoli che ti permette di assegnare diversi livelli di accesso a diversi utenti, quali Amministratore, Editore, Autore, Collaboratore e Sottoscrittore. Ognuno di questi ruoli ha un insieme specifico di permessi, e capire quale ruolo assegnare può aiutarti a minimizzare i rischi associati con utenti che hanno un accesso eccessivo.

Se ad esempio, un membro del tuo team è responsabile solo della creazione di contenuti, non c’è motivo per dargli accesso alle impostazioni di sicurezza o ai plugin. In questo caso, un ruolo come “Autore” potrebbe essere il più appropriato. È anche possibile creare ruoli personalizzati con permessi specifici utilizzando plugin di gestione dei ruoli o funzioni personalizzate. Oltre ai ruoli, è buona norma controllare regolarmente la lista degli utenti per assicurarsi che non ci siano account non autorizzati e rimuovere o modificare quelli che non sono più necessari. Capita spesso di trovare siti web con vecchi utenti amministratori o utenti creati per chiedere assistenza.

Immagina di avere un negozio online e di voler dare accesso al tuo inventario a un dipendente. Invece di dargli un accesso completo come amministratore, potresti creare un ruolo personalizzato che ha solo i permessi per visualizzare e modificare i prodotti, ma non per, ad esempio, installare nuovi plugin o modificare il tema. Questo non solo riduce la probabilità di errori accidentali ma anche minimizza i danni che un account compromesso può fare.

Verifica dei permessi dei file

Assicurati che i permessi dei file e delle directory siano impostati correttamente per limitare le modifiche non autorizzate.

La verifica dei permessi dei file è una pratica per garantire che ogni file e cartella nel tuo sistema abbia le impostazioni di permessi appropriate, in modo da prevenire accessi non autorizzati o manipolazioni indebite. I file e le cartelle in un sistema WordPress hanno diversi livelli di permessi, che controllano quali operazioni possono essere eseguite da quali utenti. Questi livelli sono generalmente espressi attraverso una combinazione numerica a tre cifre, come 755 o 644.

Nella configurazione di un sito WordPress, è cruciale assicurarsi che i file critici, come wp-config.php, siano accessibili solo dall’utente del server web o dall’amministratore del sistema. Allo stesso modo, le cartelle che contengono file eseguibili o informazioni sensibili dovrebbero avere restrizioni più severe rispetto a quelle che contengono, ad esempio, immagini o fogli di stile. Un’impostazione errata dei permessi potrebbe consentire a utenti malintenzionati di modificare, eliminare o addirittura eseguire file sul tuo server, mettendo a rischio l’integrità del tuo sito.

Provo a spiegare con un esempio pratico
Supponiamo che tu abbia una cartella di upload in cui gli utenti possono caricare immagini per i loro profili. Se i permessi di questa cartella sono impostati in modo troppo permissivo (ad esempio, 777), un utente malintenzionato potrebbe caricare uno script malevolo anziché un’immagine e quindi eseguirlo, compromettendo la sicurezza del tuo sito. Pertanto, è fondamentale stabilire permessi appropriati per ogni file e cartella. La prima cifra è per il proprietario del file. La seconda rappresenta il gruppo del file. L’ultima cifra è per tutti gli altri. Più è alto il numero e più permessi si hanno. Quindi 777 permette di scrivere ed eseguire file, da parte di chiunque.
Cambiare i permessi a 700 renderà il file visibile solo al tuo utente e nessun altro. Impostarli a 444 permetterà solo al creatore del file di modificarlo, ma comunque a tutti di vederlo.

Specchietto riassuntivo dei permessi possibili
0 – nessun permesso
1 – esegui
2 – scrivi
3 – scrivi ed esegui
4 – leggi
5 – leggi ed esegui
6 – leggi e scrivi
7 – leggi, scrivi ed esegui

Impostazione di un sistema di allarme per attività sospette

Configura notifiche via email o altri canali per essere avvisato in caso di comportamenti sospetti.

L’impostazione di un sistema di allarme per attività sospette è un altro pilastro fondamentale per garantire la sicurezza di un sito web, e in particolare di un sito WordPress. Questi sistemi sono spesso incorporati in plugin di sicurezza o servizi di terze parti e monitorano il sito alla ricerca di comportamenti o accessi insoliti. Se viene rilevato qualcosa di anormale, come tentativi ripetuti di accesso fallito, modifiche ai file di sistema o comportamenti strani da indirizzi IP sconosciuti, il sistema di allarme invia una notifica immediata all’amministratore del sito. Questo permette di prendere provvedimenti tempestivi per prevenire o mitigare eventuali danni.

Esistono diverse tipologie di allarmi, che possono variare da semplici notifiche via email a dashboard complesse che tracciano e registrano ogni minima attività sospetta. Alcuni sistemi possono anche prendere misure automatiche, come il blocco di indirizzi IP sospetti o la forzatura di una disconnessione dell’utente sospetto. L’obiettivo è sempre lo stesso: informare gli amministratori sulle potenziali minacce in tempo reale, permettendo una risposta rapida.

Esempio
Immagina di ricevere una notifica che ti informa di numerosi tentativi di accesso fallito provenienti da un indirizzo IP situato in una regione in cui non hai affari o utenti. Grazie al sistema di allarme, puoi immediatamente indagare sull’attività sospetta e, se necessario, bloccare quell’indirizzo IP, prevenendo potenziali danni al tuo sito.

Monitoraggio dell’integrità dei file

Utilizza strumenti che verificano periodicamente l’integrità dei file del tuo sito, allertando in caso di modifiche sospette.

Il monitoraggio dell’integrità dei file è una misura di sicurezza che riguarda la verifica costante dei file all’interno del tuo sistema WordPress. Questa funzione è particolarmente utile per identificare qualsiasi modifica non autorizzata che potrebbe essere stata apportata ai file di sistema o ai temi e plugin installati. Modifiche di questo tipo possono essere un segnale di un’intrusione nel tuo sistema, quindi è vitale essere avvisati il più rapidamente possibile. Molte soluzioni di sicurezza offrono questa funzionalità, che generalmente include una scansione periodica dei file per identificare qualsiasi cambiamento rispetto a una versione conosciuta e sicura.

Il meccanismo generalmente funziona attraverso un confronto (hash). Ogni file viene confrontato con un hash conosciuto e approvato. Se c’è una discrepanza, viene generato un allarme. Questo permette agli amministratori di esaminare il file incriminato e decidere se rappresenta una minaccia o meno. Le notifiche possono arrivare in diversi modi, dall’email al pannello di controllo della soluzione di sicurezza. Alcuni strumenti avanzati offrono anche la possibilità di ripristinare automaticamente i file modificati con versioni pulite, a patto che queste versioni siano disponibili.

Nella realtà
Supponiamo che un giorno tu riceva una notifica che un file nel tuo tema WordPress è stato modificato. Grazie al monitoraggio dell’integrità dei file, sei immediatamente informato e puoi accedere al tuo sito per verificare il file in questione. Dopo aver esaminato il codice, scopri che è stato inserito del codice malevolo. Grazie all’allarme tempestivo, sei in grado di ripristinare il file originale, evitando potenziali rischi di sicurezza. Lasciare del codice malevolo in un file significa aprire le porte a attacchi molto pericolosi che potrebbe anche cancellare contenuti.

Utilizzo di password sicure per il database

Utilizza una password complessa per il database per rendere più difficile l’accesso non autorizzato.

Una password debole o facilmente indovinabile può rendere il tuo database un bersaglio facile per gli attacchi di forza bruta o altre forme di accesso non autorizzato. È consigliabile utilizzare una combinazione di lettere maiuscole e minuscole, numeri e simboli speciali per creare una password forte. Inoltre, è buona pratica cambiarla regolarmente e non utilizzare la stessa password per diversi servizi o applicazioni.

Oltre a scegliere una password robusta, è altresì importante garantire che la connessione al database sia cifrata, utilizzando tecnologie come SSL o TLS. Questo aiuta a proteggere le credenziali del database durante la trasmissione tra il server web e il server del database, riducendo così il rischio di intercettazioni malevole. Alcuni provider di hosting offrono anche soluzioni di sicurezza avanzate come l’autenticazione a due fattori per l’accesso al database, fornendo un ulteriore strato di protezione.

Password di esempio
Immaginiamo che tu abbia un e-commerce su WordPress e utilizzi un database per memorizzare informazioni sui prodotti, ordini e clienti. Se la password del tuo database fosse “password123”, un attaccante potrebbe facilmente accedere al database in meno di un secondo e rubare informazioni sensibili. Tuttavia, se utilizzi una password complessa come “Jk9!7zQ1&V”, le probabilità di un accesso non autorizzato si riducono significativamente. Oltre a ciò, utilizzando una connessione cifrata e magari anche l’autenticazione a due fattori, rendi il tuo database ancora più sicuro.

Disabilitazione dei pingback e dei trackback

Disabilita queste funzionalità per evitare attacchi di tipo DDoS o spam. Dove sta il problema?

I pingback e i trackback sono meccanismi che consentono a WordPress di notificare altri blog o siti web che hai collegato ai loro articoli e viceversa. Sebbene questa funzione possa sembrare utile per aumentare l’interazione e la visibilità, può essere sfruttata per lanciare attacchi DDoS (Distributed Denial of Service) o per inserire spam nei commenti del tuo sito.

Disabilitando questi meccanismi, riduci la superficie di attacco, rendendo più difficile per gli aggressori sfruttare vulnerabilità correlate ai pingback e trackback. Questo è particolarmente utile per i siti che non necessitano di un’elevata interazione con altri blog o siti web. La disabilitazione può essere facilmente effettuata dalle impostazioni di discussione nel pannello di amministrazione di WordPress, dove è possibile deselezionare l’opzione che permette ai link di essere visualizzati nei commenti.

Blog aziendale
In un blog aziendale dove non si accettano commenti e non si fanno link esterni o backlink, lasciare abilitati i pingback e i trackback, porterebbe quasi sicuramente il tuo sito a ricevere una quantità insolita di traffico o commenti di spam. Questo potrebbe essere il risultato di un attacco mirato che sfrutta questi meccanismi. Disabilitandoli, non solo previeni tali problemi, ma aumenti anche la sicurezza generale del tuo sito.

Configurazione di un Web Application Firewall

Un WAF può aiutare a filtrare il traffico web, bloccando richieste malevole prima che raggiungano il tuo sito.

La configurazione di un Web Application Firewall (WAF) è una tecnica che protegge da una vasta gamma di attacchi informatici. Un WAF agisce come uno scudo tra il tuo sito web e il traffico Internet, filtrando e monitorando il traffico tra un’applicazione web e Internet. Questo può aiutare a bloccare attacchi come SQL injection, cross-site scripting (XSS) e tentativi di forzatura bruta, tra gli altri. In pratica, il WAF esamina le richieste HTTP/HTTPS dirette al tuo sito e prende decisioni in tempo reale su quali permettere e quali bloccare in base a una serie di regole di sicurezza predefinite o personalizzate.

La configurazione di un WAF può essere sia su base hardware che software, e spesso viene fornita come servizio da fornitori di sicurezza specializzati. Alcuni plugin di sicurezza WordPress offrono anche funzionalità di WAF integrate. Generalmente, la configurazione di un WAF implica la definizione di un insieme di regole che determinano quali tipi di traffico sono ammessi o bloccati. È anche possibile impostare allarmi e notifiche per essere avvisati in caso di attività sospetta, permettendo un intervento tempestivo per mitigare potenziali rischi.

Colgo l’occasione per spiegarti un tipo di attacco tra i più antichi ed efficaci

SQL injection

Un attacco SQL injection si verifica quando un utente inserisce codice speciale in un campo di input di un sito web, per ingannare il sistema e accedere a informazioni riservate. In pratica, invece di inserire un normale username o password, l’attaccante scrive un pezzetto di codice che confonde il sistema.

Per chi conosce SQL faccio un esempio:

Supponiamo che il codice del sito verifichi le credenziali dell’utente con un comando tipo SELECT * FROM users WHERE username = ‘$username’ AND password = ‘$password’. Questo comando controlla che username e password soddisfino il confronto. Un attaccante potrebbe inserire admin’ — nel campo username e lasciare vuoto il campo della password. La query diventerebbe SELECT * FROM users WHERE username = ‘admin’ — AND password = ‘ ‘

Il commento — farebbe escludere la seconda parte della stringa, escludendo il confronto sulle password (la parte “AND password = ”) rendendo sempre vera l’equazione. Permettendo così di accedere come amministratore senza conoscere la password. Forse è un po’ complesso per chi non traffica regolarmente su database e con stringhe SQL. Ma vi assicuro che una riga di codice così semplice funziona ancora oggi. Pare che una delle prime SQL injection sia avvenuta nel 1998.

Sorveglianza delle metriche per interpretare attacchi

Monitora le metriche come i tentativi di accesso falliti o i picchi di traffico per identificare potenziali minacce.

La sorveglianza delle metriche ti permette di avere una visione chiara delle attività sul tuo sito e di individuare eventuali anomalie o comportamenti sospetti in tempo reale. Questo processo di sorveglianza può variare da un semplice controllo del numero di tentativi di accesso falliti fino alla verifica di metriche più avanzate, come il tempo di caricamento delle pagine o l’utilizzo della CPU, che potrebbero indicare un attacco DDoS in corso.

Per fare ciò, è possibile utilizzare una varietà di strumenti e plugin che forniscono quadri di controllo dettagliati, avvisi in tempo reale e rapporti. Ad esempio, un plugin di sicurezza potrebbe monitorare il numero di tentativi di login falliti e bloccare automaticamente indirizzi IP sospetti dopo un determinato numero di tentativi. Inoltre, la maggior parte di questi strumenti ti permette di impostare avvisi via e-mail o notifiche sul telefono per essere immediatamente informato in caso di attività sospetta. In questo modo, è possibile agire rapidamente per proteggere il sito, prima che si verifichino danni significativi.

DDoS

Visto che ho citato più volte l’attacco DDoS ti spiego cosa sia: un attacco DDoS (Distributed Denial of Service) è un tentativo di rendere inaccessibile un servizio online, come un sito web, sovraccaricandolo con un elevato volume di traffico falso da molteplici fonti. L’obiettivo è di esaurire le risorse del server, rendendo impossibile per gli utenti legittimi accedere al servizio.

Verifica regolare delle vulnerabilità

Usa strumenti di scansione per identificare e correggere vulnerabilità nel tuo sito.

Questa attività implica l’esecuzione di scansioni periodiche del sito, del database e di tutti i file correlati per identificare qualsiasi possibile debolezza che potrebbe essere sfruttata da un attaccante. Strumenti specifici, spesso offerti da plugin di sicurezza o servizi di terze parti, possono automatizzare questo processo e fornire un rapporto dettagliato sulle possibili falle di sicurezza.

Per esempio, una scansione potrebbe rilevare una versione obsoleta di un plugin, una configurazione non sicura del database o persino del codice malevolo già presente nel sistema. Una volta identificate queste vulnerabilità, è essenziale correggerle il più rapidamente possibile per prevenire potenziali attacchi. La frequenza delle verifiche dipenderà dalla complessità del sito e dal livello di rischio associato, ma come regola generale, più frequenti sono le scansioni, meglio è.

Ricordati di fare le scansioni di sicurezza dopo ogni aggiornamento importante di WordPress, dei plugin e del codice.

Blocco dell’accesso diretto ai file PHP

Configura il file .htaccess per impedire l’accesso diretto ai file PHP, riducendo il rischio di esecuzione di codice malevolo.

I file PHP contengono spesso codice sensibile che, se esposto, potrebbe rendere il tuo sito vulnerabile a vari tipi di attacchi, come ad esempio l’iniezione di codice. Limitando l’accesso diretto ai file PHP, puoi garantire che gli attaccanti non siano in grado di eseguire questi file arbitrariamente, impedendo così l’esecuzione di codice malevolo sul tuo server. Per bloccare l’accesso diretto, si possono implementare regole nel file .htaccess o utilizzare specifici plugin di sicurezza che offrono questa funzionalità. Ad esempio, potresti inserire un frammento di codice nel tuo file .htaccess che rifiuta le richieste HTTP dirette ai tuoi file PHP.

<Files *.php>
deny from all
</Files>

Spiegazione pratica
Per spiegarti cosa significa bloccare l’accesso ai file php, nella cartella di WordPress wp-content/uploads dove vengono caricate solitamente le immagini, un qualsiasi file .php, presente nella cartella/sottocartella in cui viene inserita questa direttiva, non viene eseguito.

Utilizzo di HTTPS per l’accesso al pannello di amministrazione

Assicurati che la connessione al pannello di amministrazione sia sempre criptata utilizzando HTTPS.

L’utilizzo di HTTPS (Hyper Text Transfer Protocol Secure) per l’accesso al pannello di amministrazione è fondamentale per garantire la sicurezza delle informazioni trasmesse tra il tuo browser e il server su cui è ospitato il tuo sito WordPress. A differenza del protocollo standard, HTTPS crittografa i dati durante il loro trasferimento, rendendo estremamente difficile per gli attaccanti intercettare o manipolare le informazioni scambiate. Questo è particolarmente importante quando si tratta di informazioni sensibili come nomi utente e password, che sono comunemente usati per accedere al pannello di amministrazione.

Molti provider di hosting offrono la possibilità di installare un certificato SSL (Secure Socket Layer) che è un requisito per utilizzare HTTPS. Una volta ottenuto il certificato, puoi forzare l’uso di HTTPS modificando alcune impostazioni nel file wp-config.php o attraverso l’uso di plugin specifici che facilitano questo processo. Ad esempio, potresti aggiungere la riga `define(‘FORCE_SSL_ADMIN’, true);` nel file wp-config.php per garantire che tutte le connessioni al pannello di amministrazione avvengano via HTTPS. In questo modo, contribuirai a ridurre significativamente le probabilità di attacchi come l’intercettazione dei dati o il man-in-the-middle.

Attenzione che il certificato è fondamentale soprattutto se fai ecommerce, raccogli dati personali e sensibili e ci sono iscrizioni, registrazioni e interazioni con il sito. Oggi alcuni browser segnalano con un avviso che il sito che stai navigando non è sicuro. Per evitare che l’aviso appaia anche sul tuo, meglio correre ai ripari e metter ein pratica anche questa best practice.

Mantenimento di un registro delle attività degli utenti

Tieni traccia delle azioni degli utenti all’interno del sito per facilitare l’individuazione di attività sospette.

Il mantenimento di un registro delle attività degli utenti è una strategia di sicurezza spesso sottovalutata ma estremamente utile. Tenere traccia di chi fa cosa sul tuo sito WordPress può fornire un livello di accountability che è utile non solo per la risoluzione dei problemi, ma anche per identificare comportamenti sospetti o malevoli prima che causino danni significativi. Questi registri possono includere dettagli come indirizzi IP, orari di accesso, e specifiche azioni intraprese, come la pubblicazione di un nuovo post o la modifica di una impostazione critica.

Esistono numerosi plugin WordPress che facilitano l’implementazione di questa funzionalità, registrando automaticamente diverse tipologie di azioni e fornendo un’interfaccia facile da utilizzare per la loro consultazione. Ad esempio, potrebbe essere utile sapere se un utente con privilegi di amministratore si è connesso al sito da un nuovo dispositivo o una nuova località geografica. Se questo comportamento è inaspettato, potrebbe essere un segnale di allarme che qualcuno ha ottenuto accesso non autorizzato all’account. In tal caso, si potrebbe procedere con ulteriori indagini o misure preventive come la modifica delle credenziali di accesso o l’attivazione di meccanismi di verifica in due passaggi.

Controllo dei contenuti caricati

Limita i tipi di file che possono essere caricati e controlla regolarmente le directory di upload.

Ogni volta che un file viene caricato sul tuo sito, esiste un potenziale rischio che quel file possa contenere malware o altro codice malevolo. Questo è particolarmente vero se il tuo sito consente a utenti non amministratori di caricare file. Alcuni attacchi comuni, come l’upload di shell PHP, si verificano quando un utente malintenzionato carica un file PHP mascherato da immagine o altro tipo di media. Una volta caricato, questo file può essere eseguito per ottenere un controllo non autorizzato sul sito.

Per mitigare questo rischio, è fondamentale implementare controlli rigorosi sui tipi di file che possono essere caricati e da chi. Ad esempio, potrebbe essere sensato limitare la capacità di caricare file solo a determinate estensioni e tipi di media, come immagini jpeg o file pdf, e solo per gli utenti con determinati ruoli o permessi. Inoltre, l’utilizzo di plugin di sicurezza che eseguono scansioni antivirus sui file caricati può fornire un ulteriore livello di protezione. Se si tratta di un sito che permette il caricamento di contenuti da parte degli utenti, potrebbe essere utile implementare un sistema di revisione manuale per i file, in modo da poter ispezionare ogni upload prima che diventi accessibile al pubblico o agli altri utenti del sito.

Disabilitazione delle funzionalità non necessarie

Rimuovi o disabilita funzionalità di WordPress che non utilizzi, come ad esempio l’editor di file o i temi di default.

La disabilitazione delle funzionalità non necessarie è una pratica che mira a ridurre la superficie di attacco del tuo sito web minimizzando il numero di punti che potrebbero essere sfruttati da un aggressore. In pratica, ogni funzionalità, plugin o modulo che non è essenziale per il funzionamento del tuo sito web rappresenta un potenziale rischio per la sicurezza. Alcune funzionalità potrebbero avere vulnerabilità non note o potrebbero diventare un problema in futuro con nuovi exploit. Inoltre, mantenere funzionalità non utilizzate può rallentare il tuo sito e consumare risorse preziose.

Un approccio comune alla disabilitazione delle funzionalità non necessarie è quello di iniziare con una revisione completa di tutte le funzionalità attive sul tuo sito. Una volta identificato ciò che è superfluo, puoi procedere con la disattivazione o la rimozione. Questo include anche i plugin che magari sono stati installati per un bisogno temporaneo ma non sono più utilizzati. Anche i temi inutilizzati dovrebbero essere rimossi, non solo disattivati, perché rappresentano una potenziale fonte di vulnerabilità. Oltre ai plugin e ai temi, fai attenzione anche alle funzionalità core di WordPress.

Ad esempio, se non hai bisogno di una particolare API, potrebbe essere prudente disabilitarla. La minimizzazione delle funzionalità è un concetto che si estende oltre WordPress e può essere applicato a qualsiasi sistema per migliorarne la sicurezza e le performance. In generale è molto frequente trovare installazioni di WordPress non aggiornate, ma soprattutto pieni di temi e plugin non utilizzati.

Limitazione della durata delle sessioni di accesso

Imposta un timeout per le sessioni utente per ridurre il rischio che account lasciati aperti possano essere compromessi.

La limitazione della durata delle sessioni di accesso è una strategia di sicurezza che mira a ridurre il rischio di accessi non autorizzati al tuo sito web. In pratica, questa misura limita il tempo durante il quale una sessione di accesso rimane valida, costringendo l’utente a effettuare nuovamente il login dopo un certo periodo di inattività o dopo un periodo di tempo prestabilito. Questo riduce la finestra di opportunità per qualsiasi attacco che miri a sfruttare una sessione aperta, come ad esempio l’attacco di tipo “session hijacking”.

Molti sistemi, inclusa la piattaforma WordPress, offrono impostazioni che ti permettono di configurare la durata della sessione. In WordPress, per esempio, è possibile impostare un timeout di sessione utilizzando plugin dedicati o intervenendo direttamente sul file di configurazione. È anche possibile impostare sessioni che scadono automaticamente dopo un certo periodo di inattività, richiedendo all’utente di accedere nuovamente per continuare a utilizzare il sito. Alcuni ambienti più sensibili alla sicurezza, come quelli bancari o governativi, potrebbero anche implementare meccanismi come notifiche via email o SMS che informano l’utente quando la sessione sta per scadere. Il vantaggio di una strategia come questa è che aiuta a proteggere l’utente senza richiedere interventi costanti da parte degli amministratori del sito. Tuttavia, è importante bilanciare la necessità di sicurezza con la facilità d’uso: una sessione che scade troppo rapidamente potrebbe infatti risultare scomoda per l’utente.

Uso di captcha per i form

Aggiungi captcha ai form per evitare attacchi automatizzati e spam.

L’uso di captcha nei form è una misura di sicurezza molto diffusa che aiuta a distinguere gli utenti reali dai bot automatici. Un captcha (Completely Automated Public Turing test to tell Computers and Humans Apart) è un test che viene presentato all’utente per verificare che sia un essere umano e non un programma automatizzato. Questi test possono variare da semplici problemi matematici a immagini da riconoscere, e sono progettati per essere facili per gli umani ma difficili per i computer.

Nel contesto dei siti web, i captcha sono spesso utilizzati in form di registrazione, moduli di contatto e pagine di login. Ad esempio, se gestisci un blog con WordPress, potresti voler implementare un captcha nel tuo modulo di commenti per prevenire lo spam. Oltre ai captcha basati su testo o immagini, esistono anche versioni più avanzate come il reCAPTCHA di Google, che utilizza diversi indicatori per determinare se un utente è reale, come il comportamento del mouse e l’analisi delle attività precedenti dell’utente sul sito.

Un esempio concreto dell’utilizzo di captcha potrebbe essere un form di registrazione per un servizio online. Dopo aver inserito le informazioni richieste, come nome utente e password, l’utente potrebbe essere indirizzato a un captcha che richiede di identificare oggetti specifici in una serie di immagini. Solo dopo aver completato con successo il captcha, l’utente potrà completare la registrazione. Questo passaggio aggiuntivo è utile per scoraggiare i tentativi automatizzati di registrazione che potrebbero essere effettuati per scopi di spam o altri usi illeciti. Tuttavia, è fondamentale implementare i captcha in modo tale da non ostacolare l’usabilità del sito, soprattutto per gli utenti con disabilità visive o altri impedimenti che potrebbero rendere difficile l’interazione con questi test.

Implementazione di politiche di sicurezza dei contenuti

Configura header di sicurezza per limitare la possibilità di attacchi come il Cross-Site Scripting (XSS).

L’implementazione di politiche di sicurezza dei contenuti (Content Security Policy o CSP) è una strategia avanzata per mitigare i rischi legati alla sicurezza web, in particolare per prevenire attacchi come il Cross-Site Scripting (XSS) e il Clickjacking. Le CSP funzionano impostando regole specifiche che indicano ai browser quali risorse possono essere caricate e eseguite, e da quali origini. In altre parole, è possibile definire una lista bianca di sorgenti affidabili per script, immagini, fogli di stile e altri contenuti incorporati nel sito web.

Nella pratica, un CSP viene implementato inviando una specifica intestazione HTTP dalla pagina web al browser dell’utente. Questa intestazione contiene le direttive che specificano le politiche di sicurezza che il browser dovrebbe rispettare durante l’interazione con il sito. Per esempio, è possibile limitare l’esecuzione di script JavaScript solo alle sorgenti che sono state esplicitamente approvate, o bloccare l’accesso a determinate risorse solo da determinate pagine. Una volta implementato, ogni tentativo di iniezione di contenuto da origini non approvate verrà bloccato, e nel caso, sarà segnalato al server.

Per dare un esempio pratico, supponiamo che tu gestisca un negozio online e voglia proteggere gli utenti da potenziali attacchi XSS. Potresti implementare una CSP che permette l’esecuzione di script JavaScript solo da una sorgente fidata e bloccare qualsiasi altro script. In questo modo, anche se un attaccante riuscisse ad iniettare un frammento di codice maligno nella tua pagina web, questo codice non potrebbe essere eseguito perché non proviene da una sorgente autorizzata dalla tua CSP. Tuttavia, implementare una CSP richiede una certa conoscenza tecnica e deve essere fatto con attenzione, poiché un’impostazione errata potrebbe compromettere la funzionalità del sito. È quindi consigliato testare accuratamente la configurazione in un ambiente controllato prima di applicarla al sito in produzione.

Cross-Site Scripting (XSS)

Il Cross-Site Scripting, noto come XSS, è un tipo di attacco informatico in cui un aggressore inserisce del codice JavaScript malevolo in una pagina web. L’obiettivo è di eseguire questo codice nel browser dell’utente per rubare informazioni o eseguire azioni indesiderate

Implementare un sistema di rilevamento intrusioni

Utilizza strumenti che monitorano il tuo sito in tempo reale per rilevare attacchi.

Un sistema di rilevamento delle intrusioni (IDS) è uno strumento critico per la protezione di qualsiasi rete o sistema informatico. Questo software monitora il traffico in tempo reale o i log di sistema, cercando attività o sequenze di comandi sospette che possano indicare un tentativo di intrusione non autorizzata. In caso di allarme, un IDS può essere configurato per eseguire diverse azioni, come inviare notifiche ai responsabili della sicurezza, bloccare l’accesso all’indirizzo IP sospetto o addirittura disconnettere temporaneamente la rete.

L’efficacia di un IDS dipende in gran parte dalla sua configurazione e dai parametri impostati per rilevare attività sospette. Ad esempio, se hai un sito web che gestisce dati sensibili, potresti configurare il tuo IDS per monitorare specifici tipi di richieste SQL malevole o tentativi di accesso multipli falliti in un breve lasso di tempo. Ogni volta che viene rilevata un’attività che corrisponde a uno di questi schemi, il sistema può bloccare l’accesso e avvisare l’amministratore per un’indagine più approfondita. In questo modo, un IDS agisce come un ulteriore strato di sicurezza, andando oltre le misure tradizionali come firewall e autenticazione.

Disabilitazione delle risposte di errore dettagliate

Configura il server per non mostrare messaggi di errore dettagliati.

Disabilitare le risposte di errore dettagliate è una pratica di sicurezza che mira a ridurre le informazioni che un potenziale aggressore potrebbe sfruttare. Molte applicazioni e server web forniscono messaggi di errore dettagliati per default, pensati per aiutare gli sviluppatori a diagnosticare problemi. Tuttavia, questi messaggi possono rivelare informazioni cruciali su come il sistema è configurato o come funziona, dando agli aggressori indizi su possibili vettori di attacco.

Per esempio, un messaggio di errore che rivela la versione specifica del software del database utilizzato potrebbe indicare a un aggressore quale exploit utilizzare per compromettere il sistema. Pertanto, è consigliato configurare le impostazioni del server o dell’applicazione per mostrare messaggi di errore generici al pubblico, mentre si mantengono log dettagliati accessibili solo agli amministratori del sistema. Questo può essere realizzato attraverso la configurazione del server web, del database o direttamente nel codice dell’applicazione. In questo modo, si riesce a bilanciare l’esigenza di debug e diagnosi per gli sviluppatori con la necessità di mantenere un ambiente sicuro e resiliente agli attacchi.

Esempio di errore breve: Error 500
Esempio di errore dettagliato
: [04-Apr-2016 06:58:27] PHP Parse error: syntax error, unexpected ‘;’ in /var/www/html/system/mycode.php on line 1458

Come vedi viene riportato tutto: data, ora, linguaggio, tipo di errore, file che lo genera, riga e carattere colpevoli.
Ricorda che in php cambiando solo queste due righe puoi decidere che tipo di errori verranno mostrati.

error_reporting(E_ALL);
ini_set(‘display_errors’, ‘1’);

Consiglio inolter di approfondire i gruppi di risposte del server per capire il tipo di errore restituito. Nel sito ufficiale di Mozilla trovi una guida esaustiva sui codici di stato della risposta HTTP

Uso di un servizio di protezione DDoS

Utilizza un servizio specializzato per mitigare gli attacchi DDoS e mantenere il sito operativo.

L’utilizzo di un servizio di protezione DDoS (Distributed Denial of Service) è una misura proattiva per difendere un sito web o un’applicazione da attacchi che mirano a rendere il servizio inaccessibile. Questi attacchi sono realizzati inondando il server con una quantità eccessiva di richieste di connessione o di dati, con lo scopo di sovraccaricarlo e, quindi, renderlo inutilizzabile per gli utenti legittimi. Un servizio di protezione DDoS è specializzato nell’identificare e mitigare questo tipo di traffico dannoso, permettendo al servizio di continuare a funzionare normalmente.

Esistono vari tipi di servizi di protezione DDoS, dal filtraggio del traffico a livello di rete, alla mitigazione basata sul cloud. In generale, questi servizi operano identificando schemi di traffico sospetti e isolando il traffico nocivo dal traffico legittimo. Ad esempio, un servizio potrebbe  limitare il numero di richieste da un singolo indirizzo IP, o potrebbe applicare algoritmi per riconoscere schemi di attacco in tempo reale. Optare per un servizio di protezione DDoS è particolarmente consigliabile per aziende o servizi che gestiscono dati sensibili o che non possono permettersi periodi di inattività, dato che un attacco DDoS ben eseguito può, nel peggiore dei casi, mettere completamente fuori servizio un sito web o un’applicazione, con conseguenze economiche e reputazionali molto gravi.

Immagina un ecommerce che fattura 30k al giorno, quanti danni potrebbe fare un attacco DDoS di sole 12 ore…

Impostazione di un indirizzo email per le notifiche di sicurezza

Configura un indirizzo email dedicato per ricevere notifiche e alert di sicurezza.

L’impostazione di un indirizzo email dedicato per le notifiche di sicurezza funge da canale di comunicazione primario tra il sistema di sicurezza del sito web e gli amministratori o i responsabili della sicurezza. Ogni volta che si verifica un evento sospetto o una violazione, una notifica verrà inviata immediatamente a questo indirizzo email. Questo può includere tentativi di accesso falliti, modifiche ai file di sistema, attività sospette e altro ancora.

Utilizzare un indirizzo email separato e dedicato solo alle notifiche di sicurezza offre diversi vantaggi. Primo, aiuta a organizzare e centralizzare tutte le comunicazioni relative alla sicurezza, rendendo più facile per gli amministratori monitorare le potenziali minacce. Secondo, un indirizzo email separato riduce il rischio che queste notifiche vitali vengano perse o ignorate tra le altre email. Alcuni sistemi di gestione della sicurezza offrono anche la possibilità di inviare notifiche attraverso altri canali, come messaggi SMS o applicazioni di messaggistica, come ulteriore livello di sicurezza.

Esempio
Immagina di avere un negozio online e di ricevere una notifica di sicurezza che ti informa di un numero insolitamente alto di tentativi di accesso falliti. Grazie a una notifica tempestiva inviata all’indirizzo email dedicato, l’amministratore può intraprendere misure immediate, come il blocco temporaneo degli indirizzi IP sospetti o la forzatura di un cambio di password per gli utenti interessati. In questo modo, l’impostazione di un indirizzo email per le notifiche di sicurezza funge da primo livello di difesa, permettendo una risposta rapida e, spesso, prevenendo danni maggiori. E inoltre non viene ricevuto insieme agli ordini e non viene letto da chi non è competente.

Uso di chiavi di autenticazione uniche

Utilizza chiavi uniche per l’autenticazione per migliorare la sicurezza dei dati.

L’uso di chiavi di autenticazione uniche rappresenta una misura di sicurezza avanzata che mira a rafforzare l’integrità e la confidenzialità dei dati all’interno di un sistema. Queste chiavi funzionano come identificatori univoci e sono utilizzate durante i processi di crittografia e decrittografia dei dati, rendendo molto più difficile per gli aggressori compromettere le informazioni sensibili. In genere, queste chiavi sono stringhe alfanumeriche complesse che vengono generate in modo casuale e che devono essere custodite con la massima attenzione.

Implementare l’uso di chiavi di autenticazione uniche è particolarmente rilevante in ambienti che richiedono alti livelli di sicurezza, come sistemi bancari online, reti aziendali o applicazioni che gestiscono dati medici o finanziari. Queste chiavi migliorano notevolmente la sicurezza in diversi scenari, ad esempio durante la trasmissione di dati tra client e server, nell’accesso a database o nel mantenimento della sessione utente. Inoltre, essendo uniche, riducono il rischio associato all’uso di password deboli o di credenziali comuni a più servizi, che potrebbero essere facilmente indovinate o compromesse.

Esempio di chiavi uniche per conti correnti bancari e app
Ogni volta che un utente accede all’app della banca, viene generata una chiave di autenticazione unica che verrà utilizzata per crittografare la comunicazione tra il dispositivo dell’utente e il server della banca. Questa chiave assicura che i dati sensibili, come le informazioni sul saldo o le transazioni, siano protetti da intercettazioni o manipolazioni durante la loro trasmissione. Inoltre, se qualcuno tentasse di accedere senza autorizzazione, la mancanza della chiave di autenticazione unica renderebbe praticamente impossibile decrittografare i dati. Così facendo, l’uso di chiavi di autenticazione uniche contribuisce a creare un ambiente molto più sicuro e robusto contro possibili attacchi.

Attivazione di misure di protezione anti-spam

Utilizza plugin e configurazioni specifiche per prevenire lo spam nei commenti o nei form.

L’attivazione di misure di protezione anti-spam è fondamentale per qualsiasi sito web o applicazione che interagisce con gli utenti tramite form di registrazione, commenti o altre funzionalità che richiedono l’inserimento di dati da parte dell’utente. Il principio di base è quello di implementare meccanismi che permettano di distinguere tra interazioni legittime e tentativi di spam (spesso generati in modo automatizzato da bot). L’importanza di questo non può essere sottovalutata, dato che lo spam non solo può compromettere la user experience, ma può anche esporre il sistema a ulteriori vulnerabilità.

Tra le misure più comuni ci sono i captcha, che richiedono all’utente di risolvere un piccolo test per dimostrare di essere umani, e le liste nere di indirizzi IP o domini noti per generare spam. Inoltre, è possibile implementare algoritmi di machine learning per identificare e filtrare contenuti sospetti, basandosi su vari fattori come la frequenza di invio, la provenienza geografica e la presenza di parole chiave comuni nello spam. Questi algoritmi possono essere affinati nel tempo per essere sempre più efficaci nell’identificare nuovi tipi di spam.

Un blog che permette ai visitatori di lasciare commenti senza misure anti-spam potrebbe essere rapidamente sommerso da messaggi pubblicitari, link non richiesti o contenuti offensivi, rendendo la sezione commenti inutilizzabile, pesante e potenzialmente pericolosa. Implementando un sistema captcha, solo gli utenti che superano il test avranno la possibilità di pubblicare un commento. Questo filtro iniziale è spesso sufficiente per scoraggiare i bot automatici. Se ciò non bastasse, un algoritmo potrebbe analizzare il testo del commento per identificare parole o frasi tipiche dello spam, impedendo la pubblicazione di contenuti sospetti. In questo modo, si migliora notevolmente la qualità delle interazioni sul sito, proteggendolo allo stesso tempo da possibili rischi.

Puoi anche filtrare i contenuti in base ad alcuni termini (offensivi, url, espliciti, ecc) in modo da interrompere il processo di invio o memorizzazione del dato a monte. Il classico esempio di chi usa la sezione commenti per farsi pubblicità e riempire di link al proprio sito o siti di affiliazione

Revisione periodica delle impostazioni di sicurezza

Controlla regolarmente le impostazioni di sicurezza che siano ottimali e aggiornate.

Con l’evoluzione costante delle minacce online e l’emergere di nuove vulnerabilità, è fondamentale che gli amministratori effettuino controlli regolari per assicurarsi che le misure di sicurezza siano aggiornate e efficaci. Questa pratica consente di individuare eventuali punti deboli nel sistema e di apportare le necessarie modifiche prima che si verifichino problemi gravi.

Oltre a garantire che tutti i software e i plugin siano aggiornati alle ultime versioni, la revisione periodica dovrebbe includere la verifica delle impostazioni del firewall, delle politiche di autenticazione e dei protocolli di crittografia. È anche utile esaminare i log di sistema per individuare qualsiasi attività sospetta o irregolare che potrebbe indicare un tentativo di intrusione. Molte organizzazioni scelgono di effettuare queste revisioni su base trimestrale o semestrale, anche se la frequenza può variare in base alla natura e alla dimensione del progetto.

Caso reale
Un e-commerce che conserva dati sensibili come informazioni di pagamento o dettagli personali dei clienti richiede la valutazione delle misure anti-frode, delle procedure di backup dei dati e della robustezza delle password. Un audit potrebbe rivelare, per esempio, che il sito è vulnerabile a attacchi di tipo SQL Injection. In questo caso, si potrebbe decidere di rivedere e rinforzare i meccanismi di validazione dei dati inseriti dagli utenti per prevenire questo tipo di attacco. Ogni revisione è quindi un’opportunità per migliorare e per prepararsi a nuovi tipi di minacce, garantendo così un ambiente più sicuro sia per gli utenti che per gli amministratori.

Ottimizzazione delle impostazioni del server web

Configura le impostazioni del server per migliorare la sicurezza e disabilitare funzioni non necessarie.

Un server mal configurato può essere un punto debole nel sistema, rendendo più facile per gli aggressori sfruttare vulnerabilità e compromettere l’integrità del sito. Le impostazioni del server influenzano vari aspetti, dall’efficienza nella gestione delle risorse all’abilitazione di protocolli di sicurezza robusti.

La prima cosa da fare è assicurarsi che il software del server sia aggiornato all’ultima versione, per garantire che tutte le patch di sicurezza siano state applicate. Seguono poi una serie di modifiche manuali alle impostazioni, che possono includere la disabilitazione di funzionalità non necessarie, la restrizione degli accessi ai soli IP fidati, e l’abilitazione di algoritmi di crittografia forti per proteggere i dati in transito. Inoltre, è importante impostare correttamente file come il .htaccess o i file di configurazione del server per prevenire, ad esempio, l’accesso diretto a directory sensibili o l’esecuzione di script dannosi. Le impostazioni di cache possono anche essere affinate per migliorare la velocità di caricamento delle pagine, ma bisogna farlo con attenzione per evitare problemi di sicurezza come, ad esempio, la divulgazione di informazioni sensibili.

Sui server web si possono scegliere versioni del database, versioni del linguaggio php e tanti altri dettagli che spesso rendono i siti internet molto veloci e sicuri o viceversa lenti e vulnerabili.

Prendiamo, per esempio, un sito web con una grande quantità di contenuti multimediali come immagini e video. In un caso simile, l’ottimizzazione potrebbe comprendere la configurazione di un Content Delivery Network (CDN) per distribuire i contenuti in modo più efficace e ridurre il carico sul server principale. Questo non migliora solo le prestazioni ma, se configurato correttamente, può anche aggiungere un ulteriore livello di sicurezza, filtrando il traffico malevolo prima che raggiunga il server. L’ottimizzazione delle impostazioni del server web è un processo continuo che richiede un’attenzione costante ai dettagli e una buona comprensione delle best practice sia in termini di prestazioni che di sicurezza.

Rafforzamento della sicurezza delle API

Limita l’accesso alle API solo da indirizzi IP fidati e utilizza autenticazione a token.

Il rafforzamento della sicurezza delle Application Programming Interfaces (API) è fondamentale per garantire che i dati e i servizi siano accessibili solo da client autorizzati e in modo sicuro. Le API sono spesso il punto di interazione tra diverse applicazioni e servizi e, come tali, possono essere un target appetibile per gli attacchi se non adeguatamente protette. La loro sicurezza è cruciale sia per mantenere l’integrità dei dati che per garantire la disponibilità dei servizi.

Una delle prime misure per rafforzare la sicurezza delle API è l’implementazione di un sistema di autenticazione robusto, spesso utilizzando token come OAuth o API keys. Questo assicura che solo client autorizzati possano accedere ai dati o utilizzare le funzionalità esposte dall’API. Oltre a ciò, è importante utilizzare protocolli di crittografia, come HTTPS, per proteggere i dati trasmessi tra il client e l’API. Limitare le richieste provenienti da indirizzi IP o range di indirizzi noti può anche contribuire a ridurre il rischio di attacchi DoS (Denial of Service) o tentativi di forzatura bruta.

Un altro aspetto cruciale è il monitoraggio e la registrazione delle attività. Registrare dettagliatamente chi ha fatto cosa e quando, consente non solo di avere un quadro chiaro dell’utilizzo dell’API, ma offre anche la possibilità di rilevare comportamenti anomali che potrebbero indicare un tentativo di intrusione o abuso. Ad esempio, se una particolare chiave API sta facendo un numero insolitamente alto di richieste, potrebbe essere un segno che quella chiave è stata compromessa e sta venendo utilizzata per scopi malevoli.

Un buon esempio pratico potrebbe essere un’applicazione di e-commerce che utilizza un’API per gestire i pagamenti. Un rafforzamento efficace della sicurezza potrebbe includere la verifica dell’identità del cliente tramite autenticazione a due fattori prima di permettere qualsiasi transazione finanziaria. Inoltre, si potrebbe implementare un sistema che analizza i pattern di utilizzo per rilevare attività sospette, come ad esempio più tentativi falliti di effettuare un pagamento, che potrebbero indicare un tentativo di frode.

Implementazione di restrizioni geografiche

Utilizza strumenti che bloccano l’accesso al sito da regioni geografiche note per attività malevole o non interessate ai nostri contenuti.

L’implementazione di restrizioni geografiche è una tattica di sicurezza che limita l’accesso ai servizi web e alle risorse online in base alla posizione geografica dell’utente. Questa è una misura efficace per ridurre la superficie di attacco, dato che restringe le possibilità per gli utenti non autorizzati di diverse regioni di accedere a sistemi o dati sensibili. Tali restrizioni possono essere impostate a livello di server web, firewall o persino all’interno dell’applicazione stessa, e sono spesso realizzate bloccando gli indirizzi IP che provengono da determinate aree geografiche.

Utilizzare restrizioni geografiche è particolarmente utile per le aziende o le organizzazioni che operano principalmente in una specifica regione o paese. Ad esempio, un’organizzazione governativa potrebbe voler limitare l’accesso ai suoi server ai soli indirizzi IP interni al paese. Allo stesso modo, un servizio di streaming potrebbe avere diritti di contenuto validi solo per una certa area geografica e, quindi, potrebbe voler impedire l’accesso da altri paesi. Questa tecnica è anche utile per minimizzare i rischi associati ad attacchi informatici mirati che possono provenire da specifici paesi o regioni noti per ospitare attività cybercriminali.

Detto ciò, l’implementazione di restrizioni geografiche non è esente da sfide. Gli utenti potrebbero utilizzare VPN o proxy per mascherare la loro posizione effettiva, rendendo così inefficaci le misure di blocco basate sulla geolocalizzazione. Inoltre, le restrizioni geografiche possono talvolta creare problemi legittimi di accesso per gli utenti che viaggiano o che utilizzano servizi di roaming internazionali. Per questo motivo, è importante abbinare le restrizioni geografiche con altre misure di sicurezza, come l’autenticazione a più fattori e il monitoraggio comportamentale, per creare una strategia di sicurezza più completa e robusta.

Un esempio pratico potrebbe essere una banca che permette l’accesso al suo portale online solo da indirizzi IP localizzati nel paese di origine della banca. Questa misura potrebbe essere parte di una strategia più ampia che include anche l’autenticazione a due fattori, il monitoraggio delle attività sospette e altre tecniche per garantire la sicurezza dei conti degli utenti. Così facendo, la banca riduce significativamente le opportunità per gli aggressori esterni di accedere illegalmente ai conti degli utenti.

Uso di un servizio di monitoraggio della reputazione online

Monitora come il tuo sito è percepito online per individuare potenziali problemi di sicurezza.

L’utilizzo di un servizio di monitoraggio della reputazione online è una strategia preventiva che permette di mantenere un controllo costante sulla percezione pubblica del proprio brand, sito web o servizio online. Questi servizi agiscono come una sorta di “sentinella digitale”, eseguendo scansioni regolari sui motori di ricerca, sui social media e su altre piattaforme online per individuare menzioni, recensioni e commenti relativi al tuo marchio. L’obiettivo è identificare e affrontare eventuali segnali negativi prima che possano danneggiare seriamente la reputazione online.

L’importanza di monitorare la reputazione online è particolarmente rilevante in un mondo sempre più digitalizzato, dove una singola recensione negativa o un commento malevolo può avere un impatto significativo sulle decisioni dei potenziali clienti o partner. Oltre a fornire informazioni sulla percezione del pubblico, un servizio di monitoraggio della reputazione può anche aiutare a identificare potenziali rischi per la sicurezza, come la diffusione di informazioni false o fuorvianti, o la presenza di contenuti malevoli che cercano di ingannare gli utenti.

Non è raro che le aziende utilizzino questi servizi in combinazione con altre misure di sicurezza, come la verifica regolare delle vulnerabilità o l’analisi dei log, per avere una visione a 360 gradi del loro profilo di sicurezza. Ad esempio, se un servizio di monitoraggio della reputazione individua una discussione online su una presunta falla di sicurezza nel tuo sito web, questa informazione può essere immediatamente utilizzata per attivare ulteriori verifiche e possibili azioni correttive.

Ecommerce e recensioni
Se un giorno il servizio rileva un aumento di recensioni negative che menzionano problemi con la sicurezza dei pagamenti sul sito, grazie a questa informazione tempestiva, l’azienda può subito indagare e scoprire che effettivamente esiste una vulnerabilità nel sistema di pagamento, risolvendo il problema prima che possa danneggiare ulteriormente la reputazione e la fiducia del cliente.

Sicurezza delle e-mail associate all’account di amministrazione

Utilizza un indirizzo email sicuro e separato per l’account di amministrazione e attiva l’autenticazione a due fattori.

La sicurezza delle e-mail associate all’account di amministrazione è un aspetto fondamentale quando si parla di proteggere un sito web o un sistema informativo. Spesso, la e-mail dell’amministratore è collegata a numerosi servizi e funzioni, diventando di fatto una delle porte di ingresso più vulnerabili per eventuali attacchi informatici. Dalla possibilità di reimpostare password a quella di modificare le impostazioni del sito, l’accesso alla casella di posta elettronica dell’amministratore può avere conseguenze devastanti se compromessa.

Per proteggere adeguatamente queste e-mail, è consigliabile adottare una serie di misure. Prima di tutto, è fondamentale utilizzare una password forte, composta da una combinazione di lettere, numeri e caratteri speciali, e cambiarla regolarmente. L’uso dell’autenticazione a due fattori è un’altra strategia efficace per garantire un ulteriore livello di sicurezza. Inoltre, molti servizi di posta elettronica offrono funzionalità di monitoraggio e notifica per qualsiasi accesso sospetto o non autorizzato alla casella di posta. Questo permette all’amministratore di agire rapidamente in caso di tentativo di intrusione.

Un’altra pratica utile è quella di utilizzare una casella di posta dedicata e separata per le attività di amministrazione. Questo indirizzo e-mail non dovrebbe essere utilizzato per altre attività o registrato su siti e servizi terzi, per ridurre le opportunità di essere preso di mira da attacchi di phishing o altri tipi di ingegneria sociale. È altresì fondamentale mantenere aggiornati i software di protezione come antivirus e filtri anti-spam, così come il sistema operativo e il software della casella di posta.

Se l’e-mail dell’amministratore venisse compromessa a causa della mancanza di autenticazione a due fattori, un attaccante potrebbe quindi avere accesso a tutti i servizi collegati, da quelli di hosting ai sistemi di pagamento, con conseguenze potenzialmente catastrofiche.

Alla fine…

Giunti alla fine di questa lunghissima carrellata sulle best practice da mettere in atto per la sicurezza di un sito WordPress, è chiaro che un utente poco esperto non è in grado di metterle tutte in atto come non è in grado di riconoscere un sito vulnerabile o infetto.

Ecco quindi una seconda lista, breve e sommaria, dei principali sintomi di vulnerabilità o infezione.

Sintomi frequenti di un sito infetto

  • Presenza di contenuti spam nei commenti o nei post
  • Reindirizzamento inaspettato a siti web sospetti
  • Aggiunta di link esterni non autorizzati
  • Si aprono popup indesiderati
  • Messaggi di avviso dai browser riguardo la sicurezza del sito
  • Allarmi o notifiche dai plugin di sicurezza
  • Sito lentissimo a caricare
  • Comportamenti strani nel pannello di amministrazione come disconnessioni inaspettate o cambi nelle impostazioni
  • Segnalazioni da parte degli utenti riguardo comportamenti anomali del sito
  • File e directory sconosciuti nel server web
  • Modifiche non autorizzate ai file di sistema o ai temi e plugin
  • Picchi inaspettati nel traffico web, spesso proveniente da paesi stranieri
  • Ricezione di email dal proprio sito senza ragione apparente
  • Sospensione o disattivazione del servizio hosting per violazione
  • Segnalazioni di motori di ricerca che indicano il sito come non sicuro o infetto
  • Mancata consegna delle email inviate dal sito
  • Alterazioni del codice sorgente di WordPress
  • Errore nella connessione al database senza un motivo apparente
  • Presenza di script o codici sospetti nei file del sito
  • Utilizzo inaspettato delle risorse del server, come CPU o memoria
  • Blocco dell’accesso al pannello di amministrazione di WordPress
  • Rilevamento di attività sospette nei log del server o nei report di monitoraggio
  • Mancata possibilità di installare o aggiornare plugin e temi
  • Contenuto del sito sostituito o vandalizzato
  • Richieste di riscatto o messaggi da parte di hacker
  • Comportamento anomalo dei widget o delle funzionalità del sito
  • Visualizzazione di pagine di errore personalizzate senza ragione apparente

Glossario

CMS : acronimo di Content Management System, è un software che permette di creare e gestire contenuti digitali come siti web, senza necessità di conoscenze tecniche avanzate.
DDos : Distributed Denial of Service. È un tipo di attacco in cui numerosi computer cercano di sovraccaricare un sito web, rendendolo inaccessibile
Brute Force : metodo di attacco che tenta di indovinare una password provando tutte le combinazioni possibili fino a trovare quella giusta
API : acronimo di Application Programming Interface, è un insieme di regole e strumenti che permettono a diverse applicazioni software di comunicare tra loro
HTTP/HTTPS : protocolli usati per trasferire dati su internet. HTTPS è la versione sicura di HTTP e utilizza la crittografia per proteggere le informazioni trasferite