Questo sito utilizza i cookie per personalizzare i contenuti e gli annunci (Google AdSense), fornire le funzioni dei social media (condivisione degli articoli) e analizzare il traffico (Google Analytics). Inoltre fornisce informazioni sul modo in cui utilizzi il sito alle agenzie pubblicitarie, agli istituti che eseguono analisi dei dati web e ai social media miei partner (Google). Il proseguimento nella navigazione implica un tacito assenso all'utilizzo dei cookies. Se non sei d'accordo sull'utilizzo, ti invito ad allontanarti da questo sito. Visualizza i dettagli.

Venerdì 9 Dicembre 2016

Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 
tecniche di attacco, Denial of Service e difesa delle reti

Introduzione

Un computer collegato in una rete LAN IP/Ethernet ha due indirizzi, l'indirizzo IP assegnato dall'amministratore o dal DHCP/BOOTP ed il MAC address, ovvero l'indirizzo fisico della scheda di rete

  • Il MAC Address è, teoricamente, un indirizzo unico e non modificabile, assegnato alla scheda di rete in fase di fabbricazione della stessa e che identifica univocamente la scheda di rete a cui è stato assegnato. Ogni produttore ha un range di indirizzi fisici che può assegnare alle proprie schede. Quindi, in teoria, avendo il MAC Address di una scheda di rete è possibile risalire alla marca, al modello e al seriale della scheda stessa. Il MAC address è necessario per il corretto instradamento dei pacchetti di dati in una rete Ethernet, indipendentemente dal tipo di protocollo che viene utilizzato.
    Lo standard Ethernet spezzetta i dati da trasmettere in piccole porzioni, detti Frame. Tali frame poi vengono "impacchettati" per poter esser trasmessi. Nelle intestazioni del pacchetto così generato, gli headers, lo standard Ethernet inserisce il MAC Address della macchina sorgente del pacchetto e della macchina di destinazione oltre ad altre informazioni.

 

  • L'indirizzo IP rappresenta un'astrazione che consente di costruire applicazioni senza conoscere quale tipologia di rete venga usata, viene assegnato via software. Su un segmento di rete è necessario che ogni macchina abbia un indirizzo univoco. Nel caso in cui due macchine abbiano lo stesso indirizzo IP si genera un conflitto ed entrambe le macchine non riescono più a comunicare con il resto della rete. Il protocollo IP comunica attraverso la costruzione di pacchetti che sono simili ai frame ethernet,ma che hanno diversa struttura e non possono essere consegnati senza la presenza del layer di rete. Infatti nel nostro caso i pacchetti IP sono consegnati attraverso Ethernet, il quale divide i pacchetti nei frames, aggiunge l'header ethernet per la consegna e spedisce i pacchetti attraverso il cavo di rete fino allo switch. Lo switch decide a quale delle sue porte deve spedire il frame, comparando l'indirizzo di destinazione del frame con gli indirizzi memorizzati nella sua tabella interna, nel quale "mappa" la porta ethernet al MAC Address della scheda a cui è collegato. Quando un frame ethernet viene costruito, deve essere costruito partendo da un pacchetto IP. Ovviamente, in quel momento durante la costruzione del frame, il protocollo ethernet non ha idea di quale sia il MAC address di destinazione della macchina a cui il frame deve essere spedito, e questo dato è necessario per costruire l'header inviato che come detto prima contiene il MAC address di destinazione e sorgente del frame. L'unica informazione che è disponibile è l'IP di destinazione ed è quindi necessario trovare un modo per cui partendo da questo dato, il protocollo ethernet possa arrivare a trovare il corretto MAC address della macchina di destinazione. Questo meccanismo di chiama ARP, ovvero Address Resolution Protocol, e consente, dato l'indirizzo IP di una macchina, di ricavarne il MAC.


Come avviene la comunicazione in rete

Quando una macchina deve spedire un pacchetto ad un indirizzo IP di cui non conosce il MAC Address usa il protocollo ARP, inviando in broadcast sulla rete un pacchetto "ARP request", che richiede al computer con lo specifico indirizzo IP di mandare in risposta il proprio MAC address. Spedire in broadcast un pacchetto vuol dire indirizzarlo a tutti gli apparati presenti sulla rete. Ciascun apparato esamina poi il pacchetto. Se una macchina ha assegnato l'indirizzo ip richiesto nel pacchetto ARP request, invia alla macchina richiedente un pacchetto "ARP reply" contenente il proprio MAC address. A questo punto la macchina che deve inviare il frame ethernet riceve il pacchetto ARP reply, estrae l'indirizzo MAC e lo integra nell'header del frame. Il frame è quindi pronto per l'invio attraverso la rete.

Per ridurre al minimo il numero delle richieste ARP che vengono inviate su un segmento di rete, i sistemi operativi, siano essi di PC, router o switch, immagazzinano una cache delle entry ARP che ha finora ricevuto.

Quando un computer riceve un ARP reply, questo aggiorna la propria tabella con la nuova associazione IP address / MAC address.

L'ARP è un protocollo SENZA SESSIONE. Invia, cioò, solo la parte dadi senza mandare informazioni di apertura e chiusura della sessione di transazione dati. Questa metodologia di transazione dati rende il protocollo ARP INAFFIDABILE, poichò, se il pacchetto ARP non giunge a destinazione, questo non viene inviato ad oltranza ed il pacchetto viene perso. Molti sistemi operativi e dispositivi che necessitano di fare cache delle entry ARP aggiornano la propria tabella solo nel caso in cui alla macchina giunge una ARP Reply alla sua ARP Request.

 

ARP Spoofing

Spoofing in inglese è sinonimo di millantare, far credere il falso. L'ARP SPOOFING è l'invio di pacchetti ARP reply contraffatti, in cui il computer che riceve questi pacchetti ARP reply crede di spedire i frame ethernet al legittimo destinatario della connessione, invece lo spedisce al computer che si è intromesso nella comunicazione. Questo processo è chiamato "ARP Poisoning", letteralmente AVVELENAMENTO ARP.

 

SNIFFING

Una tra le tecniche più usate per effettuare lo sniffing di una rete è quella denominata "man-in-the-middle", letteralmente "uomo-nel-mezzo". Tale tecnica consiste nell'inserimento di un terzo computer, di seguito denominato "mitm", nel "percorso" delle comunicazioni tra i due computer. A questo punto il computer nel mezzo ridirigerà i frames tra i due computer senza interromperne la comunicazione, ma violandone il contenuto.
Vediamo quali passaggi occorre eseguire per portare a termine un attacco MITM:

  1. macchina MITM esegue un ARP Poisoning della ARP Cache della macchina SORGENTE e di quella DESTINAZIONE
  2. la macchina SORGENTE assocerà l'indirizzo IP di DESTINAZIONE al MAC address di MITM
  3. la macchina DESTINAZIONE assocerà l'indirizzo IP di SORGENTE al MAC address di MITM
  4. A questo punto tutto il traffico che verrà generato da SORGENTE verso DESTINAZIONE e da DESTINAZIONE verso SORGENTE, prima passerà attraverso MITM, e da questo verrà poi ridirezionato verso la corretta destinazione.

Questo è un metodo veramente efficace se, come detto prima, non solo i singoli HOST (computer) possono essere avvelenati", ma anche gli apparati di rete come i router, i gateway, gli switch, etc. In questo modo tutto il traffico internet può essere intercettato semplicemente eseguendo un attacco MitM sul computer che intendiamo "sniffare" e il router della LAN.
Un altro metodo di sniffing altrettanto efficace sugli apparati switch della rete è il cosiddetto "ARP flooding", che consiste nell'inondare lo switch con una successione rapida e massiccia di pacchetti ARP reply, fino a mandare in overflow la tabella con le associazione port/MAC di quella determinata porta. Una volta eseguito un attacco di questo tipo la vittima non avrà più la possibilità di collegarsi in rete.
Per eseguire un attacco ARP flooding occorre che la workstation da cui parte l'attacco, denominata WRKST in seguito, e la postazione che subisce l'attacco, denominata CLIENT in seguito siano collegate allo stesso switch, denominato SW1 in seguito.

L'attacco parte da WRKST con un l'ARP flooding di pacchetti ARP reply verso SW1, in cui l'IP di CLIENT viene associato al MAC address di WRKST. Quando SW1 riceve un frame destinato all'IP di CLIENT verifica nella sua tabella se il MAC di destinazione è presente, e quando lo trova lo gira verso la porta associata a quel MAC. Invece di girare i pacchetti verso CLIENT lo gira verso WRKST, perchè nella sua tabella la entry IP di CLIENT è associata al MAC address di WRKST. Da ora tutto il traffico destinato a CLIENT verrà deviato verso WRKST, questo finchè la cache dello switch non verrà aggiornata oppure finchè lo switch non verrà resettato.

 

Denial of Service (DoS)

Eseguendo l'aggiornamento della cache ARP dei dispositivi con una entry ARP di un MAC Address non esistente, si causerà l'eliminazione dei frame ethernet. Questo può essere fatto in maniera radicale su tutti gli host di una rete, causandone l'interruzione delle comunicazioni. Questo normalmente è uno degli effetti postumi di un attacco Man-in-the-Middle, dove il computer preso a bersaglio continuerò ad inviare i frame all'indirizzo MAC del computer attaccante anche dopo che questi ha rimosso se stesso dal percorso di comunicazione. Per eseguire un attacco MitM senza lasciare traccia, è necessario avere le ARP entry originali dei dispositivi presi in causa in modo che terminato lo sniffing si posso ristabilire le corrette entry.


HIJACKING

Una "Connection hijacking" permette ad un attaccante di prendere il controllo della connessione tra due computer, usando un metodo molto simile a quello che viene utilizzato per eseguire un attacco MitM. Questo trasferimento di controllo può avvenire in ogni tipo di connessione. Ad esempio, un attaccante potrebbe prendere il controllo di una sessione telnet dopo che il computer preso a bersaglio ha accettato la login da parte di un amministratore.

 

CLONING

Come detto precedentemente il MAC address è stato definito per essere l'identificativo UNIVOCO dell'interfaccia di rete "stampato" all'interno della ROM della scheda stessa. Ma è anche vero che oggi il MAC Address di una scheda di rete può essere facilmente cambiato. GLi utenti di sistemi Linux possono facilmente sostituire e cambiare il proprio MAC address senza dover ricorrere a software di spoofing, e semplicemente utilizzando il comando "ipconfig" (per chi non fosse pratico, il comando che permette di gestire la configurazione dell'interfaccia di rete nel sistema operativo). In questo modo un attaccante può facilmente eseguire un DoS verso un computer bersaglio, assegnando a se stesso l'IP e il MAC address del computer che si intende colpire, ricevendo al posto tutto tutti i frame che sarebbero dovuti essere consegnati a lui. Questa tecnica di spoofing si chiama "Cloning"

 

TOOLS per ARP Poisoning

  • PARASITE

    HTTP://WWW.THEHACKERSCHOICE.COM/RELEASES.PHP
    Parasite è un demone che "ascolta" sulla lan, in attesa di intercettare le richieste ARP, e automaticamente invia le conseguenti ARP Replay spooffate. In questo modo Parasite fa automaticamente eseguire al computer dell'attaccante un MitM verso tutti i sistemi che propagano le loro Arp request. Per precisione occorre anche dire che nello stesso modo in cui compie un attacco "automatico" Parasite non esegue una "pulitura" chiara quando viene fermato il demone, portando ad eseguire un DoS verso tutti quei sistemi che aveva precedentemente spooffato, eseguendo la tecnica di DoS. Per ripristinare il corretto funzionamento delle operazioni di rete delle macchine colpite bisogna aspettare la normale scadenza della cache arp dei sistemi colpiti oppure riavviarli.

  • ETTERCAP

    HTTP://ETTERCAP.SOURCEFORGE.NET
    Ettercap è un potentissimo software creato per unix e linux, di cui oggi esiste anche un porting sotto Win32 (necessita le librerie Ethercap facilmente reperibili via web) che dispone di una GUI (Graphic User Interface) e che consente di scegliere da una lista di hosts il computer da prendere a bersaglio. Ettercap può eseguire 4 metodi di sniffing: IP, MAC, ARP e Public ARP e può automatizzare anche le seguenti procedure:
    1. L'inserimento (Injecting) di caratteri nelle connessioni
    2. Lo Sniffing di sessioni criptate SSH
    3. L'immagazzinare la password inviate sulla rete
    4. L'esecuzione del Fingerprinting dei OS
    5. L'esecuzione della "connection killing", ovvero il blocco completo delle connessione verso un dato host

    Inoltre sono disponibili numerosi PLUG-IN che permettono di eseguire anche altre serie di operazioni e ve ne sono altri in sviluppo.

 

  • ARPOISON

    HTTP://WEB.SYR.EDU/~SABUER/ARPOISON/
    è un Tool a linea di comando sviluppato per UNIX, che può creare pacchetti ARP spooffati. Con questo tool è possibile specificare l'IP e il MAC address della sorgente e della destinazione.

 

 

LA DIFESA

 

La miglior difesa contro l'ARP spoofing consiste nell'adottare il vincolo dei MAC address, sugli switch. Questa operazione è disponibile sugli switch di alta qualità che non permettono che un MAC address associato a una porta possa essere cambiato una volta che è stato definito in operazione di setup; operazione questa eseguita manualmente dall'amministratore di rete sullo switch. La gestione di questa tecnica risulta comunque troppo laboriosa e per questo difficilmente viene adottata.
Un'altra difesa consiste nell'utilizzare delle rotte statiche. La cache ARP dei sistemi può avere delle entry statiche nelle proprie tabelle, per cui ogni ARP replies spooffata viene ignorata. Questo tipo di approccio è praticabile solo per ambienti con pochi host oppure lan domestiche. Inoltre le prove fatte hanno messo in evidenza che i sistemi Windows continuano ad accettare le ARP replies spooffate, e quindi continuano ad utilizzare rotte dinamiche, anche con reti che adottano le rotte statiche invalidando i benefici dell'uso di quest'ultime.
Altra difesa molto efficace e pro-attivo contro ARP poisoning e ARP spoofing è utilizzare ARPWATCH. ARPWatch è un software completamente free scritto per UNIX che elenca le ARP replies sul network, le immagazzina in una tabella associando IP/MAC esattamente come farebbe una cache ARP e salva la tabella in un file. Ogni volta che un MAC address associato con uno specifico IP cambia, il software invia un'email all'amministratore della rete. Ovviamente il network deve prevedere o l'indirizzamento IP delle macchine fisso, oppure nel caso della presenza di un server DHCP, l'assegnazione dell'indirizzo IP in base alla tabella di MAC address.
Contro il cloning del MAC address basta usare il RARP (Reverse ARP), ovvero è il protocollo
che compie l'esatto inverso del protocollo ARP, quindi dato un conosciuto MAC address viene generata una richiesta per conoscere l'IP ad esso associato. In presenza di risposte multiple a questa richiesta, ci si trova in presenza di un MAC clonato.
Per identificare la presenza di una o più macchine che lavorano con la scheda di rete in "promiscuous mode" esistono numerose tecniche e tools dedicati sia per ambienti Win32 che per ambienti Linux/UNIX. Proprio per questo motivo, per la diversità dei sistemi operativi diffusi, è importante ricordarsi che ogni sistema operativo ha un proprio stack TPC/IP e che ogni release dello stesso SO può apportare modifiche radicali allo stack e conseguentemente anche comportamenti differenti sia alle richieste ARP sia ai tutti gli altri protocolli, e che allo stesso modo schede di rete diverse hanno driver diversi e quindi diversi modi di interagire a livello fisico con i protocolli. Di queste variabili è sempre buona norma tenere in considerazione con le opportune riflessioni. Un esempio potrebbe essere Solaris, il quale ha implementato nel proprio stack tpc/ip una gestione delle request e replies arp completamente diversa da qualsiasi altro produttore e finora unica nel suo genere. In pratica Solaris accetta l'update delle ARP solo quando queste scadono, scartando qualsiasi altro replies gli arriva prima di questa scadenza, ed obbligando l'attaccante prima a dover spooffare una seconda macchina con cui la wks Solaris è in connessione prima di effettuare il tentativo verso quest'ultima. In questo caso un buon sistema di intrusion detection può individuare facilmente quello che sta succedendo avvisando l'amministratore della rete.

CONCLUSIONI

L'ARP spoofing è una delle tante vulnerabilità che esistono negli attuali protocolli di networking. Sfruttando questa vulnerabilità malintenzionati con discrete conoscenze tecniche possono prendere il controllo di macchine su una rete. Questa vulnerabilità non è attualmente rimuovibile poichè fa parte dei meccanismi fondamentali della rete Ethernet. ARP poisoning, frammentazione dei pacchetti TPC e ICMP redirection sono tecniche che sfruttano questa vulnerabilità.