10 consigli per migliorare la sicurezza del tuo sito web
Avere un sito web è diventato molto facile grazie alla proliferazione di grandi strumenti e servizi nello sviluppo web. I sistemi di gestione dei contenuti (CMS) come WordPress, Joomla!, Drupal, Magento e altri consentono ai proprietari di aziende di creare rapidamente una presenza online. Le architetture CMS altamente estensibili, i ricchi plug-in e i moduli efficaci hanno ridotto la necessità di impiegare anni a imparare lo sviluppo web prima di iniziare a costruire un sito web.
La facilità di lanciare un business online o un sito web personale è grande. Tuttavia, ci sono alcuni effetti collaterali negativi. Vediamo molti webmaster che non capiscono come assicurarsi che il loro sito web sia sicuro. C’è un equivoco quando si tratta di capire l’importanza di proteggere il proprio sito Web e chi ne è responsabile.
Vediamo quali sono i 10 passaggi principali che tutti i proprietari di siti web dovrebbero adottare per mantenere sicuro il loro sito web.
1 – Aggiorna, aggiorna, aggiorna!
2 – Password
3 – Un sito = un contenitore
4 – Accesso utente sensibile
5 – Modifica le impostazioni CMS predefinite!
6 – Selezione delle estensioni
7 – Backup
8 – File di configurazione del server
9 – Installa SSL
10 – Autorizzazioni file
Conclusione
1 – Aggiorna, aggiorna, aggiorna!
Questo è qualcosa che si deve sempre sottolineare. Innumerevoli siti web sono compromessi ogni giorno a causa di software obsoleti e insicuri.
È incredibilmente importante aggiornare il sito non appena è disponibile un nuovo plug-in o versione di CMS. Questi aggiornamenti potrebbero contenere solo miglioramenti della sicurezza o correggere una vulnerabilità.
La maggior parte degli attacchi ai siti web sono automatizzati. I bot scansionano costantemente il web per individuare qualsiasi opportunità di sfruttamento. Non è più sufficiente aggiornare un sito una volta al mese o anche una volta alla settimana perché è molto probabile che i bot trovino una vulnerabilità prima che tu faccia gli aggiornamenti.
Questo è il motivo per cui raccomandiamo l’uso di un firewall per i siti Web, che rattoppano virtualmente il buco della sicurezza non appena vengono rilasciati gli aggiornamenti.
2 – Password
Avere un sito web sicuro dipende molto dal tuo atteggiamento sulla sicurezza. Hai mai pensato a come le password che usi possono minacciare la sicurezza del tuo sito web?
Per ripulire i siti web infetti, è spesso necessario accedere al sito o al server di un cliente utilizzando i dettagli degli utenti amministratori. È incredibile come possano essere insicure le password di root. Con login come admin/admin è praticamente come non avere alcuna password.
Ci sono molte liste di password violate a disposizione online. Gli hacker combinano questi elenchi di parole del dizionario per generare elenchi ancora più grandi di potenziali password. Se le password che usi sono in uno di questi elenchi, è solo una questione di tempo prima che il tuo sito venga compromesso.
I nostri consigli per avere una password sicura sono:
- Non riutilizzare le tue password. Ogni singola password che hai dovrebbe essere unica. Un gestore di password può rendere la procedura più semplice.
- Usare password lunghe. Prova più di 12 caratteri. Più lunga è la password, più tempo impiegherà un programma per decrittografarlo.
- Usa password casuali. I programmi di cracking delle password possono indovinare milioni di password in pochi minuti se contengono parole trovate online o nei dizionari. Se hai parole reali nella tua password, dovresti pensarci. Se puoi facilmente dire la tua password, significa che non è abbastanza forte. Anche l’uso della sostituzione di caratteri (ovvero la sostituzione della lettera O con il numero 0) non è sufficiente.
Esistono diversi utili gestori di password come “LastPass” (online) e “KeePass 2” (offline).
Questi strumenti geniali memorizzano tutte le tue password in un formato crittografato e possono facilmente generare password casuali con un clic di un pulsante. I gestori di password consentono di utilizzare password complesse eliminando il processo di archiviazione di quelli più deboli o annotandoli.
3 – Un sito = un contenitore
Sappiamo che l’hosting di molteplici siti Web su un singolo server può sembrare ideale, soprattutto se si dispone di un piano di hosting web “illimitato”. Sfortunatamente, questa è una delle peggiori pratiche di sicurezza che vediamo comunemente. Ospitare molti siti nella stessa posizione crea una superficie di attacco molto grande. È necessario essere consapevoli che la contaminazione tra siti è molto comune. In sostanza si verifica quando un sito è influenzato negativamente dai siti vicini all’interno dello stesso server a causa di uno scarso isolamento o di configurazioni errate dell’account.
Ad esempio, un server che contiene un sito potrebbe avere una singola installazione di WordPress con un tema e 10 plugin che possono essere potenzialmente presi di mira da un utente malintenzionato. Se si ospitano 5 siti su un singolo server, ora un utente malintenzionato potrebbe disporre di tre installazioni WordPress, due installazioni Joomla, cinque temi e 50 plugin che possono essere potenziali target. A peggiorare le cose, una volta che un utente malintenzionato ha trovato un exploit su un sito, l’infezione può diffondersi facilmente su altri siti sullo stesso server.
Non solo è possibile che tutti i siti vengano violati contemporaneamente, ma rende anche il processo di pulizia molto più lungo e difficile. I siti infetti possono continuare a reinfettarsi l’un l’altro, causando un ciclo infinito.
Dopo che la pulizia ha avuto successo, ora hai un compito più grande e si tratta di reimpostare le password. Invece di un solo sito, ne hai un numero elevato. Ogni singola password associata a ogni sito web sul server deve essere cambiata dopo che l’infezione è scomparsa. Ciò include tutti i database CMS e gli utenti FTP (File Transfer Protocol) per ognuno di questi siti Web. Se salti questo passaggio, i siti web potrebbero essere nuovamente reinfettati e tu sarai di nuovo al punto di partenza.
4 – Accesso utente sensibile
Questa regola si applica solo ai siti che hanno più utenti o account di accesso. È importante che ogni utente abbia il permesso appropriato di cui ha bisogno per svolgere il proprio lavoro. Se autorizzazioni momentanee sono necessarie, concedile. Quindi riducile una volta completato il lavoro. Questo è un concetto noto come minimo privilegio.
Ad esempio, se qualcuno desidera scrivere per te un post sul blog ospite, assicurati che il loro account non disponga di privilegi di amministratore completi. L’account del tuo amico dovrebbe essere in grado di creare nuovi post e modificare i propri post perché non è necessario che sia in grado di modificare le impostazioni del sito web.
Avere ruoli utente e regole di accesso ben definiti limiterà ogni errore che si possa fare. Riduce inoltre la ricaduta di account compromessi e può proteggere dal danno arrecato dagli utenti “canaglia“. Questa è una parte frequentemente trascurata della gestione degli utenti: responsabilità e monitoraggio. Se più persone condividono un singolo account utente e viene apportata una modifica indesiderata da parte di quell’utente, in che modo scopri quale persona del tuo team era responsabile?
Una volta che hai account separati per ogni utente, puoi tenere d’occhio il loro comportamento esaminando i log e conoscendo le loro usuali tendenze, come quando e dove normalmente accedono al sito web. In questo modo, se un utente accede ad un’ora strana o da una posizione sospetta, puoi indagare.
Mantenere i registri di controllo è vitale per mantenere il controllo di eventuali modifiche sospette al tuo sito web. Un registro di controllo è un documento che registra gli eventi in un sito web in modo da poter individuare le anomalie e confermare con la persona responsabile che l’account non è stato compromesso.
Sappiamo che potrebbe essere difficile per alcuni utenti eseguire i registri di controllo manualmente. Se si dispone di un sito Web WordPress, è possibile utilizzare il plugin di sicurezza gratuito di Sucuri che può essere scaricato dal repository ufficiale di WordPress.
5 – Modifica le impostazioni CMS predefinite!
Le odierne applicazioni CMS (anche se facili da usare) possono essere ingannevoli dal punto di vista della sicurezza per gli utenti finali. Gli attacchi di gran lunga più comuni contro i siti web sono completamente automatizzati. Molti di questi attacchi si basano sul fatto che gli utenti usano le impostazioni predefinite.
Ciò significa che è possibile evitare un numero elevato di attacchi semplicemente modificando le impostazioni predefinite durante l’installazione del CMS prescelto.
Ad esempio, alcune applicazioni CMS sono scrivibili dall’utente, consentendo a un utente di installare qualsiasi estensione desiderata.
Ci sono impostazioni che potresti voler regolare per controllare i commenti, gli utenti e la visibilità delle informazioni dell’utente. I permessi dei file, (di cui parleremo in seguito) sono un altro esempio di un’impostazione predefinita che può essere rafforzata.
Puoi modificare questi dettagli predefiniti durante l’installazione del tuo CMS o successivamente, ma non dimenticare di farlo.
6 – Selezione delle estensioni
L’estensibilità delle applicazioni CMS è qualcosa che i webmaster di solito amano, ma può anche rappresentare uno dei maggiori punti deboli. Ci sono plugin, componenti aggiuntivi ed estensioni che forniscono praticamente qualsiasi funzionalità che tu possa immaginare. Ma come fai a sapere quale è sicuro da installare?
Ecco le cose che cerco sempre al momento di decidere quali estensioni utilizzare:
- Quando l’estensione è stata aggiornata l’ultima volta: se l’ultimo aggiornamento è stato più di un anno fa, mi potrei preoccupare che l’autore abbia smesso di lavorarci su. Preferisco di gran lunga utilizzare le estensioni che vengono sviluppate attivamente perché indica che l’autore sarebbe almeno disposto a implementare una correzione se vengono rilevati problemi di sicurezza. Inoltre, se un’estensione non è supportata dall’autore, potrebbe non funzionare più se gli aggiornamenti principali causano conflitti.
- L’età dell’estensione e il numero di installazioni: un’estensione sviluppata da un autore affermato con numerose installazioni è più affidabile di quella con un numero limitato di installazioni rilasciate da uno sviluppatore principiante. Non solo gli sviluppatori esperti hanno un’idea migliore delle migliori pratiche di sicurezza, ma hanno anche molte meno probabilità di danneggiare la loro reputazione inserendo codice maligno nella propria estensione.
- Fonti legittime e attendibili: scarica plug-in, estensioni e temi da fonti legittime. Fai attenzione alle versioni gratuite piratate e infette da malware. Ci sono alcune estensioni il cui unico obiettivo è quello di infettare il maggior numero possibile di siti Web con malware.
7 – Backup
Avere un sito web compromesso non è qualcosa che ti piacerebbe provare, ma non devi essere preso alla sprovvista nel caso in cui accada il peggio.
Avere un backup del sito web è fondamentale per il ripristino da un grave incidente di sicurezza. Anche se non dovrebbe essere considerato una sostituzione all’avere una soluzione di sicurezza, un backup può aiutare a recuperare i file danneggiati.
Una buona soluzione di backup dovrebbe soddisfare i seguenti requisiti:
- Innanzitutto, devono essere in un posto diverso dal server di produzione. Se i tuoi backup sono archiviati nel server del tuo sito web, sono vulnerabili agli attacchi come qualsiasi altra cosa lì dentro. È necessario mantenere i backup fuori sede proprio perché si desidera proteggere i dati archiviati dagli hacker e da guasti hardware. Anche l’archiviazione dei backup sul server web è un grave rischio per la sicurezza. Questi backup invariabilmente contengono versioni senza patch del tuo CMS ed estensioni, consentendo agli hacker un facile accesso al tuo server.
- In secondo luogo, i tuoi backup dovrebbero essere automatici. Fai così tante cose ogni giorno che dover ricordare di fare il backup del tuo sito web potrebbe essere impensabile. Utilizza una soluzione di backup che può essere programmata per soddisfare le esigenze del proprio sito Web.
- Per finire, avere un recupero affidabile. Ciò significa disporre di backup dei backup e testarli per assicurarsi che funzionino effettivamente. Avrai bisogno di più backup per la ridondanza. in tal modo è possibile ripristinare i file da un punto prima che si verifichi l’hack.
8 – File di configurazione del server
Scopri i file di configurazione del tuo server web:
- I server Web Apache utilizzano il file .htaccess,
- I server Nginx utilizzano nginx.conf,
- I server Microsoft IIS utilizzano web.config.
Molto spesso presenti nella directory web di root, i file di configurazione del server sono molto potenti. Ti consentono di eseguire le regole del server, comprese le direttive che migliorano la sicurezza del tuo sito web.
Se non sei sicuro di quale server web utilizzi, controlla il tuo sito web tramite Sitecheck e fai clic sulla scheda “Dettagli del sito web“.
Ecco alcune regole che ti consiglio di ricercare e aggiungere per il tuo server web particolare:
- Impedisci la navigazione nella directory: impedisce agli utenti malintenzionati di visualizzare il contenuto di ogni directory sul sito web. Limitare le informazioni disponibili agli aggressori è sempre un’utile precauzione di sicurezza.
- Impedire l’hotlinking delle immagini: sebbene questo non sia strettamente un miglioramento della sicurezza, impedisce ad altri siti Web di visualizzare le immagini ospitate sul tuo server web. Se le persone avviano le immagini hotlinking dal tuo server, la quantità di larghezza di banda del tuo piano di hosting potrebbe essere rapidamente consumata visualizzando le immagini per il sito di qualcun altro.
- Proteggi file sensibili: puoi impostare regole per proteggere determinati file e cartelle. I file di configurazione CMS sono uno dei file più sensibili memorizzati sul server Web in quanto contengono i dettagli di accesso al database in testo normale. Altre posizioni, come le aree di amministrazione, possono essere bloccate. È inoltre possibile limitare l’esecuzione di PHP nelle directory che contengono immagini o consentono di caricare.
9 – Installa SSL
SSL è l’acronimo di Secure Sockets Layer. È la tecnologia di sicurezza standard per stabilire un collegamento crittografato tra un server Web e un browser.
Ero riluttante a includere SSL come suggerimento per migliorare la sicurezza del tuo sito web perché ci sono molte informazioni fuorvianti che suggeriscono che l’installazione di SSL risolverà tutti i tuoi problemi di sicurezza.
Cerchiamo di essere chiari: SSL non fa nulla per proteggere il tuo sito dagli attacchi dannosi e non gli impedisce di distribuire malware.
Sucuri ha scritto un post sul blog per spiegare la differenza tra SSL e sicurezza del sito web.
SSL crittografa le comunicazioni tra il punto A e il punto B, ovvero il server del sito web e il browser del visitatore. Questa crittografia è importante per una ragione specifica. Impedisce a chiunque di essere in grado di intercettare quel traffico, noto come attacco Man in the Middle (MITM). SSL è un ottimo modo per proteggere password e dati della carta di credito (così come altri dati sensibili) e iniziative come Let’s Encrypt l’hanno reso accessibile gratuitamente.
Con la spinta di Google a etichettare il sito Web HTTP come “Non sicuro“, SSL è fondamentale per tutti i siti web. Forzare HTTPS è inevitabile per i siti web di e-commerce e per qualsiasi sito Web che accetta l’invio di moduli con dati utente sensibili o informazioni personali identificabili (PII).
Il certificato SSL protegge le informazioni dei visitatori in transito, che a sua volta ti protegge dalle multe e dai problemi legali derivanti dall’essere non conformi con PCI DSS.
10 – Autorizzazioni file
Le autorizzazioni file definiscono chi può fare cosa su un file.
Ogni file ha 3 autorizzazioni disponibili e ogni autorizzazione è rappresentata da un numero:
- ‘Leggi‘ (4): visualizza il contenuto del file.
- ‘Scrivi‘ (2): modifica il contenuto del file.
- ‘Esegui‘ (1): esegue il file di programma o lo script.
Se desideri consentire più autorizzazioni, aggiungi semplicemente i numeri insieme, ad es. per consentire la lettura (4) e la scrittura (2) si imposta l’autorizzazione dell’utente su 6. Se si desidera consentire a un utente di leggere (4), scrivere (2) ed eseguire (1), impostare l’autorizzazione dell’utente su 7.
Ci sono anche 3 tipi di utente:
- Proprietario – Generalmente il creatore del file, ma questo può essere modificato. Solo un utente può essere il proprietario.
- Gruppo: a ogni file viene assegnato un gruppo e tutti gli utenti che fanno parte di quel gruppo otterranno queste autorizzazioni.
- Pubblico – Tutti gli altri.
Pertanto, se si desidera che il proprietario abbia accesso in lettura e scrittura, che il gruppo disponga dell’accesso solo in lettura e che il pubblico non abbia accesso, le impostazioni di autorizzazione dei file devono essere:

Quando si visualizzano i permessi del file, questo verrà mostrato come 640.
Le cartelle hanno anche la stessa struttura di autorizzazioni. L’unica differenza è che il flag “execute” consente di creare la directory nella directory di lavoro. Di solito lo si setta su on.
La maggior parte delle installazioni CMS ha tutte le autorizzazioni configurate correttamente per impostazione predefinita. Quindi, perché ho passato così tanto tempo a spiegare come funzionano le autorizzazioni? Durante la ricerca di soluzioni per gli errori di autorizzazione, in tutto il Web troverai persone disinformate che ti consigliano di modificare i permessi dei file su 666 o le autorizzazioni di cartella su 777.
Questo consiglio di solito risolverà eventuali errori di autorizzazione, ma è un pessimo consiglio dal punto di vista della sicurezza.
Se si imposta un permesso per il file 666 o l’autorizzazione per la cartella su 777, si è appena consentito a * chiunque * di inserire codice dannoso o eliminare i file!
Conclusione
Se segui questi passaggi relativamente semplici, aumenterai la sicurezza del tuo sito web. Sebbene questi passaggi da soli non garantiscano che il tuo sito non venga mai violato, il loro seguito interromperà la maggior parte degli attacchi automatizzati, riducendo la tua posizione di rischio generale.
Essere consapevoli di questi problemi e comprenderli ti fornirà preziose informazioni su come funziona la tecnologia sottostante. Ti aiuterà anche a diventare un migliore webdesigner / operatore del web.
Traduzione autorizzata da Sucuri che detiene il copyright dell’articolo. Leggi l’articolo originale di Keir Desailly, Firewall Analyst Sucuri(in Inglese)
Lascia un commento