1/11/10
DDoS Attack with Spoofing Techniques
related by Davide Berdin (matr. 820911) course: Reti di Calcolatori Prof. Simonetta Balsamo
Ca‘ Foscari University of Venice 1
via Torino 155, 30172 Mestre (VE), Italy
dberdin@dsi.unive.it www.dsi.unive.it
Table of Contents INTRODUCTION
3
Cos’è un DDoS Attack
4
Definizione
4
Descrizione di DoS
4
Descrizione di DDoS
4
Funzionamento DDoS generico
5
Cosa sono le Spoofing Techniques
6
Definizione di Spoofing
6
MAC Spoofing
6
IP Spoofing
6
Spoofing UDP
6
Spoofing TCP
7
WEB Spoofing
7
Attacco DDoS con IP Spoofing
8
Approfondimento sull’IP Spoofing
8
SYN Flood: come funziona
8
Creiamo un attacco DDoS
10
Parti Pricipali
11
Come difendersi dal DDoS
13
Prevenire è meglio che curare
13
1
Analisi della rete
15
Una cura ?
16
Conclusioni
17
Bibliografia
18
2
INTRODUCTION Con il termine sicurezza informatica si intende quel ramo dell’informatica che di occupa delle misure (di carattere organizzativo e tecnologico) tese ad assicurare a ciascun utente autorizzato, tutti e soli i servizi previsti per quell’utente, nei tempi e nelle modalità previste. Il sistema informatico deve essere in grado di prevenire l’alterazione diretta o indiretta delle informazioni, sia da parte di utenti non autorizzati, sia da parte di eventi accidentali; inoltre deve impedire l’accesso abusivo ai dati. Con la crescita a dismisura di Internet e del “www”, le problematiche di sicurezza si estendono anche ad esse, e servono quindi idee e principi su cui basarsi. Non per nulla i due pricipali cause della perdita di dati o del “furto” di esse vengono raggruppati i due grandi aree: la perdita accidentale e la perdita indesiderata. La mia ricerca si focalizzerà sul secondo gruppo, in quanto un evento indesiderato che si può subire è l’attacco da parte di un Hacker.. Gli attacchi hacker vengono fatti spesso tramite la rete Internet, che tramite software particolare spesso creati da loro, si intrufolano abusivamente nel sistema riuscendo ad ottenere piena disponibilità dell’intera macchina, per gestire i dati senza avere i giusti requisiti. Nel corso del progetto verranno approfondite le tematiche principali degli attacchi di tipo DDoS (Distributed Denial of Services) attraverso tecniche di tipo Spoofing (letteralmente dal verbo inglese “to Spoof ” imbrogliare, fregare, beffare) e in quali punti del modello ISO/OSI e TCP/IP questi colpiscono.
3
Cos’è un DDoS Attack Definizione DoS, scritto con la maiuscola al primo e terzo posto, è la sigla di “Denial of Service”, letteralmente negazione del servizio. In questo tipo di attacco si cerca di portare il funzionamento di un sistema informatico che fornisce un servizio, ad esempio un sito web, al limite delle prestazioni, fino a renderlo non più in grado di erogare il servizio. Con la sigla DDoS (Distributed Denial of Services) si ha lo stesso tipo di attacco ma viene realizzato utilizzando numerose macchine attaccanti che insieme costituiscono una botnet.
Descrizione di DoS Gli attacchi vengono abitualmente attuati inviando molti pacchetti di richieste, di solito ad un server Web, FTP o di posta elettronica saturandone le risorse e rendendo tale sistema "instabile", quindi qualsiasi sistema collegato ad Internet e che fornisca servizi di rete basati sul TCP è soggetto al rischio di attacchi DoS.
Descrizione di DDoS Per rendere più efficace l'attacco in genere vengono utilizzati molti computer inconsapevoli sui quali precedentemente è stato inserito un programma appositamente creato per attacchi DoS e che si attiva ad un comando proveniente dalla macchina attaccante. Se il programma maligno si è diffuso su molti computer, può succedere che migliaia di PC violati producano, inconsapevolmente e nello stesso istante, un flusso incontenibile di dati che travolgeranno come una valanga anche i link più capienti del sito bersaglio. L'implementazione del protocollo TCP/IP, che non garantisce particolare sicurezza sull'identificazione dei mittenti di pacchetti ma anzi ne protegge l'anonimato, può essere sfruttato per mascherarne la vera provenienza. Trattandosi di connessioni apparentemente legittime, è impossibile bloccarle senza interrompere anche il flusso realmente inoffensivo. Però limitando drasticamente il numero di sessioni aperte simultaneamente l'impatto dell'attacco si riduce considerevolmente senza limitare il flusso dei pacchetti regolari.
4
Funzionamento DDoS generico Nella definizione precendente ho accennato ad un insieme di macchine define botnet. In dettaglio, una botnet è una rete di computer collegati ad Internet che fanno parte di un insieme di calcolatori controllati da un'unica entità, il “Botmaster.” Ciò può essere causato da falle nella sicurezza o mancanza di attenzione da parte dell'utente e dell'amministratore di sistema, per cui i computer vengono infettati da virus o trojan i quali consentono ai loro creatori di controllare il sistema da remoto. I controllori della botnet possono in questo modo sfruttare i sistemi compromessi per scagliare attacchi distribuiti del tipo DDoS contro qualsiasi altro sistema in rete. I computer che compongono la botnet sono chiamati Bot o Zombie. Il Botmaster invia il comando di iniziare l’attacco alla sua rete di zombie. Ogni computer all’interno della botnet, invia una richiesta di connessione ad una macchina vittima denominata Reflector. Quando la vittima riceve la richiesta, essa sembra non risultare dannosa. In questo modo tutte le macchine Reflector inviano informazioni al sistema vittima causandone l’immediata inondazione di richieste facendo in modo che non possa più soddisfarle. Questa operazione causa lo stallo totale della macchina.
“1”
Il Trojan inserito precedentemente nelle macchine zombie, permette a loro di rimanere nasconte durante tutto l’attacco al sistema vittima. Esse saranno perciò visibili solo dall’hacket attaccante. Quando un esercito di macchine zombie comincia l’attacco ad un sistema vittima, ci sono poche cose che un amministratore di sistema può fare per evitare effetti collaterali molto gravi. Egli potrebbe scegliere di limitare l’ammontare totale del traffico permesso nel sistema. Se si riesce invece a risalire all’origine dell’attacco, si può filtrare il traffico di rete. Sfortunatamente , molte botnet sfruttano le tecniche di Spoofing quali permettono la falsificazione dell’indirizzo di provenienza delle richieste. 1
In figura viene rappresentato uno schema di attacco di un DDoS 5
Cosa sono le Spoofing Techniques Definizione di Spoofing Lo spoofing è un tipo di attacco informatico dove viene impiegata in qualche maniera la falsificazione dell'identità (spoof). Lo spoofing può avvenire in qualunque livello della pila ISO/OSI e oltre: può riguardare anche la falsificazione delle informazioni applicative. Esistono diversi tipi di attacchi spoofing, ma in ogni caso si tratta di far credere alla vittima che si è qualcosa di diverso, un hostname, un indirizzo ethernet o altro ancora.
• MAC Spoofing Quando l'informazione falsificata è un indirizzo MAC si parla di MAC-spoofing. Questa tecnica viene applicata al livello 2 del modello ISO/OSI (livello Data Link). L'attacco consiste nell'immettere in rete un pacchetto che contiene un MAC Address diverso da quello dell'attaccante ed uguale a quello della vittima, con lo scopo di effettuare un attacco. Un esempio di questa tecnica viene impiegata nel MACflooding in cui un attaccante manda continuamente pacchetti in rete con un MAC che non è il suo. Questo metodo ha l'effetto di saturare il forwarding database dello switch, causandone malfunzionamenti.
• IP Spoofing Quando l'informazione falsificata è un indirizzo IP si parla di IP Spoofing. Questo metodo viene applicato al livello 3 della pila ISO/OSI (livello Network) In generale è semplice falsificare un indirizzo in quanto il protocollo non implementa alcun sistema di sicurezza. In questo caso si assiste ad un routing asimmetrico visto che il pacchetto di risposta a quello falsificato verrà inviato al vero IP.
• Spoofing UDP È analogo al caso IP. Essendo UDP un protocollo connctionless la falsificazione di un datagram UDP consiste nell'immettere le informazioni desiderate e falsificare l'header.
6
• Spoofing TCP Lo spoofing di una sessione TCP è decisamente più complesso del caso UDP. TCP è infatti un protocollo connection oriented che richiede che venga stabilita una sessione tramite il three way handshake. Se viene forgiato un pacchetto SYN con l'indirizzo IP falsificato e questo viene inviato ad un server, prima che sia possibile inviare i dati il server cercherà di portare a termine l'handshake rispondendo con un pacchetto SYN/ACK. Questo pacchetto riporterà l'indirizzo IP falsificato quindi non verrà inviato indietro all'attaccante che quindi non potrà rispondere con il terzo e ultimo pacchetto (il pacchetto ACK). Per portare a termine questo attacco è necessario inviare un pacchetto ACK al server che riporti nuovamente l'indirizzo IP falsificato, ma anche il sequence number che il server ha inserito nel pacchetto SYN/ACK. Per scegliere questo numero l'attaccante deve sapere come il server li sceglie. Siccome l'attaccante invia il primo e il terzo pacchetto senza vedere il secondo, questo attacco si chiama blind spoofing.
• WEB Spoofing Quando lo spoofing coinvolge il web (server applicativo, host server o protocolli web) si parla di web spoofing. Nell'accezione più comune il web spoofing riguarda la falsificazione di un server web per far credere ad un utente di essere connesso ad una certa macchina mentre è connesso ad un server malevolo. Descriviamo in primis la tecnica nel caso in chiaro. La prima azione che deve effettuare un attaccante per redirigere un client verso un server falso (anche chiamato shadow server) è di falsificare l'associazione tra l'indirizzo web e l'indirizzo IP. Questa operazione viene effettuata tramite un attacco di dns poisoning (mira a modificare la cache dei name server in modo da modificare l'associazione indirizzo IP/nome del server). A questo punto l'attaccante ha fatto credere al client che l'indirizzo del server vero è quello invece del server falso. L'attaccante ha costruito in precedenza un server falso che può ■
contenere una copia del server vero (ogni pagina è stata copiata in locale sul server ombra)
■
rigirare pagina per pagina le connessioni del client verso il server vero
In entrambi questi casi quello che ottiene l'attaccante è di fingersi il server vero, catturando credenziali di accesso, per esempio. La creazione dello shadow server è uguale a ciò che si fa nel phishing, ma in questo caso c'è stato un preventivo attacco diretto al client.
7
Attacco DDoS con IP Spoofing • Approfondimento sull’IP Spoofing L'Ip spoofing è l'attacco più diffuso dal momento che è il più facile da eseguire. Tale attacco è reso possibile dal fatto che la maggior parte dei router all'interno, per esempio, delle reti aziendali controllano durante la richiesta di accesso ai servizi, solo l'indirizzi IP di destinazione e non quello di provenienza. Nell'intestazione di un pacchetto IP si trova il Source Address dove si trova l'indirizzi IP del mittente. Se chi attacca modifica questo campo, può far credere al sistema bersaglio che un pacchetto IP sia stato trasmesso da una macchina differente ricevendo le risposte direttamente sul falso IP. Gli attacchi di IP Spoofing possono essere divisi in tre categorie: • IP Spoofing non cieco: è attuabile in una rete LAN; quando chi attacca cerca di farsi passare per un host che è nella sua stessa sottorete . • IP Spoofing cieco : quando l'attaccante cerca di farsi passare per un host di una qualsiasi sottorete. • Attacchi DoS: l'attaccante cerca di bloccare un host per impedire a quest'ultimo di svolgere la normale attività oppure per prenderne il controllo.
• SYN Flood: come funziona Questo attacco usa una debolezza nella implementazione/configurazione del protocollo di connessione “three way handshake”, usato per aprire una sessione. Ha un grande vantaggio nel fatto che necessita di pochissima banda per ottenere l'effetto voluto. Il protocollo di connessione tra due PC normalmente funziona in tre fasi.
8
1.
A vuole comunicare con B e per aprire una sessione gli manda un pacchetto “SYN” e aspetta una risposta da B.
2.
Quest'ultimo ricevuta una richiesta di connessione cambia il suo stato da “LISTEN” in “SYN RECEIVED”, cioè si rende conto che c'è una richiesta da parte di A e mette la sua richiesta di A in una coda delle connessioni potenziali, ma non ancora stabilite. Per concludere allora B spedisce ad A un pacchetto con “SYN/ACK” e attende da A la conferma della connessione. Quando A riceve il “SYN/ACK” di B spedisce a sua volta un altro ACK e ritiene la connessione
3.
stabilita. B riceve l'altro ACK di A e passa dallo stato “SYN RECEIVED” in “ESTABILISHED” e cancella A dalla coda delle richieste potenziali. Durante un attacco la vittima è B. L'attaccante gli spedisce dei SYN il cui indirizzo sorgente è un “buco nero”, cioè una macchina non raggiungibile. In questo modo le risposte della vittima vengono tutte perse. L'attaccante spedisce continuamente richieste di connessione allo scopo di far riempire la coda delle connessioni “potenziali” fino ad esaurire tutte le risorse allocate allo scopo, che normalmente sono limitate. Infatti sebbene un server possa accettare moltissime richieste di servizio normalmente è configurato per avere una coda delle connessioni “potenziali” molto limitata. Quando si estende questo procedimento a più macchine si ottiene una Botnet.
9
• Creiamo un attacco DDoS Proviamo ad eseguire un attacco DoS e qualche attacco DDoS in ambiente domestico. Ci serve una rete LAN e qualche computer. Per riprodurre in pratica gli argomenti che stò discutendo verrà scritto un semplice programma dimostrativo. Le sue copie saranno installate sui computer dai quali partirà l’attacco. Il segnale che consentirà al programma di iniziare l'attacco sarà la ricezione del pacchetto preparato. Come risposta il programma inizierà l’invio dei pacchetti SYN (attacco SYN flood). Il programma comincerà a funzionare non appena verrà avviato, portandosi subito in modalità Standby, modalità dalla quale ascolterà i pacchetti in arrivo. Se troverà un pacchetto che conterrà il flood_indirizzo_IP, sarà richiamata la funzione corrispondente di quel tipo e l’invierà all’indirizzo_IP.
• Il Programma
)LJ /R VWUXPHQWR SHU HVHJXLUH XQ DWWDFFR ''R6 2
“�
SURWRFROOR SXz SUHQGHUH LO QXPHUR VHQGWR VRFN SDFFKHWWR 2 In Figura è rappresentato il Flow Chart dell’intero programma LGHQWL¿ FDWLYR GD XQR TXDOVLDVL GHL GLPHQVLRQH GHO SDFFKHWWR SURWRFROOL ,3 3Xz DQFKH SUHQGHUH LO YDORUH ,335272 B 5$: ¹ LO VRFNHW QRQ q , SURWRFROOL ,335272 B 5$: QRQ SRV LQ TXHVWR FDVR DEELQDWR DG XQ SURWR VRQR HVVHUH XWLOL]]DWL SHU ULFHYHUH FROOR FRQFUHWR H SUDWLFDPHQWH VL SXz GHL GDWL ¹ LQ TXHVWR FDVR ELVRJQD FRQ¿ JXUDUH OLEHUDPHQWH LQ WXWWL L FDP VWDELOLUH XQ FRQFUHWR SURWRFROOR ,3
1RQ FÂśq FRPXQTXH ELVRJQR GL FHUFD UH GHL YDORUL RIIVHW HVVL VRQR QDVFR VWL QHO VWUXFW LSKGU 10 LSBKHDGHU !WWO
&RPLQFLDPR DOORUD OD FUHD]LRQH GHO
• Parti Pricipali Le parti pricipali del programma sono due: - listen_and_flood - send_syn() Inizialmente è stato creato un raw socket, particolare tipo di socket (software integrato nell’OS per la ricezione e trasmissione dei dati attraverso una rete), che permette di spedire e ricevere direttamente i pacchetti attraverso le applicazioni, bypassando tutte le encapsulazioni restrittive dei software per la rete dei sistemi operativi. A programma avviato questo si trova in modalità Listen per permettere la ricezione; durante l’inizializzazione si crea una sequenza di flooding, cioè il numero identificativo dell’indirizzo IP vittima. Quando i pacchetti cominciano ad arrivare all’interno del socket, si ricerca all’interno del pacchetto arrivato il numero identificativo. Se questo c’è si richiama la funzione di invio del pacchetto [ flood_func (sock, adrr, s_adrrl) ], altrimenti viene scartato e si rimette in ascolto. La seconda parte si preoccupa di preparare il pacchetto TCP per il SYN. Per prima cosa prepara l’intestazione dell’IP, ovvero, crea un pacchetto di dati il quale si inserisce un indirizzo IP mittente fasullo (spoof), l’indirizzo di destinazione vittima e la dimensione. Nel passo successivo viene preparata l’intestazione dell’ICMP. ICMP acronimo di Internet Control Message Protocol, è un protocollo di servizio che si preoccupa di trasmettere informazioni riguardo i malfunzionamenti, informazioni di controllo o messaggi tra i vari componenti della rete. Facendo parte del livello 3 della pila ISO/OSI (Network) e direttamente incapsulato nell’IP, non è quindi garantita la consegna a destinazione dei pacchetti. L’ICMP viene sfruttato da programmi come il ping e il traceroute. Nella fase di preparazione dell’ICMP vengono modificati i dati relativi all’Header cambiandone il tipo [ tcp_header -> doff=5 ]. Il numero 5 è il tipo Redirecting. L’ultimo passo consiste nell’inviare il pacchetto attraverso il programma ping. Avendo cambiato il tipo dell’ICMP in Redirecting, il ping continuerà a reindirizzare tutti i pacchetti alla macchina vittima. Con un elevato numero di ICMP echo request la macchina vittima subisce un overflow di richieste portandola in stallo. Nelle linee moderne ad alta velocità questo tipo di attacco prevede un rallentamento del 30 - 40% con velocità superiori ai 10 MB/s. Insituazioni di linee minori come 2, 4, 6 MB/s lo stallo della macchina è quasi assicurato. A seguire la funzione syn_flood() del codice sorgente dal quale ho preso le informazioni
11
void { ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! }
syn_flood (int sock, struct sockaddr_in sin, u_long dest, int psize) struct iphdr *ip; struct icmphdr *icmp; char *packet; packet = malloc(sizeof(struct iphdr) + sizeof(struct icmphdr) + psize); ip = (struct iphdr *)packet; icmp = (struct icmphdr *) (packet + sizeof(struct iphdr)); memset(packet, 0, sizeof(struct iphdr) + sizeof(struct icmphdr) + psize); ip->tot_len = htons(sizeof(struct iphdr) + sizeof(struct icmphdr) + psize); ip->ihl = 5; ip->version = 4; ip->ttl = 255; ip->tos = 0; ip->frag_off = 0; ip->protocol = IPPROTO_ICMP; ip->saddr = sin.sin_addr.s_addr; ip->daddr = dest; ip->check = in_chksum((u_short *)ip, sizeof(struct iphdr)); icmp->type = 5; icmp->code = 0; icmp->checksum = in_chksum((u_short *)icmp, sizeof(struct icmphdr) + psize); sendto(sock, packet, sizeof(struct iphdr) + sizeof(struct icmphdr) + psize, ! 0, (struct sockaddr *)&sin, sizeof(struct sockaddr)); free(packet);
/* free willy! */
Come si può notare, la funzione va a modificare il valore del tipo dell’ICMP; inoltre vengono mostrati i parametri necessari per l’invio dei pacchetti. L’attacco è stato effettuato con due macchine con sistema operativo Linux Backtrack 4 (macchina attacante) e Windows Xp SP2 (macchina vittima). I programmi utilizzati sono: NmbScan, Fping, Hping, Fierce e il programma descritto precedentemente. Dopo aver eseguito l’attacco ho dovuto riavviare la macchina in quanto era andata in stallo.
12
Come difendersi dal DDoS • Prevenire è meglio che curare Gli attacchi informatici di tipo DDoS sono molto difficili da fermare, in quanto, l’utente viene colto alla sprovvista. Infatti l’attacco si focalizza sopratutto in una saturazione della banda rendendo la macchina vittima completamente inutilizzabile. Ci sono delle strategie, o meglio, software che permettono l’impedimento di molteplici connessioni in entrata o il filtraggio di indirizzi IP non ritenuti idonei. - Network Ingress Filtering (NIF): nelle reti, l’ingress filtering è una tecnica usata per fare in modo che i pacchetti in entrata siano veramente quelli da cui dicono di provenire. Il NIF è un filtro di pacchetti usato da molti ISP (Internet Service Provider - Telecom, Fastweb, Tele2, ecc) che tentanto di prevenire la fasificazione degli indirizzi nel traffico Internet. Indirettamente cercano di limitare i tipi di abuso nella rete tenendo tranccia delle traffico di dati nelle linee.
3
3
Esempio di NIF in reti di tipo VPN [Cisco] 13
- Limit Network Traffic: limitare la quantità di banda usata da un particolare servizio (per esempio fornire più banda ai servizi web a discapito di ftp). Può essere usato anche in maniera reattiva per fermare un DDoS. - Firewall: è un componente passivo di difesa perimetrale che può anche svolgere funzioni di collegamento tra due o più tronconi di rete. Usualmente la rete viene divisa in due sottoreti: una, detta esterna, comprende l'intera Internet mentre l'altra interna, detta LAN (Local Area Network), comprende una sezione più o meno grande di un insieme di computer locali. In alcuni casi è possibile che si crei l'esigenza di creare una terza sottorete detta DMZ (o zona demilitarizzata) adatta a contenere quei sistemi che devono essere isolati dalla rete interna ma devono comunque essere protetti dal firewall. La funzionalità principale in sostanza è quella di creare un filtro sulle connessioni entranti ed uscenti, in questo modo il dispositivo innalza il livello di sicurezza della rete e permette sia agli utenti interni che a quelli esterni di operare nel massimo della sicurezza. Il firewall agisce sui pacchetti in transito da e per la zona interna potendo eseguire su di essi operazioni di: ■
controllo
■
modifica
■
monitoraggio
Questo grazie alla sua capacità di "aprire" il pacchetto IP per leggere le informazioni presenti sul suo header, e in alcuni casi anche di effettuare verifiche sul contenuto del pacchetto.
4
4
Semplice rappresentazione di una rete con e senza Firewall 14
• Analisi della rete - Intrusion Setecting System (IDS): è un dispositivo software o hardware (a volte combinazione tra i due) utilizzato per identificare accessi non autorizzati ai computer o alle reti locali. Gli IDS vengono utilizzati per rilevare tutti gli attacchi alle reti informatiche e ai computer. Questi attacchi includono gli attacchi alle reti informatiche tramite lo sfruttamento di un servizio vulnerabile, attacchi attraverso l'invio di dati malformati e applicazioni malevole, tentativi di accesso agli host tramite innalzamento illecito dei privilegi degli utenti, accessi non autorizzati a computer e file, e i classici programmi malevoli come virus, trojan e worm. Un IDS è composto da quattro componenti. Uno o più sensori utilizzati per ricevere le informazioni dalla rete o dai computer. Una console utilizzata per monitorare lo stato della rete e dei computer e un motore che analizza i dati prelevati dai sensori e provvede a individuare eventuali falle nella sicurezza informatica. Il motore di analisi si appoggia ad un database ove sono memorizzate una serie di regole utilizzate per identificare violazioni della sicurezza. Esistono diverse tipologie di IDS che si differenziano a seconda del loro compito specifico e delle metodologie utilizzate per individuare violazioni della sicurezza. Il più semplice IDS è un dispositivo che integra tutte le componenti in un solo apparato. È importante sapere che un IDS non può bloccare o filtrare i pacchetti in ingresso ed in uscita, né tanto meno può modificarli. Un IDS può essere paragonato ad un antifurto ed un firewall ad una porta blindata. L'IDS non cerca di bloccare le eventuali intrusioni, cosa che spetta al firewall, ma cerca di rilevarle laddove si verifichino. I meccanismi di individuazione di attività sospette sono diversi, ma generalmente si concentrano su: ■
verifica dei log di sistema o di specifici programmi per individuare attività anomale;
■
controllo dell'integrità dei file locali (modifiche sospette possono essere sintomo di una avvenuta irruzione);
■
monitoring dei pacchetti destinati all'host, sia per reagire a pattern di attacco noti che per accorgersi di un port scan remoto, generalmente prologo di un tentativo di intrusione.
5
5
Rappresentazione di una rete con Firewall e IDS 15
- Network Auditing Tools: consentono l'analisi di una intera rete aziendale per verificare la presenza di
agenti
per
DDoS.
6
• Una cura ? Non ci sono misure che possano riportare rapidamente la situazione sotto controllo. Ăˆ molto importante riuscire a determinare la provenienza reale (indirizzi Ip) dei pacchetti usati per l'attacco, per arginare il traffico generato da chi li sta inviando. Non basta controllare il mittente indicato nei pacchetti (l'indirizzo potrebbe essere falsificato). Si deve accedere ai router per ricostruire l'effettiva provenienza dei dati. In collaborazione con il proprio Isp contattare il fornitore di connessione Internet del mittente in modo che anche lui implementi dei filtri per bloccare il traffico indesiderato in entrata
6
Rappresentazione di un programma di analisi della rete 16
Conclusioni Da quanto riportato sopra, si può ben notare che è più facile realizzare un attacco che difendersi da esso. Purtroppo non è possibile fermare questi tipi di aggressioni ma semplicemente “limitarne i danni”. L’importante è dotarsi di sitemi di sicurezza che aiutino a tenere sotto controllo la rete e soprattutto evitando siti-web potenzialmente dannosi. Per quest’ultimo aspetto, esistono diversi plugin che aiutano l’utente a decidere quali sono le pagine sicure e quelle non.
17
Bibliografia [1] Ehrenkranz, T. and Li, J. 2009. On the state of IP spoofing defense. ACM Trans. Internet Technol. 9, 2, Article 6 (May 2009) [2] Huang, Y., Geng, X., and Whinston, A. B. 2007. Defeating DDoS attacks by fixing the incentive chain. ACM Trans. Intern. Tech. 7, 1, Article 5 (February 2007) [3] Dave Andersen. tcptraceroute. Available: http://nms.lcs.mit.edu/software/ron/ [4] S. Dietrich, N. Long, and D. Dittrich. Analyzing distributed denial of service tools: The shaft case. In Proceedings of USENIX LISA’2000, New Orleans, LA, (December 2000) [5] P. Ferguson and D. Senie. Network ingress filtering: Defeating denial of service attacks which employ IP source address spoofing. In RFC 2267, (January 1998) [6] R. Stone. Centertrack: An IP overlay network for tracking DoS floods. In Proceedings of USENIX Security Symposium’2000, Denver, CO, (August 2000) [7] H. Wang, D. Zhang, and K. G. Shin. Detecting syn flooding attacks. In Proceedings of IEEE INFOCOM ’2002, New York City, NY, (June 2002) [8] CERT advisory CA-1996-21, “TCP SYN flooding and IP Spoofing Attacks”, http://www.cert.org/ advisories/CA-1996-21.html [9] Udaya Kiran Tupakula, AA.VV - DoSTRACK: A System for Defending Against DoS Attacks, Macquarie University, North Ryde NSW-2109, Australia (January 2000) [10] A. Yaar, A. Perrig, and D. Song. Siff: A stateless internet flow filter to mitigate ddos flooding attacks. In Proceedings of The IEEE Symposium on Security and Privacy, pages 130–143, (2004) [11]A. Yaar, A. Perrig, and D. Song. Pi: a path identification mechanism to defend against ddos attacks. In Proceedings of the IEEE Symposium on Security and Privacy., pages 93–107, (2003) [12] Haining Wang, Danlu Zhang, and Kang G. Shin. Change-point monitoring for the detection of dos attacks. IEEE Trans. Dependable Sec. Comput., 1(4):193–208, (2004) [13] P. Ferguson and D. Senie, “Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing.” RFC 2267, (January 1998)
18