6. Security Considerations (Considerazioni sulla sicurezza)
Questa sezione descrive varie possibili preoccupazioni sulla sicurezza relative al protocollo PIM-SM. Il lettore è invitato a consultare [8], [14] e [15] per ulteriori discussioni su PIM-SM e la sicurezza multicast.
Si noti che PIM si basa su una MRIB popolata al di fuori di PIM; pertanto, si raccomanda (RECOMMENDED) di proteggere le fonti di modifiche alla MRIB.
6.1. Attacks Based on Forged Messages (Attacchi basati su messaggi falsificati)
L'entità del possibile danno dipende dal tipo di messaggi contraffatti accettati. Consideriamo ora l'impatto di possibili falsificazioni, inclusi messaggi link-local falsificati (Join/Prune, Hello e Assert) e messaggi unicast falsificati (Register e Register-Stop).
6.1.1. Forged Link-Local Messages (Messaggi link-local falsificati)
I messaggi Join/Prune, Hello e Assert sono tutti inviati all'indirizzo multicast link-local ALL-PIM-ROUTERS e quindi non vengono inoltrati da un router conforme. Un messaggio falsificato di questo tipo può raggiungere una LAN solo se è stato inviato da un host locale o se è stato consentito sulla LAN da un router compromesso o non conforme.
-
Un messaggio Join/Prune falsificato può causare la consegna del traffico multicast a collegamenti dove non ci sono richiedenti legittimi, potenzialmente sprecando larghezza di banda su quel collegamento. Un messaggio leave falsificato su una LAN multi-accesso generalmente non è un attacco significativo in PIM, poiché qualsiasi router legittimamente unito sulla LAN sovrascriverebbe il leave con un join prima che il router upstream smetta di inoltrare dati alla LAN.
-
Falsificando un messaggio Hello, un router non autorizzato può farsi eleggere come router designato (Designated Router) su una LAN. Il router designato su una LAN è (in assenza di assert) responsabile dell'inoltro del traffico a quella LAN per conto di qualsiasi membro locale. Il router designato è anche responsabile dell'incapsulamento register verso l'RP di qualsiasi pacchetto originato da host sulla LAN. Pertanto, la capacità degli host locali di inviare e ricevere traffico multicast può essere compromessa da un messaggio Hello falsificato.
-
Falsificando un messaggio Assert su una LAN multi-accesso, un attaccante potrebbe causare l'interruzione dell'inoltro del traffico alla LAN da parte del forwarder designato legittimo. Tale falsificazione impedirebbe a qualsiasi host a valle di quella LAN di ricevere traffico.
6.1.2. Forged Unicast Messages (Messaggi unicast falsificati)
I messaggi Register e Register-Stop vengono inoltrati dai router intermedi alla loro destinazione utilizzando il normale inoltro IP. Senza autenticazione dell'origine dei dati, un attaccante situato ovunque nella rete potrebbe essere in grado di falsificare un messaggio Register o Register-Stop. Consideriamo ora l'effetto di una falsificazione di ciascuno di questi messaggi.
-
Falsificando un messaggio Register, un attaccante può causare l'iniezione di traffico falsificato nell'albero multicast condiviso da parte dell'RP.
-
Falsificando un messaggio Register-Stop, un attaccante può impedire a un DR legittimo di registrare pacchetti presso l'RP. Ciò può impedire agli host locali su quella LAN di inviare pacchetti multicast.
I due messaggi PIM sopra citati non vengono modificati dai router intermedi e devono essere esaminati solo dal destinatario previsto. Pertanto, questi messaggi possono essere autenticati end-to-end. Gli attacchi ai messaggi Register e Register-Stop non si applicano a un'implementazione PIM-SSM only, poiché questi messaggi non sono richiesti per PIM-SSM.
6.2. Non-cryptographic Authentication Mechanisms (Meccanismi di autenticazione non crittografici)
Un router PIM dovrebbe (SHOULD) fornire un'opzione per limitare l'insieme dei vicini dai quali accetterà messaggi Join/Prune, Assert e Hello. Può essere utilizzata una configurazione statica di indirizzi IP o un'associazione di sicurezza IPsec. Inoltre, un router PIM non dovrebbe (SHOULD NOT) accettare messaggi di protocollo da un router dal quale non ha ancora ricevuto un messaggio Hello valido.
Un router designato non deve (MUST NOT) incapsulare un pacchetto in register e inviarlo all'RP a meno che l'indirizzo sorgente del pacchetto non sia un indirizzo legale per la sottorete su cui il pacchetto è stato ricevuto. Allo stesso modo, un router designato non dovrebbe (SHOULD NOT) accettare un pacchetto Register-Stop il cui indirizzo sorgente IP non sia un indirizzo RP valido per il dominio locale.
Un'implementazione dovrebbe (SHOULD) fornire un meccanismo per consentire a un RP di limitare l'intervallo di indirizzi sorgente dai quali accetta pacchetti incapsulati in Register.
Tutte le opzioni che limitano l'intervallo di indirizzi dai quali vengono accettati i pacchetti devono (MUST) per impostazione predefinita consentire tutti i pacchetti.
6.3. Authentication (Autenticazione)
Questo documento fa riferimento a RFC 5796 [8], che specifica i meccanismi per autenticare i messaggi link-local PIM-SM utilizzando l'IPsec Encapsulating Security Payload (ESP) o (opzionalmente) l'Authentication Header (AH). Sottolinea inoltre che i messaggi PIM-SM non link-local (ovvero i messaggi Register e Register-Stop) possono essere protetti da una normale associazione di sicurezza (Security Association, SA) IPsec unicast tra due comunicanti.
6.4. Denial-of-Service Attacks (Attacchi denial-of-service)
Esistono numerosi possibili attacchi denial-of-service contro PIM che possono essere causati generando falsi messaggi di protocollo PIM o persino generando traffico falso. L'autenticazione del traffico di protocollo PIM previene alcuni, ma non tutti, di questi attacchi. Due dei possibili attacchi includono quanto segue:
-
L'invio rapido di pacchetti a molti indirizzi di gruppo diversi può essere di per sé un attacco denial-of-service. Ciò causerà molti pacchetti incapsulati in Register, caricando il DR, l'RP e i router tra il DR e l'RP.
-
La falsificazione di messaggi Join può causare la configurazione di un albero multicast. Un gran numero di join falsificati può consumare risorse del router e causare un denial-of-service.