Una broadcast storm (tempesta di trasmissioni), nelle reti informatiche, è una situazione che si può verificare quando vengono trasmessi nella rete dei messaggi broadcast o multicast, ognuno dei quali richiede al nodo che lo riceve di rispondere inoltrando il suo messaggio. La possibile conseguenza è un aumento esponenziale del traffico di rete, che comporta una saturazione completa delle risorse di rete disponibili o, in ogni caso, un drastico calo delle prestazioni. Un pacchetto che induce una tale tempesta è talvolta soprannominato pacchetto di Chernobyl. [1]

Sintomi

I sintomi più comuni che si rilevano nella rete sono:

Cause

Switching loops

Una broadcast storm è principalmente dovuta a carenze dei sistemi di reti informatiche che, seppure efficienti, a volte presentano debolezze intrinseche nelle strutture e nei protocolli di funzionamento.

Più comunemente la causa è un loop di commutazione, reso possibile dalla topologia e dal cablaggio della rete. Nello switching di secondo livello (layer II switching), i collegamenti ridondanti, che sono usati per assicurare la connettività con gli altri switch della rete, stabiliscono l’esistenza di due o più percorsi tra le stazioni terminali e possono causare bridge loops (o switching loops). Poiché le trasmissioni broadcast e multicast vengono inoltrate dagli switch su ogni porta di uscita, fatta eccezione per la porta che ha ricevuto il frame in ingresso, in assenza di particolari configurazioni dei dispositivi gli switch ritrasmettono ripetutamente messaggi broadcast fino ad invadere la rete. Inoltre, dato che l’header del data link layer non supporta un valore time to live (TTL), se un frame viene inviato in una topologia a loop, può eseguire il ciclo per sempre.

Switching loop

Una situazione del genere, ad esempio, si può verificare concretamente quando un host invia un pacchetto ARP (Address Resolution Protocol), per definizione del protocollo di tipo broadcast, necessario per la comunicazione in una rete locale. Il frame raggiunge tutti gli switch della rete che ne esaminano il campo Destination Address e stabiliscono la porta nella quale inoltrarlo. La topologia della rete potrebbe causare di conseguenza un bridge loop, anche in seguito alla ricezione di una copia del frame da parte della destinazione, poiché più switch continuano a ripetere il pacchetto in segmenti opposti della rete.

Facendo riferimento alla figura sulla destra, si può riassumere, con i seguenti punti, una broadcast storm dovuta ad un bridge loop (o switching loop):

  1. L'host invia un messaggio broadcast nella rete
  2. Il primo switch analizza il pacchetto ricevuto e lo inoltra nella parte inferiore della rete
  3. Il secondo switch riceve la copia del pacchetto e opera di conseguenza come il primo switch, inoltrandolo nella parte superiore della rete
  4. Poiché il pacchetto è di tipo broadcast, gli switch lo ripetono sempre su tutte le porte escludendo la porta da cui è arrivato. Il ciclo è così destinato a continuare all'infinito.

In genere, inoltre, più switch ricevono da segmenti diversi la copia originale del pacchetto, trattandosi appunto di un messaggio broadcast. È possibile, quindi, che diverse copie del pacchetto percorrano il ciclo anche nella direzione opposta, amplificando ulteriormente la quantità di traffico nella rete.

Attacchi informatici

Una broadcast storm può anche essere generata da un cracker in modo da costituire un attacco denial of service (DoS), ai fini di fare collassare una rete. In questo caso si sfruttano funzioni del protocollo ICMP che, usate impropriamente, minano la sicurezza del protocollo stesso. Metodi di attacco provati sono smurf e fraggle. Un attacco smurf invia un gran numero di ICMP Echo Request (ping) all’indirizzo di broadcast, dove in ogni pacchetto l'indirizzo del mittente è modificato con quello della vittima (IP spoofing), che riceverà quindi le risposte: quando il pacchetto falsificato giunge alla rete di destinazione, tutti gli host della rete rispondono all'indirizzo scelto dall'attaccante (quello della vittima). L'iniziale richiesta di eco si moltiplica per tutti gli host della rete, generando una tempesta di risposte che satura la banda e il processore della vittima.[2] Un attacco smurf può essere eseguito congiuntamente ad un attacco ping flood, con lo scopo di incrementare le Echo Requests e massimizzarne la velocità. Un attacco fraggle è invece una variante dello smurf e utilizza il protocollo UDP al posto di ICMP.

Nelle reti wireless, un pacchetto di dissociazione con una fonte diversa da quella del punto di accesso wireless (MAC spoofing) e inviato all’indirizzo di broadcast può generare un attacco DoS. I client colpiti dall’attaccante, ricevendo tale pacchetto e credendo che provenga realmente dall’access point, si dissociano dallo stesso. Si genera così una tempesta di trasmissioni poiché, tipicamente, i client si riassociano al dispositivo, ma l’attaccante continua ad inviare disassociation broadcast packet nella rete.[3]

Difesa e prevenzione

Per verificare la presenza di uno storm è possibile effettuare una semplice prova: lanciare un "echo request" o ping verso un'altra interfaccia ethernet; in questa condizione si potrebbe notare un tempo di risposta con latenza molto elevata superiore ai 200ms, o addirittura la mancata risposta del dispositivo di destinazione. Il problema è risolvibile fisicamente, ricercando il dispositivo Hub/Switch/Router a cui sono stati collegati due cavi in loop, oppure tramite strumenti software che ne prevengono la propagazione.

Ad oggi si tratta comunque di un problema meno diffuso rispetto al passato, poiché con il tempo sono state adottate diverse soluzioni di switching a livello 3 (livello di rete) e sono stati introdotti diversi accorgimenti (anche a livello 2) per impedire il verificarsi di tali situazioni. Occorre invece prestare sempre attenzione e proteggersi adeguatamente da broadcast storm generate da attaccanti. I principali metodi di prevenzione utilizzabili sono i seguenti:

Errori di interpretazione

MANET broadcast storms

In una rete ad-hoc mobile (MANET), solitamente si trasmettono pacchetti di richiesta (RREQ) per scoprire nuovi percorsi. Questi pacchetti RREQ possono causare tempeste di trasmissione transitando sul canale con i pacchetti di dati. Un approccio per ridurre la broadcast storm è quello di impedire la ritrasmissione ad alcuni host per ridurre la ridondanza e quindi la collisione dei pacchetti.[6]

Note

  1. ^ (EN) What is a Chernobyl Packet?. URL consultato il 26 dicembre 2017.
  2. ^ SecurityDocs: Comment on Defense Against the DoS/DDoS Attacks on Cisco Routers, su securitydocs.com, 11 dicembre 2006. URL consultato il 26 dicembre 2017 (archiviato dall'url originale l'11 dicembre 2006).
  3. ^ Disassociation Broadcast Attack using ESSID Jack, su manageengine.adventnet.com, 11 dicembre 2006. URL consultato il 26 dicembre 2017 (archiviato dall'url originale l'11 dicembre 2006).
  4. ^ (EN) What is brouter? - Definition from WhatIs.com, in SearchNetworking. URL consultato il 26 dicembre 2017.
  5. ^ (EN) Catalyst 6500 Release 12.2SX Software Configuration Guide - Traffic Storm Control [Cisco Catalyst 6500 Series Switches], su Cisco. URL consultato il 26 dicembre 2017.
  6. ^ Ni Sze-Yao, Tseng Yu-Chee, Chen Yuh-Shyan, Sheu Yang-Ping, The Broadcast Storm Problem in a Mobile Ad Hoc Network (PDF), MobiCom '99 Proceedings of the 5th annual ACM/IEEE international conference on Mobile computing and networking, Agosto 1999, pp. 151-162.

Bibliografia

Voci correlate