Aller au contenu principal

6. Security Considerations (Considérations de sécurité)

Cette section décrit diverses préoccupations de sécurité possibles liées au protocole PIM-SM. Le lecteur est invité à consulter [8], [14] et [15] pour une discussion plus approfondie de PIM-SM et de la sécurité multicast.

Notez que PIM s'appuie sur une MRIB remplie en dehors de PIM; par conséquent, il est recommandé (RECOMMENDED) de sécuriser les sources de modifications de la MRIB.

6.1. Attacks Based on Forged Messages (Attaques basées sur des messages falsifiés)

L'étendue des dommages possibles dépend du type de messages contrefaits acceptés. Nous examinons ensuite l'impact des falsifications possibles, y compris les messages locaux falsifiés (Join/Prune, Hello et Assert) et les messages unicast falsifiés (Register et Register-Stop).

Les messages Join/Prune, Hello et Assert sont tous envoyés à l'adresse multicast link-local ALL-PIM-ROUTERS et ne sont donc pas transférés par un routeur conforme. Un message falsifié de ce type ne peut atteindre un LAN que s'il a été envoyé par un hôte local ou s'il a été autorisé sur le LAN par un routeur compromis ou non conforme.

  1. Un message Join/Prune falsifié peut entraîner la livraison du trafic multicast vers des liens où il n'y a pas de demandeurs légitimes, gaspillant potentiellement la bande passante sur ce lien. Un message leave falsifié sur un LAN multi-accès n'est généralement pas une attaque significative dans PIM, car tout routeur légitimement joint sur le LAN remplacerait le leave par un join avant que le routeur en amont n'arrête de transférer les données vers le LAN.

  2. En falsifiant un message Hello, un routeur non autorisé peut se faire élire comme routeur désigné (Designated Router) sur un LAN. Le routeur désigné sur un LAN est (en l'absence d'assertions) responsable du transfert du trafic vers ce LAN au nom de tous les membres locaux. Le routeur désigné est également responsable de l'encapsulation register vers le RP de tous les paquets provenant des hôtes du LAN. Ainsi, la capacité des hôtes locaux à envoyer et recevoir du trafic multicast peut être compromise par un message Hello falsifié.

  3. En falsifiant un message Assert sur un LAN multi-accès, un attaquant pourrait amener le forwarder désigné légitime à cesser de transférer le trafic vers le LAN. Une telle falsification empêcherait tous les hôtes en aval de ce LAN de recevoir du trafic.

6.1.2. Forged Unicast Messages (Messages unicast falsifiés)

Les messages Register et Register-Stop sont transférés par les routeurs intermédiaires vers leur destination en utilisant le routage IP normal. Sans authentification de l'origine des données, un attaquant situé n'importe où dans le réseau peut être capable de falsifier un message Register ou Register-Stop. Nous examinons ensuite l'effet d'une falsification de chacun de ces messages.

  1. En falsifiant un message Register, un attaquant peut amener le RP à injecter du trafic falsifié dans l'arbre multicast partagé.

  2. En falsifiant un message Register-Stop, un attaquant peut empêcher un DR légitime d'enregistrer des paquets auprès du RP. Cela peut empêcher les hôtes locaux sur ce LAN d'envoyer des paquets multicast.

Les deux messages PIM ci-dessus ne sont pas modifiés par les routeurs intermédiaires et ne doivent être examinés que par le destinataire prévu. Ainsi, ces messages peuvent être authentifiés de bout en bout. Les attaques sur les messages Register et Register-Stop ne s'appliquent pas à une implémentation PIM-SSM uniquement, car ces messages ne sont pas requis pour PIM-SSM.

6.2. Non-cryptographic Authentication Mechanisms (Mécanismes d'authentification non cryptographiques)

Un routeur PIM devrait (SHOULD) fournir une option pour limiter l'ensemble des voisins dont il acceptera les messages Join/Prune, Assert et Hello. Une configuration statique des adresses IP ou une association de sécurité IPsec peuvent être utilisées. De plus, un routeur PIM ne devrait pas (SHOULD NOT) accepter de messages de protocole d'un routeur dont il n'a pas encore reçu de message Hello valide.

Un routeur désigné ne doit pas (MUST NOT) encapsuler un paquet en register et l'envoyer au RP à moins que l'adresse source du paquet ne soit une adresse légale pour le sous-réseau sur lequel le paquet a été reçu. De même, un routeur désigné ne devrait pas (SHOULD NOT) accepter un paquet Register-Stop dont l'adresse source IP n'est pas une adresse RP valide pour le domaine local.

Une implémentation devrait (SHOULD) fournir un mécanisme permettant à un RP de restreindre la plage d'adresses sources dont il accepte les paquets encapsulés en Register.

Toutes les options qui restreignent la plage d'adresses dont les paquets sont acceptés doivent (MUST) par défaut autoriser tous les paquets.

6.3. Authentication (Authentification)

Ce document fait référence à la RFC 5796 [8], qui spécifie des mécanismes pour authentifier les messages link-local PIM-SM en utilisant le Encapsulating Security Payload (ESP) IPsec ou (en option) le Authentication Header (AH). Il souligne également que les messages PIM-SM non link-local (c'est-à-dire les messages Register et Register-Stop) peuvent être sécurisés par une association de sécurité (Security Association, SA) IPsec unicast normale entre deux communicants.

6.4. Denial-of-Service Attacks (Attaques par déni de service)

Il existe un certain nombre d'attaques par déni de service possibles contre PIM qui peuvent être causées par la génération de faux messages de protocole PIM ou même par la génération de faux trafic. L'authentification du trafic de protocole PIM empêche certaines, mais pas toutes, de ces attaques. Deux des attaques possibles incluent:

  • L'envoi rapide de paquets à de nombreuses adresses de groupe différentes peut être une attaque par déni de service en soi. Cela entraînera de nombreux paquets encapsulés en Register, chargeant le DR, le RP et les routeurs entre le DR et le RP.

  • La falsification de messages Join peut entraîner la mise en place d'un arbre multicast. Un grand nombre de joins falsifiés peut consommer les ressources du routeur et entraîner un déni de service.