Smurf

Da Wikipedia, l'enciclopedia libera.
Schema dell'attacco Smurf.

Per Smurf si intende una tipologia di attacco su rete Internet volto a causare un Denial of Service. Ad ogni nodo connesso in rete è associato un Indirizzo IP univoco. La struttura del protocollo IP non impedisce lo spoofing degli indirizzi IP, questo permette ad un qualsiasi nodo di generare un pacchetto con indirizzo IP mittente arbitrario. Di conseguenza è possibile l'invio di un pacchetto IP dal proprio nodo, usando l'indirizzo IP di una seconda macchina presente in rete. Una tipologia di richiesta d'informazione del protocollo di diagnostica ICMP (Internet Control Message Protocol) consente l'invio di richieste di eco (ECHO_REQUEST) al fine di:

  • Stabilire se è possibile la comunicazione a livello IP tra due nodi
  • Verificare l'esistenza di un nodo in una rete
  • Calcolare in termini di tempo la distanza che intercorre tra due nodi

L'attacco Smurf, consente l'invio pacchetti ICMP ECHO_REQUEST (tipo 8), generalmente denominati ping, con indirizzo mittente "spoofato" e corrispondente all'indirizzo IP del computer vittima (target), ad una serie di gateway.

Il Gateway malconfigurato, riceve il ping, e lo instrada a tutti i nodi connessi alla propria sottorete, i quali invieranno un pacchetto di risposta ECHO_REPLY (tipo 0) all'indirizzo IP mittente. In una rete broadcast a multiaccesso (come ad esempio reti di providers) centinaia di macchine connesse potrebbero rispondere ad ogni pacchetto[1].

Gli indirizzi destinati al gateway generalmente sono quelli con la porzione dedicata all’host con i bit tutti ad 1. Ad esempio, l’indirizzo IP di broadcast della rete 10.0.0.0 è 10.255.255.255.

Generalmente l'attacco smurf risulta efficace utilizzando numerosi gateway. I fautori dell'attacco necessitano quindi di broadcast list (smurf amplifiers), generalmente file di testo contenenti una lista di indirizzi IP corrispondenti a gateway malconfigurati presenti in rete. Questo attacco, a causa del fatto che "amplifica" la quantità di dati usati dall'attaccante fa parte dei cosiddetti amplification attack.

Tale tecnica consente di generare molto traffico, soprattutto considerando che i messaggi ICMP sono incapsulati in un datagram IP, che consente l'inserimento di dati opzionali, e nel caso di richieste eco (ECHO_REQUEST), tali dati saranno replicati nei messaggi di risposta.

Il nodo vittima (target) riceverà un flood di pacchetti ICMP da numerosi indirizzi IP. Gli effetti di questo attacco si verificano in:

  • Saturazione della banda disponibile e quindi disconnessione delle connessioni TCP
  • Disconnessione dalla rete in connessioni analogiche
  • Crash dei firewall software
  • Crash di sistemi operativi obsoleti

Storia[modifica | modifica sorgente]

L'attacco Smurf si diffonde in rete intorno alla fine degli anni 90. Gli attackers generalmente miravano al flood di servers IRC e di numerosi utenti ad essi connessi, spesso al fine di ottenere il possesso di un canale IRC (take over); questo perché i demoni IRC più usati non consentivano l'opzione di masking degli indirizzi IP degli utenti connessi, lasciando tali indirizzi di fatto visibili all'utenza stessa. Altri fenomeni di cybercrime tramite smurf si verificavano al fine di portare in downtime un server (anche server destinati all'hosting di siti web, shell provider.. etc.), in modo da rendere tale server irraggiungibile in rete.

Ad oggi, l'attacco smurf è ancora possibile, nonostante siano diminuiti drasticamente i gateway malconfigurati, questo anche grazie a numerose società produttrici di routers che hanno disabilitato di default il broadcasting dei pacchetti ICMP sui propri prodotti di rete.

Diffusione[modifica | modifica sorgente]

Diffusione su Microsoft Windows[modifica | modifica sorgente]

Un programma Smurf per sistemi operativi Windows ad opera del gruppo hacker italiano Netangels.

Originariamente il programma che permetteva l'attacco smurf era un software opensource scritto in C per sistemi operativi unix-like (Posix standard), come Linux o BSD. In un secondo momento seguendo lo schema di costruzione del pacchetto ICMP e l'algoritmo utilizzato per l'attacco, furono creati diversi software, tali da consentire attacchi smurf anche a partire dal sistema operativo Microsoft Windows.

Numerosi software che consentivano l'attacco smurf, furono inseriti nei database degli antivirus più noti in commercio, al fine di limitare la diffusione degli attacchi e di scoraggiare gli attackers stessi.

L'attacco è stato possibile sui sistemi operativi Microsoft fino al rilascio della Service Pack 2 per Windows XP, la cui patch disabilitava di fatto, la possibilità di creare RAW Sockets, e di conseguenza di manipolare i pacchetti IP. Da quel momento non fu più possibile gestire lo spoofing dei messaggi ICMP e chi avesse voluto provare ad utilizzare ugualmente lo smurf sarebbe rimasto vittima del suo stesso attacco.

Diffusione su Linux[modifica | modifica sorgente]

Il primo vero smurfer per Linux è considerato il Papasmurf, programma scritto nel linguaggio C, rilasciato il 28 luglio 1998 come software opensource, creato dall'hacker TFreak membro del gruppo rootshell e promosso dal portale di sicurezza informatica PacketStorm Security. Ad oggi Papasmurf risulta ancora funzionante sui sistemi operativi GNU/Linux.

Questo programma fu oggetto di abuso da parte di lamer e script kiddie.

Broadcast list[modifica | modifica sorgente]

Durante l'evoluzione di Internet si sono susseguiti diversi siti e team che riportavano liste di reti malconfigurate, ovvero reti i cui gateway permettevano il broadcasting dei pacchetti ICMP. Il più famoso è l'ormai inattivo Netscan.org che forniva liste in numerosi formati testuali. Ancora attiva invece è la norvegese Powertech, provider e società di consulenza informatica, che scansiona la rete al fine di trovare bug nei network e fornisce informazioni sulle liste broadcast mettendo a disposizione un database SAR (Smurf Amplifiers Registry).

Contromisure[modifica | modifica sorgente]

Smurf Amplifiers[modifica | modifica sorgente]

Client[modifica | modifica sorgente]

Singoli computer appartenenti ad una rete possono essere protetti dal diventare amplificatori di attacchi smurf, semplicemente impostando il blocking dei pacchetti ICMP in ingresso, di conseguenza non risponderanno più ad alcun Ping.

Numerosi firewall software (tra cui quello in bundle con Windows) incorporano già questa funzionalità di default.

Router[modifica | modifica sorgente]

Configurare il router in modo da non redirigere i pacchetti via broadcast. Dal 1999 lo standard relativo al broadcast sui router fu cambiato affinché i pacchetti non fossero più instradati a tutti i nodi di rete[2] È possibile limitare la banda da destinare al servizio ICMP tale da diminuire l'amplificazione attivando la funzione di CAR (Committed Access Rate) presente su IOS a partire dalla versione 11.1CE.

Al fine di non essere utilizzati da terzi per l'amplificazione di un attacco smurf nei vecchi routers Cisco il comando da applicare che evita l'instradamento su broadcast dei pacchetti è:

no ip directed-broadcast

Nelle versioni più recenti di IOS tale funzione è attivata di default.

Una possibile soluzione per la sottorete alla quale appartiene il nodo dell'attacker potrebbe essere quella di filtrare i pacchetti al fine di verificare l'appartenenza alla sottorete[3].

Linux[modifica | modifica sorgente]

Per impedire a un sistema operativo basato su GNU/Linux di rispondere alle richieste broadcast di ECHO, è possibile attivare il firewall a livello di kernel utilizzando il comando:

iptables

Una valida protezione è ottenuta installando il modulo kernel AngeL (che impedisce la generazione di pacchetti di numerosi attacchi DoS) ad opera del team Sikurezza.org

Unix[modifica | modifica sorgente]

Nei sistemi operativi basati su Unix è necessario disattivare inserendo un # prima del nome:

echo 
chargen

nel path:

/etc/inetd/conf

Vittima[modifica | modifica sorgente]

Generalmente un firewall risulta comunque inutile durante un flood: nonostante i pacchetti in eccesso siano tralasciati, la banda a disposizione è ugualmente saturata. È virtualmente possibile con la collaborazione dell'ISP di una rete dalla quale provengono gli attacchi procedere ad una investigazione "al contrario", passando per gli ISP dei vari gateway di passaggio al fine di individuare la rete iniziale da cui sono partiti i pacchetti e l'indirizzo fisico (MAC) dei pacchetti iniziali.

Nomi alternativi[modifica | modifica sorgente]

  • Papasmurf
  • Vortex
  • WSmurf
  • NSA (Network Saturation Attack)
  • Smurf2K
  • Winsmurf

Variante UDP[modifica | modifica sorgente]

È diffusa anche una variante dello smurf che utilizza come protocollo UDP (User Datagram Protocol) al posto di ICMP, nota con il nome Fraggle. Gli attacchi che utilizzano il protocollo UDP sono usati in quanto generano molto traffico sulla rete.

Curiosità[modifica | modifica sorgente]

La parola Smurf si traduce in Italiano con Puffo mentre i fraggles sono dei pupazzi. Papasmurf è il nome inglese dell'italiano Grande Puffo. L'attacco smurf è considerato una tecnica di oldschool hacking.

Note[modifica | modifica sorgente]

  1. ^ "CERT Advisory CA-1998-01 Smurf IP Denial-of-Service Attacks"
  2. ^ D. Senie, "Changing the Default for Directed Broadcasts in Routers", RFC 2644, BCP 34
  3. ^ P. Ferguson and D. Senie, "Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing", RFC 2827, BCP 38

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]