Tra le minacce più comuni rivolte verso i siti web,quella dell’iniezione di codice maligno atto a dirottare la connessione verso siti esterni contraffatti,è una delle più frequenti.

Una delle casistiche riscontrate più spesso riguarda la manomissione dei file php,allo scopo di inserire codice nascosto.
Vedremo da vicino uno di questi casi,analizzandone sintomi,cause e soluzioni.

Tipo di attacco : eval(base64_decode hack

Si tratta di un attacco molto comune.Consiste nell’aggiunta al codice php sano di porzioni di codice maligno,codice cche ontiene istruzioni nascoste atte ad effettuare un redirezionamento delle connessioni su siti non desiderati.

Sintomi : siti non funzionanti,con connessioni redirette su siti web malevoli.La situazione è facilmente riconoscibile anche grazie al fatto che google pone le pagine incriminate in una lista nera di siti malevoli,bloccando le connessioni degli utenti con una segnalazione di pericolo.
Spesso non risultano tracce di manomissione via ftp o accessi web sospetti nei log di sistema.

Danni : infetta tutti i file php e html presenti sul web server

Cause : le principali cause di questo tipo di attacco possono ricondursi a violazioni delle password ftp,installazione involontaria di codice maligno (cms o temi per cms modificati da malintenzionati) e trasporto involontario di codice nocivo da pc desktop operanti in connessioni ftp con i siti ospitati sul web server.
Esempio : il mio pc è colpito da trojan o malware,che intercetta le credenziali ftp di accesso al sito,mentre opero il caricamento di alcuni file.Ciò spalanca le porte all’aggressore che è in grado di modificare i file originali,appendendo codice maligno alle pagine del sito.

Operazioni di risoluzione del problema :
La buona norma prevede una cancellazione totale dei dati presenti sul sistema,con un ripristino dei backup antecedenti alla manomissione.Si tratta della soluzione più efficace,ma nel caso in cui non si volesse o non si potesse operare in modo definitivo,non resta che operare manualmente la rimozione del codice nocivo.

Operazioni preliminari :
- se si è in presenza di una pannello di gestione hosting,disabilitare tutti i siti ospitati
- disabilitare i logins relativi ai siti ospitati,compresi accesso email,ftp ed ssh
- fermare il demone http
- fermare il demone ftp
- modificare tutte le password di accesso ftp ed ssh relativi ai siti ospitati

Operazioni di rimozione del codice :
Grep ci viene in aiuto,con la ricerca ricorsiva per cartelle.E’ assunto che /home contenga tutti i domini ospitati sul web server :

# grep -or -H 'eval(base64_decode' /home/
Se si desidera cancellare le righe malware basta eseguire il seguente comando. ATTENZIONE: la Shine Software non si assume alcuna responsabilità sul malfunzionamento del comando nel vostro sistema. Contattateci per avere ulteriori informazioni.
# find . \( -name "*.php" \) -exec grep -Hn "[\t]*eval(base64_decode(.*));" {} \; -exec sed -i 's/[\t]*eval(base64_decode(.*));//g' {} \;

I file individuati andranno ripuliti manualmente,eliminando le righe di codice nocivo che abbiamo mostrato sopra.

In questo tipo di manomissione,si riscontra inoltre la presenza di file con estensione gifimg.php che dovranno essere cercati ed eliminati :

# find /home/ -name "gifimg.php" -print -exec rm '{}' \;

Al termine delle operazioni di pulitura dei file possiamo eseguire una nuova ricerca per verificare la completa eliminazione dei file infetti.
Verificheremo inoltre che non siano stati aggiunti ulteriori utenti ai database dei siti,e provvederemo in caso di riscontro di anomalie sui database,a ripristinare un backup precedente all’infezione.

La soluzione proposta non è tuttavia definitiva in quanto potrebbero esserci parti di sistema compromesse e non verificabili.L’utilizzo di tecniche manuali di rimozione e mitigazione dei rischi rappresenta un palliativo che non dovrebbe essere applicato su sistemi in produzione,dove un ripristino totale dei backup su un sistema pulito e fresco d’installazione è l’unica certezza di soppressione dell’attacco.

sorgente: http://blog.servermanaged.it