Come verificare se il server e/o i siti sono stati compromessi

Come verificare se il server e/o i siti sono stati compromessi

Chi svolge l'attività dell'amministratore di sistema, una delle attività più importanti (e molto spesso frusrante) è quella di mantenere integra la sicurezza del server e, di conseguenza, di tutti i siti presenti. Per quanti sforzi possiate fare, è possibile che il server venga preso di mira da lamers che non hanno di meglio da fare che complicarvi la vita. Quella della sicurezza di un server, è un'attività molto complessa, soprattutto su siti di grandi dimensioni e quando non avete il totale controllo sui programmi che girano su di esso (perchè magari siete dei reseller di servizi).  In questo articolo, vedremo una serie di attività importanti per mantenere sicuro un server linux e verificare se e quali file sono stati compromessi.

Verificare quali file sono stati modificati nell'ultimo periodo

Per prima cosa è possibile sapere quali file sono stati modificati/creati nell'ultimo periodo. Per fare ciò, si può utilizzare il comando find per cercare tutti i file modificati nelle ultime 24 ore:

find /var/www/html/ -type f -name '*.*' -mtime -1

Questo comando restituisce una lista di tutti i file modificati o creati nell'ultimo giorno, presenti nella cartella /var/www/html. Potete modificare questo percorso, con la cartella principale dove risiedono le cartelle dei siti. È possibile anche modificare la direttiva -mtime -1 sotituendo al numero i giorni; ad esempio, se volete visualizzare la lista dei file modificati negli ultimi 4 giorni, il comando diventerà:

find /var/www/html/ -type f -name '*.*' -mtime -4

È anche possibile limitare la ricerca ad alcuni tipi di file (ad esempio php) modificando la direttiva -name '*.*' con -name '*.php'. In questo modo, eseguendo il programma, la ricerca verrà limitata ai soli file php

Controllare la Presenza di Codice Malevolo nei files

Una pratica efficace è quella di cercare all'interno dei file, alcune stringhe che, quasi sicuramente, indicano la presenza di codice dannoso all'interno dei files dei vostri siti:

find /var/www/html/ -type f -name '*.php' | xargs grep -l "base64_decode *("

Con il comando qui sopra si cerca all'interno dei files php, la stringa base64_decode questo denota, molto probabilmente, la presenza di un file utilizzato per phishing. Ovviamente, prima di eliminare il file in questione, assicuratevi che sia davvero un codice dannoso, poichè comunque questa funzione può essere utilizzata per attività normali. Aprendo il file, vi accorgerete subito se è un file dannoso oppure no.  Di seguito, una lista di comandi che potete usare per cercare script malevoli (ATTENZIONE!! Controllate SEMPRE i files prima di eliminarli, poichè potrebbero essere necessari al funzionamento di varii CMS come joomla o wordpress):

find /var/www/html/ -type f -name '*.php' | xargs grep -l "base64_decode *("
find /var/www/html/ -type f -name '*.php' | xargs grep -l "eval *("
find /var/www/html/ -type f -name '*.php' | xargs grep -l "gzinflate *("

Settare i giusti permessi nelle cartelle

È necessario impostare i giusti permessi nelle cartelle e nei file dei siti. Le cartelle dovrebbero avere i premessi impostati a 755 mentre i file a 644. Quindi è possibile utilizzare questi due comandi per farlo: Questo comando, imposterà i permessi su tutte le cartelle a 755

find /var/www/html/ -type d -exec chmod 755 {} \;

Questo comando, invece, imposterà i permessi dei file a 644:

find /var/www/html/ -type f -exec chmod 644 {} \;

Installare gli Aggiornamenti Constantemente

A prescindere da quale CMS o versione del sistema operativo utilizzate, è estremamente importante mantenere sempre aggiornate le versioni dei programmi che sono presenti sul server. Gli aggiornamenti, infatti, non servono solo ad inserire nuove funzioni nei programmi, ma servono anche a risolvere bug ed eliminare tutti i "difetti" che potrebbero fornire accessi non autorizzati a file o cartelle nel vostro server  Forse sei interessato a questi articoli: