Sicurezza di un Sito Web: strumenti e consigli.

Possedere e gestire un sito web contempla una serie di attività come la gestione di un blog, l’utilizzo ottimizzato delle pratiche SEO, la gestione della popolarità tramite condivisione sui social network, e chi più ne ha più ne metta. Ma gli aspetti gestionali non si limitano solo a queste pratiche. Un aspetto molto importante che spesso viene trascurato è quello della sicurezza di un sito web.
Ogni giorno la maggior parte dei siti internet sono costantemente sotto attacco, senza che noi ce ne accorgiamo: si tratta di attacchi standard di una nicchia di utenti del web che provano a capire se il nostro sito presenta delle falle da sfruttare per poter prenderne possesso.
PERCHÈ DOVREBBERO ATTACCARE PROPRIO ME?
Questa è la classica domanda che mi viene posta quando parlo di sicurezza di un sito web. Per rispondere c’è bisogno di capire chi sono i soggetti che attaccano un sito internet.
Spesso pensiamo ad un hacker, pensiamo ad anonymous. No non si tratta di loro. Per definizione un hacker è colui che risolve problemi in modo creativo e che è dotato di uno spiccato pensiero laterale. Un hacker è colui che smonta un dispositivo per capire com’è fatto (per poi rimontarlo) o un esperto informatico che cerca di capire quali sono le falle di un sistema o di un software per porre rimedio o per trovarne il modo di fronteggiare eventuali attacchi malevoli. Ci sono anche gli hacker etici, coloro che violano determinati siti o sistemi perché seguono un ideale.
Poi ci sono quelli cattivi: i cracker. Sono loro che attaccano noi che non abbiamo fatto niente di male. Per quale motivo? Alcuni dei principali motivi possono essere i seguenti:
- prendere possesso dello spazio fisico che ospita il nostro sito (ftp, a volte anche database) per piazzare delle pagine fraudolente e rubare dati sensibili (numeri di carte di credito ad esempio);
- esercitarsi nelle pratiche di cracking (cosa che fanno i novizi);
- creare dei reindirizzamenti a pagine web ben definite;
- fare concorrenza ai propri competitors;
- e così via…
Alla luce di ciò è quindi chiara la risposta alla nostra domanda iniziale, e diventa più evidente il fatto che bisogna non sottovalutare la sicurezza di un sito web.
LE RICADUTE CHE HA UN SITO WEB MANOMESSO
Un sito manomesso ha ovviamente ricadute negative. In primo luogo va ripulito perché:
- non è più navigabile
- può causarci diverse seccature, soprattutto se contiene pagine fraudolente (con conseguente segnalazione da parte della polizia postale)
- viene penalizzato da Google e addirittura cancellato dai suoi indici
- ci costerà tempo e denaro ripulirlo e rimetterlo online
- e soprattutto ci farà sentire impotenti e ansiosi perché: non avremo più il nostro sito internet!
SICUREZZA DI UN SITO WEB: PREVENIRE GLI ATTACCHI
Come diceva un famoso slogan, prevenire è meglio che curare. La sicurezza di un sito web non è mai certa al 100%, ma è sempre meglio individuare e prevenire quelle criticità che sono evidenti (come da best practice del project management: l’analisi dei rischi).
Le best practice da seguire per la sicurezza di un sito web sono di vario tipo: alcune sono semplici e attuabili anche dai meno esperti e che in questo articolo per semplicità di trattazione chiamerò best practices gestionali; altre invece richiedono conoscenze informatiche: queste le chiamerò best practice informatiche.
Ma esiste una terza e unica best practice, accessibile e attuabile da tutti: avere pazienza, dedizione e costanza.
Di solito questa pratica non viene mai seguita, sebbene sia la più semplice ed accessibile. Negli ultimi mesi, infatti, ho eseguito la pulizia di circa dieci siti web e analizzato alcune falle di siti web sotto attacco che non erano ben gestiti a livello di sicurezza: e si tratta di clienti che non hanno avuto la pazienza e la costanza di monitorare il proprio sito.
Ma veniamo alle best practice per la sicurezza di un sito web, che descriverò di seguito, senza entrare nei dettagli, ma cercando di dare alcuni spunti utili riguardo la sicurezza.
BEST PRACTICE GESTIONALI
Queste prassi riguardano la gestione del proprio sito e che si riflettono sulla sicurezza di un sito web; sono maggiormente indirizzate a coloro i quali posseggono un sito web realizzato con CMS quali WordPress, Joomla!, Prestashop, Magento.
Mantieni aggiornato il tuo CMS.
Che si tratti di WordPress o di altri CMS è sempre importante fare gli aggiornamenti alle ultime versioni. Questa è una regola basilare per la sicurezza di un sito web. Spesso gli aggiornamenti vengono rilasciati perché i codici presentano delle falle, ossia delle lacune che possono essere prese di mira da utenti malintenzionati per attaccare il nostro sito internet.
Aggiorna sempre i plugin
Plugin o componenti ed estensioni per chi usa Joomla!. Aggiornali costantemente per lo stesso motivo di cui sopra. Anche questa è una regola basilare per la sicurezza di un sito web
Qualità dei componenti aggiuntivi
Utilizza plugin, moduli, componenti, realizzati da sviluppatori che stanno sul pezzo! Un plugin deve essere sempre aggiornato, per lo stesso motivo spiegato nel punto 1. Anche questo fattore è fondamentale per la sicurezza di un sito web.
- Prima di scaricare un plugin verifica il change log: si tratta della storia dello sviluppo del plugin, che elenca tutti gli aggiornamenti effettuati dai suoi sviluppatori e la data di rilascio. Installare un plugin che non viene aggiornato da un anno può essere un rischio.
- Verifica sempre le recensioni degli utenti che lo hanno utilizzato.
Non utilizzare plugin che non servono
Se ne hai installati alcuni che non utilizzi ti consiglio di cancellarli! Meno plugin utilizzi, meglio è! Ti chiederai “ok, ma io ho bisogno di un sito gradevole, ho bisogno di molti plugin”. Io ti rispondo che, a meno che non si tratti di funzionalità indispensabili, la qualità di un sito web dipende anche da come viene creato e non c’è bisogno di utilizzare tanti plugin per avere un risultato professionale e bello. E questo è il compito e il mestiere di un esperto sviluppatore web.
Informati sullo stato di sicurezza dei componenti aggiuntivi
Per informarti sullo stato di sicurezza di un plugin ti consiglio di fare una ricerca su Google e dare un’occhiata ai siti che elencano le ultime vulnerabilità del CMS stesso e dei suoi plugin. Di seguito vi elenco i siti dove vengono segnalate le vulnerabilità dei plugin di WordPress e per le estensioni di Joomla!
- Lista Vulnerabilità Joomla!
- Lista Vulnerabilità WordPress
- Per CMS come Prestashop (ottimo per gli e-commerce) la situazione riguardo i plugin è più sotto controllo, ma è sempre bene tenerli monitorati. Prestashop ha una grande quantità di plugin nativi che ne rendono non necessaria l’installazione di altri, salvo casi eccezionali (ma sono costosi e robusti).
Mantieni pulito lo spazio FTP
Si tratta dello spazio fisico del nostro hosting dove sono presenti i file del nostro sito.
- Evita di creare o caricare cartelle inutili. Se proprio hai l’esigenza di crearle fallo da pannello di amministrazione.
- Nel caso tu voglia farlo da client ftp fai attenzione all’assegnazione dei permessi a cartelle e file.
- Quando carichi file e cartelle da ftp, controlla sempre che i permessi assegnati siano quelli giusti (di solito 755 per cartelle, 644 per i file).
Mi capita spesso qdi dover eliminare dallo spazio ftp di un sito una cartella __MACOSX__. Si tratta di una cartella di metadati creata dai Mac, invisibile agli utenti, ma che diventa visibile quando copiamo dei contenuti da Mac a Windows o Linux. Quando si presenta? Il caso classico avviene quando comprimiamo un file sul Mac e lo scompattiamo su un PC o Server con sistema operativo diverso (Windows o Linux ad esempio). Bene, questa ad oggi rappresenta un vulnerabilità, soprattutto per chi possiede un sito in WordPress (lo rende soggetto ad exploit). Lo avreste mai pensato?
SINTOMI DI UN ATTACCO
Quando il vostro sito web potrebbe essere sotto attacco? Io direi: sempre! Molti malintenzionati sono li pronti a scovare e valutare la sicurezza di un sito web. Se provate ad installare plugin ed estensioni sul vostro sito internet, che vi inviano una mail ogni volta che c’è un tentativo di attacco, vi troverete la casella di posta elettronica piena di avvisi.
A tale proposito vi segnalo
- questa lista di Plugin per WordPress
- questa estensione per Joomla!
Il problema quindi non è quello di evitare gli attacchi ma garantire la sicurezza di un sito web.
L’utilizzo dei plugin può a volte risultare una prassi incompleta. Alcuni segnali di attacco possono essere:
- Un’eccessiva registrazione giornaliera di utenti sul vostro sito.
- Strani reindirizzamenti a pagine che non conosciamo.
- Un’eccessivo utilizzo di banda sul vostro hosting.
- Un eccessivo accesso ad una cartella del vostro sito da parte di un gruppo ristretto di utenti (fate un’analisi incrociata delle statistiche degli accessi sul vostro sito).
- Segnalazione da parte di Google.
BEST PRACTICE INFORMATICHE
Queste sono utili per chi gestisce il proprio sito e “smanetta” con i codici e/o con i database. Per la sicurezza di un sito web la regola d’oro è di toccare il meno possibile il codice; ma nel caso in cui si sente l’esigenza di farlo è sempre bene seguire le best practice per gli sviluppatori e utilizzare al meglio le API fornite dalla comunità.
Per chi ha dimestichezza con i codici informatici o per chi avrebbe il piacere di farlo, segnalo due tools scritti con il linguaggio Python, i quali ci forniscono informazioni sulla sicurezza di un sito web, indicandoci alcune delle vulnerabilità presenti sul nostro sito.
EXPLOIT DATABASE
Questo è il sito di uno dei progetti di Offensive Security, che tra l’altro curano le release di Kali Linux, versione del sistema operativo Linux adattata per analizzare (e a volte compiere) attacchi a sistemi, reti, siti, e soprattutto utilizzata per analisi di informatica forense.
Exploit Database fornisce una lista sempre aggiornata di exploit di diversi sistemi vulnerabili a questo tipo di attacco. In parole povere un exploit è una tecnica che permette di scalare i privilegi di un sistema e diventarne amministratori. Per intenderci: se fanno un attacco exploit al vostro sito e va a buon fine, ne diventato proprietari! Questo equivale a dare nome utente e password del pannello di amministrazione del vostro hosting.
GHDB
Anche Google Hacking Database (GDHB) è un progetto di Offensive Security. Esso mostra svariate vulnerabilità, mostrandole nei risultati di ricerca su Google.
Se andiamo sul sito e digitiamo come chiave di ricerca la parola WordPress, tra le varie vulnerabilità ci appare l’exploit di siti WordPress che contengono cartelle __MACOSX__, di cui abbiamo parlato prima.
Esso mostra inoltre vulnerabilità a iniezioni SQL (SQL Injection), pratica che permette di sfruttare falle del database, iniettando in esso del codice. Per far cosa? Per rubarvi dati e password.
PLECOST
Ecco qui un tool scritto in linguaggio Python (e presente in Kali Linux). Si chiama Plecost, e serve per individuare vulnerabilità sui siti internet, in particolar modo per i siti in WordPress.
Nella repository Github del tool è possibile scaricare il tool oltre che vedere come funziona. Potete utilizzarlo anche se non siete esperti informatici. Vi basta scaricare e installare l’interprete Python e lanciare i comandi come descritto nella mini guida.
NOTA
I tool appena descritti sono stati menzionati per scopo educativo e soprattutto a scopo di monitoraggio del proprio sito. Come ogni strumento utile, esso può essere utilizzato anche per scopi malevoli, pratiche da cui mi dissocio.