Consulenze tecnologiche e informatiche
Linux e AEM per la sicurezza dei file

Linux e AEM per la sicurezza dei file

Dovendo rilasciare un sito basato su un CMS tra quelli più colpiti da tentativi di intrusione, mi sono posto il problema se partire subito con una soluzione di sicurezza esterna, come già fatto in passato, oppure se usare un metodo nativo e fonderlo con le capacità di azione del prodotto Autotask Endpoint Managment (AEM), il cui agente è già presente sul server che ospita il sito.

La scelta in questa fase è caduta sulla soluzione locale, anche per non gravare ulteriormente sui costi con soluzioni esterne di terze parti.

Quanto scritto nel seguito è focalizzato su Linux, tuttavia può essere eseguito anche in ambienti Microsoft Windows con i programmi equivalenti.

 

L’uso degli hash con codifica MD5

 

Ogni file per sua struttura binaria ha una firma univoca che lo identifica, pertanto avere la lista dei file originali del CMS con il loro hash rende possibile determinare nel corso del tempo se su questi file ci sono state delle modifiche non volute e quindi associabili ad un inserimento di codice da parte di programmi malevoli o all’aggiunta di contenuti.

La soluzione non impedisce la violazione del sistema, ma permette una rapida localizzazione dei file modificati o aggiunti a nostra insaputa e il relativo ripristino attraverso un backup pulito, con i relativi interventi di patching.

 

La determinazione della firma dei file

 

Prima di tutto facciamo un backup di tutto il sito pulito e senza anomalie, non perché l’operazione che stiamo per fare sia pericolosa, ma per avere una copia integrale di tutto il materiale in uno stato noto al momento dell’acquisizione dei codici hash. A tale scopo può bastare la generazione di un archivio compresso in formato tar.

A questo punto creiamo un utente che abbia accesso in lettura alla cartella che ospita il sito, potrebbe andare bene anche l’utente amministrativo root.
Nella radice di questo utente andiamo a creare una cartella che dovrà contenere le informazioni per i vari siti e utenti, ad esempio checkfile, ed al suo interno la cartella per il sito, ad esempio sito1.

Operiamo a questo punto nella cartella creata, quindi posizioniamoci in:

cd /root/checkfile/sito1

Dove andremo a lanciare il comando

md5deep -rl path_sito > checksum.md5

Il tool md5deep permette di eseguire una lettura ricorsiva di una cartella e delle sotto cartelle e di ricavare il codice hash md5 di ogni file contenuto, evitando di dover ricorrere a combinazioni di comandi, come ad esempio il find.
Nello specifico controllerà la cartella del sito, che dovrà sostituire il valore path_sito, e salverà la lista dei file e dei loro codici nel file checksum.md5, che nonostante l’estensione è un file di testo.

 

Verifica della sanità del sito

 

Il secondo passaggio è quello di controllare periodicamente se ci sono state variazioni rispetto a quanto salvato, a tale scopo costruiamo un batch che poi inseriremo nello schedulatore di sistema.

Il cuore dello shell script è molto semplice ed è qui riassunto

md5deep -X /root/checkfile/sito1/checksum.md5 -r /home/sito1/domains/sito1/public_html > /root/checkfile/sito1/checksum_error.log

L’opzione –X del comando md5deep permette di valutare le differenze tra la lista generata ed il percorso analizzato, dove per avere una lettura recursiva di tutto l’albero di cartelle useremo l’opzione –r. Le differenze trovate saranno salvate nel file checksum_error.log, dove troveremo la lista dei file che hanno un codice hash diverso da quello noto.

A questo punto possiamo dare in pasto allo schedulatore questo script, ad esempio con cadenza oraria, per avere sotto controllo costante il sito. L’operazione di analisi dura una frazione di secondo.

 

Quando carico nuovi contenuti?

 

Il caricamento di nuovi articoli comporta spesso l’aggiunta di immagini, come l’aggiunta di estensioni del portale introduce nuovi contenuti nell’albero delle cartelle.
Queste operazioni portano alla scrittura nel file di log dei contenuti modificati, o meglio aggiunti, pertanto possiamo verificare che le variazioni siano effettivamente quelle attese e quindi procedere con la generazione di un nuovo file di riferimento delle firme, contenente anche i nuovi contenuti.

 

La presenza di AEM ci viene in aiuto

 

Avendo sul sistema anche un agente AEM è possibile generare un componente che vada a verificare la presenza di modifiche negli hash e invii un alert via mail.

A tale scopo andiamo a creare un componente di tipo script che usi comandi nel formato Unix, nello specifico gli faremo determinare la dimensione del file di log creato dallo script di controllo. In assenza di anomalie la dimensione di tale file è 0 (zero).

Come comando nello script ci basta inserire

#!/bin/bash
du -k /root/checkfile/blackout/checksum_error.log | cut -f1

La prima riga è inserita automaticamente dal editor di AEM, a noi interessa la seconda, dove attraverso il comando du leggiamo le informazioni di dimensione del file specificato e da cui escludiamo però il nome del file, mantenendo così il solo valore numerico.

Nella sezione post conditions inseriamo una condizione di controllo nello stdout, che contiene il risultato del comando eseguito, qui faremo verificare l’assenza del valore 0 (zero), infatti qualsiasi numero maggiore di zero indica la presenza di un contenuto nel file e di conseguenza di un hash modificato.

 

L’invio del all’allarme da parte di AEM

 

Mail di alert di AEM

Mail di alert di AEM

Ora non ci resta che schedulare in AEM l’esecuzione del componente creato, associandolo al dispositivo che ospita il server.
Il componente è bene sia eseguito più volte nel corso della giornata e dobbiamo fare in modo di ricevere un alert solo in presenza di un’anomalia.
Pertanto nella creazione della schedulazione dobbiamo inserire nella sezione alerts la notifica job has warning, che innescherà una mail nel caso in cui la condizione di controllo del componente si verifichi.

 

Buon riposo in tranquillità!

 

 

Categorie
Archivi
Count per Day
  • 93Questo articolo:
  • 172849Totale letture:
  • 28Letture odierne:
  • 281Letture di ieri:
  • 21 novembre 2016Dal:
Iscriviti alla Newsletter
Iscriviti alla nostra newsletter ed unisciti ai nostri iscritti.

Seleziona lista (o più di una):




Trattamento dei dati