Ogni notte a mezzanotte, sui nostri server, parte un programma che abbiamo scritto noi: il BNGH Security Scanner. Esegue 67 controlli, scrive un rapporto e ce lo manda per email.
Lo avvia cron, il servizio di Linux che lancia comandi a orari fissi. L'orario si scrive così:
0 0 * * *
Si legge da sinistra: minuto 0, ora 0, qualsiasi giorno del mese, qualsiasi mese, qualsiasi giorno della settimana. Mezzanotte, tutte le notti.
Perché uno scanner nostro
Antivirus e scanner pronti da comprare esistono, e fanno il loro mestiere. Il loro limite è che sono generici: non sanno cosa è normale sui nostri server.
Non sanno quali cartelle cambiano ogni giorno e quali dovrebbero restare ferme. Su una macchina con molti siti, un controllo che non conosce il contesto tende a riempire la casella di falsi allarmi, o a lasciar passare proprio quello che conta.
Un esempio concreto: in una cartella di caricamenti un file nuovo al giorno può essere normale, ma solo se è un'immagine. Saperlo richiede di conoscere quel sito.
Uno scanner scritto da chi gestisce il server parte da un'idea precisa di come dovrebbe essere la macchina, e segnala quello che se ne allontana.
Cosa controlla
I 67 controlli non li elenchiamo uno per uno: un elenco pubblico sarebbe un aiuto per chi vuole aggirarli. Le categorie sono queste, per esempio:
- File modificati di recente in cartelle dove non dovrebbero esserci. Un file PHP comparso ieri nella cartella delle immagini caricate è quasi sempre un brutto segno.
- Utenti amministratori nuovi nei siti.
- Firme di attacchi noti, cioè gli indizi che un attacco già visto lascia dietro di sé.
- Permessi sbagliati su file e cartelle, che lasciano scrivere chi non dovrebbe.
Se è critico, non aspetta
Gran parte dei risultati finisce nel rapporto, e lo leggiamo la mattina. Se però lo scanner trova un problema CRITICO, disattiva da solo la cosa pericolosa senza aspettare noi.
È una scelta voluta. Un attacco riuscito alle due di notte avrebbe ore di vantaggio prima che qualcuno legga la mail. Fermare subito la cosa pericolosa costa al massimo un piccolo disservizio, che poi rivediamo con calma.
Le firme crescono
Lo scanner conosce le firme degli attacchi che abbiamo già incontrato, e l'elenco si allunga. Ogni volta che ne vediamo uno nuovo, ne ricaviamo gli indizi e li aggiungiamo.
In questo modo un attacco visto una volta, su un sito qualsiasi, viene cercato da quella notte in poi su tutti i server.
Il rapporto arriva sempre
Cosa non fa
Lo scanner non sostituisce aggiornamenti, backup e firewall. È uno strato in più, che ogni notte guarda se qualcosa è cambiato dove non doveva.
Se gestite dei server e vi chiedete da dove partire, cominciate da una domanda: cosa è normale sulla mia macchina? Una volta scritto, tutto quello che se ne discosta si può controllare.


