Consulenza

Web security 2/2: 7 script Linux per monitorare lo stato di salute del proprio server

Dopo aver discusso di come identificare e rimuovere script PHP malevoli dal proprio server, vediamo nel presente articolo come sia possibile rendere il proprio server a prova di attacco.


Sostanzialmente l'idea consiste nell'installare 7 script bash che siano in grado di garantire:

  1. Log Analysis: la capacità di analizzare i log prodotti dal web server e dai vari demoni. La realtà attuale è che tutti i demoni Linux scrivono file di log, ma nessuno li va mai ad analizzare. Serve pertanto un sistema che tenga monitorati tali log e che notifichi gli amministratori in caso di attività sospette.

  2. File Integrity Checking: l'idea è che se dei file sul server cambiano o ne compaiono di nuovi e non sono stati gli amministratori a introdurre queste modifiche allora probabilmente è stato qualcuno non autorizzato.

  3. Policy Monitoring: verifica del normale funzionamento del server, secondo le politiche stabilite.

  4. Rootkit Detection: identificazione di shell e backdoor.

  5. Realtime Alerting: notifica via email di eventi e attività sospette.

Tutti gli script presentati di seguito, sono stati sviluppati da Garda Informatica.

1. Monitoring dello stato di occupazione delle partizioni sul disco#

Questo script ciclicamente verifica lo stato di occupazione delle partizioni su disco e se una di queste supera una soglia prestabilita (es. 80%) vengono notificati gli amministratori tramite email.

La realizzazione di tale script è stata trattata nell'articolo Linux: come ricevere una mail quando il disco è quasi pieno

2. Monitoring dello stato dei backup#

All'interno delle politiche di disaster recovery, questo script svolge il ruolo di accertarsi che i backup siano stati eseguiti e che abbiano una dimensione congrua. Se un file di backup non è presente oppure è presente, ma con dimensione inferiore all'atteso, verrà inviata una mail di notifica agli amministratori.

3. Monitoring del filesystem#

Nell'ottica della File Integrity Checking, questo script notifica via email gli amministratori con l'elenco di tutti i file modificati dall'ultima esecuzione dello script.

E' comparso un nuovo file? E' cambiato un file già presente? Questo script ce lo farà sapere.

Molto utile nel caso in cui l'attaccante sia riuscito a superare le nostre barriere e sia riuscito a installare shell, backdoor, malware, ecc.

4. Monitoring della posta in uscita dal server#

Questo script serve per contrastare lo SPAM veicolato attraverso il proprio server, contando il numero di email che vengono inviate in uscita nell'unità di tempo. Se tale valore supera una certa soglia (es. tot email al minuto), gli amministratori verranno avvertiti attraverso una notifica via email.

Chiaramente tutte queste soglie vanno impostate in base al normale traffico del server. Se il proprio server, in condizioni normali, invia 10 email al minuto, 100 email al minuto potrebbe essere una soglia ragionevole per identificare attività sospette.

5. Monitoring degli accessi ai file#

Questo script tiene controllato il numero di accessi a file PHP nell'unità di tempo. Se questo valore supera una data soglia gli amministratori verranno notificati via email con l'informazione del file PHP, il numero di accessi.

Questo script è molto utile per potersi accorgere di attacchi di tipo DDos e/o Brute Force.

Tipicamente i file oggetto delle notifiche saranno quelli deputati alla login.

6. Monitoring degli IP#

Questo script conteggia il numero di richieste pervenute da uno stesso IP nell'unità di tempo. Anche qui c'è una soglia che se superata scatena una notifica via email agli amministratori riportante l'IP e il numero di richieste effettuate.

Questo script, un po' come quello precedente, è molto utile per potersi accorgere di attacchi di tipo Dos e/o Brute Force.

In questo caso però si può prendere il provvedimento di bannare l'IP responsabile di tutte le request.

7. Monitoring dei protocolli SSH, SMTP, POP3, IMAP e FTP#

Questo script, utilizzando fail2ban , è in grado di bannare gli IP che effettuano un certo numero di tentativi di accesso falliti nell'unità di tempo.

Qualcuno sta lanciando un attacco Brute Force per tentare di accedere alla shell SSH? Questo script lo impedirà.

Conclusione#

Acquistare un cloud hosting aggiornato e con le ultime versioni dei pacchetti software installati, non è sufficiente per garantire la sicurezza dello stesso. Come abbiamo visto in questo articolo si rendono necessari dei campanelli d'allarme che aiutino l'amministratore a tracciare e tenere sotto controllo attività sospette che potrebbero precedere un attacco.

ATTENZIONE: SERVIZIO DI CONSULENZA SOSPESO#

Non offriamo più questo tipo di consulenza.

Questo articolo resta per documentare un'attività che abbiamo svolto in passato, ma che non facciamo più.

Votazione pagina#

[Voti: 24 Media voto: 4.7/5]
Autore: Lorenzo Chiodi
Senior software developer con più di 10 anni di esperienza nello sviluppo di soluzioni web based, enterprise, su misura. Dal 2011 socio fondatore di Garda Informatica Snc condivide questa avventura col fratello Giovanni.

Promemoria sui Cookie e sulla Privacy

Leggi l'informativa
closeIcona closesearchIcona searchmore vertIcona more vertmenuIcona menulinkIcona link