GnomixLand




Il vero cuore pulsante di ogni azienda che si rispetti e' la sua rete. All'interno di essa (e dei suoi cavi) ogni giorno transitano centinaia di password, di e-mail e di dati assolutamente riservati. Prendere possesso di questi dati significa, ovviamente, controllare l'intera azienda.

Per quasi vent'anni i tradizionali supporti condivisi (Ethernet e Token Ring) hanno permesso una facile intercettazione del traffico di rete, consentendo, ad ogni nodo presente sul segmento, di ricevere le stesse informazioni che arrivavano al destinatario. La tecnologia a commutazione, invece, pur continuando a mantenere lo stesso nome di quella condivisa, ha completamente rivoluzionato la tecnica di instradamento del traffico e, sinteticamente, attraverso una tabella di indirizzi MAC (Media Access Control), ha permesso che il pacchetto arrivi soltanto al legittimo destinatario, rimanendo invisibile (almeno in teoria) a chiunque altro. Cosi' concepita, questa indiscussa innovazione logica, prim'ancora che tecnologica, ha fatto si che molti"esperti" identificassero gli switch come strumenti rivolti alla sicurezza della rete, piuttosto che mezzi per migliorarne le prestazioni. Ma pensare che gli switch (da soli) possano rendere immune una rete dagli sniffer, e' pura illusione! Quest'articolo nasce proprio dopo aver assistito su IRC ad un monologo di due di questi "esperti" di rete... ed e' a loro che voglio dedicarlo.
Il punto di partenza per la nostra indagine sull'intercettazione dei dati attraverso gli switch e', naturalmente, il protocollo ARP. L'Address Resolution Protocol (ARP), infatti, viene usato per stabilire l'indirizzo MAC di un computer destinazione. In linea di principio, il procedimento e' molto semplice. Quando si vuole stabilire una comunicazione tra due computer, il protocollo ARP, qualora non possieda gia' l'indirizzo fisico del destinatario nella sua cache, si incarica di inviare alla rete locale un messaggio di broadcast contenente la richiesta dell'indirizzo hardware associato all'indirizzo IP di destinazione. Se l'host in questione e' presente nella rete locale, allora rispondera' direttamente alla richiesta di ARP che, a sua volta, aggiungera' l'informazione nella propria cache affinche', in futuro, non debba ripetere questa procedura. Se l'host, invece, si trova su una rete remota, sara' il gateway di default a rispondere con il suo MAC e tutti i pacchetti saranno inviati a questo indirizzo. Questo e', in breve, quanto succede. Per informazioni dettagliate tanto sui procedimenti, quanto sui tempi di conservazione delle informazioni nella cache ARP, potete comunque fare riferimento alla RFC 826.
Vediamo ora come compromettere questo equilibrio. Bene, diciamo subito che il traffico ARP e' facilmente contraffabile e puo' essere reindirizzato, anche in ambienti commutati, verso un qualsiasi sistema. Di conseguenza, attraverso un analizzatore di rete, si potra' visualizzare il contenuto della trasmissione e, quindi, inoltrare nuovamente il tutto verso il destinatario originario. I piu' attenti ed informati avranno gia' capito che si tratta semplicemente di un attacco del tipo "man_in_the_middle" sfruttando il protocollo ARP. Per tentare di dare all'argomento che stiamo trattando un approccio un po' piu' pratico, prendiamo in considerazione, attraverso un esempio, tre sistemi ed inseriamoli in un'ipotetica rete filtrata da uno switch...
 

     ------------                                     ------------
    |            |                                   |            |
    |    RAUL    |                                   |   JACKAL   |
    |            |                                   |            |
     ------------                                     ------------
   Sistema obiettivo                                    Attacker
     128.131.1.10                                     128.131.1.100
          |                                                 |
          |                                                 |
          |               ____________________              |
           _____________ |_______SWITCH_______| ____________
                                   |
                                   |
                                   |
                             ------------
                            |            |
                            |  SARDANAP  |
                            |            |
                             ------------
                          Gateway di default
                             128.131.1.1


La parte del "cattivo", in questo caso, la fa il sistema JACKAL (ho davvero una grande fantasia!!), che si trova all'indirizzo 128.131.1.100 Su questo sistema l'attacker eseguira' l'ottima utility ARPREDIRECT, presente nel pacchetto dsniff (http://www.monkey.org/~dugsong/dsniff/), che permettera' l'intercettazione sulla rete dei pacchetti che l'host bersaglio (il sistema RAUL all'indirizzo 128.131.1.10) invia al gateway di default SARDANAP (128.131.1.1). Inoltre, affinche' la catena non venga interrotta e le informazioni arrivino comunque al destinatario originale, e' necessario che il sistema JACKAL supporti il servizio di IP forwarding. Il metodo piu' veloce per farlo, e' utilizzare l'utility FRAGROUTER, l'altro, invece, consiste nell'implementarlo a livello kernel. Il sistema JACKAL ora e' pronto ed avvia anche l'analizzatore di pacchetti (uno vale l'altro, a voi la scelta).
Vediamo ora come avviene l'attacco. Dopo aver registrato gli indirizzi hardware degli altri due sistemi (basta anche solo un ping), JACKAL, attraverso ARPREDIRECT, comincia a spacciarsi per il gateway di default, mandando a RAUL delle risposte ARP contraffatte. RAUL, a sua volta, credera' che SARDANAP abbia cambiato il suo indirizzo hardware e aggiornera' la sua tabella ARP con il nuovo indirizzo (che, in realta', sappiamo essere quello del sistema JACKAL).
 

                       1. JACKAL invia pacchetti
                     ARP contraffatti all'host RAUL
   ------------      <<---------------------------        ------------
  |            |                                         |            |
  |    RAUL    |      2. RAUL e' stato ingannato e       |   JACKAL   |
  |            |    invia tutto il traffico a JACKAL     |            |
   ------------      ---------------------------->>       ------------
 Sistema obiettivo                                          Attacker
        |                                                      |
        |                                                      |
        |                ____________________                  |
        X               |_______SWITCH_______|  <--------------
                                  |
                                  |


Da questo momento, una ipotetica sessione telnet o ftp aperta sull'host bersaglio, verra' inviata direttamente al sistema dell'attacker che potra' analizzarla con Hunt o con qualsiasi tool precedentemente predisposto. Inoltre, poiche' e' stato attivato il servizio di IP forwarding, l'host JACKAL si comportera' come se fosse un router, reinstradando l'intera sessione verso il sistema originario... Come abbiamo visto, gli switch non sono, in fin dei conti, tanto sicuri come si vorrebbe far credere!
Diverse sono poi le contromisure adottabili per arginare gli attacchi di ARP Forcing. Il metodo piu' efficace, e purtroppo anche quello piu' scomodo da attuare, consiste nel rendere statiche le tabelle ARP in modo da evitare la circolazione di richieste e di risposte sia legittime che contraffatte. Come si puo' facilmente immaginare, la soluzione e' abbastanza laboriosa. Infatti, al variare di un indirizzo hardware o nel momento in cui si renda necessario aggiungere un host alla rete, si dovranno anche aggiornare i file /etc/ethers di tutti i sistemi. Inoltre, non sara' sfuggito, l'utilizzo da parte mia del termine "arginare". Infatti, se l'attacker si trovera', non piu' sulla stessa rete, ma su una interposta tra l'host bersaglio e il gateway, potra' comunque effettuare lo spoofing ARP, sfruttando un punto della rete che non puo' essere controllato dall'amministratore. Il metodo piu' semplice e sicuro di aggirare il problema (dato che non si tratta di una vera soluzione), e' allora, ancora una volta, l'uso della crittografia. L'attacker, in questo caso, pur potendo portare a termine con successo l'attacco fin ora discusso, non riuscira' in ogni caso a visualizzare i dati della sessione e, l'immissione nello streaming di comandi non crittografati, provochera' la semplice chiusura prematura della connessione. Alle soluzioni ora prospettate, potra' poi essere affiancata l'utility ARPWATCH. Questo programmino si occupera' di notificare via e-mail qualsiasi cambiamento dei vostri mapping Ethernet/IP, e, registrando anche tutti i dati in file di log, vi permettera' di individuare facilmente chi vi vuole male!! ;)

Dimenticavo, ecco alcuni link per approfondire alcuni aspetti:
http://chocobospore.org/arpspoof/
http://www.ziobudda.net/Recensioni/vedi_recensione.php?ff=76
http://www.faqs.org/rfcs/rfc-index.html



©  GnomixLand
http://www.gnomixland.com/