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.
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:
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.
Un sito manomesso ha ovviamente ricadute negative. In primo luogo va ripulito perché:
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.
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.
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.
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
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.
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.
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!
Si tratta dello spazio fisico del nostro hosting dove sono presenti i file del nostro sito.
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?
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
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:
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.
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.
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.
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.
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.