Un Attacco DoS Nuovo (ma neanche troppo) sfrutta il DNS

Da alcuni giorni si sta registrando un massiccio attacco worm che sta infettando milioni di PC con sistema operativo Windows. Il metodo di infezione (vettore) è un bug di cui parlai già in novembre (Microsoft Bullettin MS08-067). Scrissi inoltre un articolo che mostrava come attaccare Windows tramite un exploit basato su quella vulnerabilità utilizzando Metasploit.

Ma non è questo l’attacco di cui voglio parlare. Ho già trattato ampiamente questo bug, e oggi si stanno occupando del worm anche i mass media.

Invece un altro attacco che si sta svolgendo in queste ore mi sembra più interessante. Si tratta di un attacco DoS effettuato sfruttando una debolezza del sistema DNS e l’Ip spoofing.

Non è una novità, ma una nuova versione di un vecchio principio. Negli scorsi anni lo Smurf Attack fu il principe di questa categoria di attacchi.

Si tratta di un attacco asimmetrico: un piccolo frammento di dato viene moltiplicato tramite un amplificatore. Il risultato di questa operazione viene rovesciato sulla vittima sfruttando l’Ip spoofing. Vediamo i passi in dettaglio:
  1. Si crea un pacchetto dati mettendo come indirizzo destinazione l’indirizzo dell’amplificatore e come indirizzo sorgente quello della vittima
  2. Si invia il pacchetto all’amplificatore.
  3. Il frammento viene moltiplicato: nasce un flusso dati che viene rovesciato contro la vittima.

Così facendo un pirata con una linea anche non velocissima può “floodare” macchine con connessioni potenti. Se il fattore di amplificazione è 1000, inviando un flusso di 1 Mega la vittima se ne ritrova adosso 1000.

Questo in linea di principio il meccanismo. Lo Smurf Attack sfruttava dei normali pacchetti ping (icmp echo) con gli indirizzi sorgente e destinazione modificati (vedi punto 1). Come amplificatori si usavano reti di broadcast (spesso cinesi) che per ogni pacchetto ricevuto dal pirata, ne mandavano centinaia alla vittima.

L’attacco in corso in queste ore invece di utilizzare il protocollo icmp sfrutta il DNS, e al posto di amplificatori broadcast utilizza normali server DNS.

Il trucco funziona così:

  1. Si richiede il record NS del dominio “.” (punto) mettendo come indirizzo destinazione l’indirizzo di un server DNS e come indirizzo sorgente quello della vittima
  2. Si invia il pacchetto al server DNS
  3. Il pacchetto Udp (di 45 byte) viene interpretato dal server. Il dominio “.” significa root: la riposta sarà quindi una lunga lista di server root. Il pacchetto di 45 byte provoca una risposta di alcune migliaia di byte.

Un flusso continuo di queste richieste crea un flusso dati verso la vittima che si ritrova la linea bloccata (flooding).

I lettori più fedeli ricorderanno l’accenno che feci all’Ip spoofing nell’articolo su Kevin Mitnick e il suo leggendario del Natale ’94.

Anche in questo caso si tratta di un attacco blind spoofing: non importa che i dati tornino al pirata, non è necessario intercettare nulla. Lo scopo dello spoofing è quello di inviare dati alla vittima.

Ma in questo caso non si tratta di un Tcp spoofing ma di un Udp spoofing, quindi di un’operazione molto più semplice rispetto al blind spoofing Tcp, in quanto il protocollo Udp, a differenza del Tcp non implementa alcun meccanismo di controllo (ISN, Ack, Syn…).

Andando a memoria mi pare di ricordare che non è la prima volta che il DNS viene utilizzato in questo modo (roba di più di dieci anni fa). E anche lo Smurf Attack è parecchio datato. Ma il medesimo principio, quando assume una nuova forma rimane letale.

Per concludere posso dire che questo potente attacco asimmetrico rimane invariato nella sostanza, mutando nella forma adattandosi ai tempi. E di diverso rispetto a 10 anni fa c’è la quantità (enorme) di computer connessi alla rete. Molte più vittime da attaccare, molti più amplificatori da sfruttare.

2 Comments

Comments are closed.