DHCP Snooping : une plus grande sécurité pour votre réseau

Le Dynamic Host Configuration Protocol (DHCP) facilite la configuration du réseau : aujourd’hui, plutôt que de configurer individuellement chaque client, PC, smartphone ou appareil compatible, on préfère généralement faire appel au DHCP. Les différents participants au réseau obtiennent leur adresse IP, les masques de sous-réseau et d’autres informations via un serveur. Cela permet non seulement de faciliter le travail avec de vastes réseaux, mais aussi de réduire les sources d’erreur : l’attribution des adresses s’effectuant de façon dynamique, il est impossible que deux appareils se voient attribuer la même adresse IP. Cela réduit également l’espace d’adressage nécessaire : si l’appareil se déconnecte du réseau, l’adresse IP peut être automatiquement libérée pour un nouveau participant au réseau.

Malheureusement, ce raccourci constitue également une porte d’entrée pour les cybercriminels. Lorsque l’on compte sur quelqu’un d’autre pour faire le travail, on perd en contrôle. Certaines choses, dont on n’a absolument pas conscience, peuvent alors se dérouler en arrière-plan. Il en va de même pour le DHCP. Fort heureusement, il existe une solution : il est possible de lutter contre cette utilisation abusive du DHCP avec le DHCP snooping. Comment fonctionne cette technologie de sécurité ?

À quoi sert le DHCP snooping ?

Dans le cadre du DHCP, un serveur est chargé de la configuration des différents clients. Pour ce faire, le client envoie tout d’abord une requête au réseau par broadcast. Le participant au réseau entend ainsi déterminer quels serveurs DHCP sont disponibles et peuvent répondre. Tous les serveurs DHCP disponibles répondent à cette requête. Si plusieurs serveurs sont activés au sein du réseau, le client choisit la première réponse qui lui est parvenue. Le client procède ensuite à l’attribution des adresses à l’aide de ce serveur DHCP. C’est ici que se trouve le point faible du système, la porte d’entrée des cybercriminels.

Il est possible d’intégrer d’autres serveurs (qu’on appelle serveur DHCP non autorisé) dans le réseau. Lorsqu’un serveur de ce type parvient à répondre au client en premier, le participant au réseau reçoit les informations de configuration via le serveur nuisible. Le serveur DHCP non autorisé envoie alors des données erronées et manipulées. Le client est donc paramétré de façon erronée. Il est ainsi possible d’effectuer un DHCP-Spoofing (« usurpation DHCP »), c’est-à-dire de piloter le client vers une fausse passerelle. À travers cette passerelle, les cybercriminels peuvent intercepter le transfert des données et obtenir des informations sensibles. Ce type d’attaque est surnommée « man in the middle attack » ou attaque de l’homme du milieu. Une attribution d’adresse erronée peut en revanche entraîner une « Denial of service attack » ou attaque par déni de service : l’intégralité du réseau est alors paralysée. Le DHCP snooping empêche toute prise de contact avec des serveurs nuisibles.

Remarque

Dans la plupart des réseaux domestiques (LAN ou WLAN), la fonction de serveur DHCP est assumée par un routeur. Cela ne nous prémunit pas contre le danger que représente le DHCP-Spoofing, car chaque appareil peut en principe devenir un serveur DHCP. Les cybercriminels peuvent par exemple infiltrer un ordinateur portable dans le réseau local sans fil et contrôler l’attribution des adresses de cette façon.

Cependant le DHCP snooping ne protège pas uniquement des actes criminels, mais aussi des sources d’erreur causées par l’utilisation irréfléchie de routeurs supplémentaires. Si un nouveau routeur est intégré dans un réseau existant, il peut dérégler le DHCP : le nouveau routeur attribue alors des adresses qu’il ne devrait pas attribuer, pouvant ainsi entraîner des erreurs de connexion. Dans un contexte d’entreprise notamment, des problèmes peuvent survenir lorsque les employés intègrent leurs propres appareils dans le réseau sans en informer l’administrateur réseau.

Le DHCP snooping : de quoi s’agit-il ?

Le DHCP snooping est une fonction de sécurité intervenant au deuxième niveau du modèle OSI. Cette fonction est intégrée dans le commutateur connectant les clients aux serveurs DHCP. En d’autres termes, il s’agit d’un protocole qui contrôle tout d’abord l’ensemble des informations DHCP passant par le commutateur. Seuls les paquets autorisés provenant de serveurs dignes de confiance sont transmis aux clients.

Remarque

Cisco a été le premier fabricant à utiliser le DHCP snooping dans ses appareils. La société est également co-auteur de la RFC 7513 dans laquelle ce principe est expliqué. Cependant, de nombreux fabricants de périphériques de réseau ont aujourd’hui suivi son exemple et proposent cette fonction de sécurité dans leurs appareils (parfois sous d’autres appellations).

De cette façon, un serveur DHCP non autorisé peut certes recevoir le paquet DHCPDISCOVER (la requête du client visant à obtenir un serveur DHCP) puisqu’il surveille le broadcast. Il peut aussi envoyer un paquet DHCPOFFER (la réponse à la recherche), mais ce paquet n’atteindra jamais le client. Placé dans le commutateur, le DHCP snooping identifie le fait que le paquet ne provient pas d’un serveur digne de confiance et contient de fausses informations et procède donc au blocage de la transmission.

Ports dignes de confiance

Pour garantir que seuls les serveurs fiables puissent intervenir dans l’attribution d’informations de configuration, le DHCP snooping procède en plusieurs étapes. Dans un premier temps, il détermine un port de confiance pour le serveur ou les serveurs propres. Tous les autres appareils essayant d’accéder au réseau via un autre port sont considérés comme non dignes de confiance. Tous les clients en font également partie. Cela implique donc qu’un hôte sur lequel tourne un serveur DHCP mais qui n’est pas approuvé par l’administrateur sera considéré comme non digne de confiance. Mais si un paquet DHCP ne pouvant être envoyé que par un serveur (DHCPOFFER, DHCPACK, DHCPMAK) arrive par le biais d’un port qui n’est pas digne de confiance, le commutateur bloque la transmission. Le client ne recevra pas l’information.

La DHCP snooping Binding Database

Néanmoins, un hacker peut également essayer de détruire le réseau en se faisant passer pour l’un des clients existants et en rejetant ces offres du serveur DHCP. C’est pourquoi le DHCP snooping utilise une base de données créée et actualisée de façon autonome par le système. Le protocole lit toutes les informations DHCP (mais pas les données effectives après la réussite de la connexion) et en extrait des détails pour la DHCP snooping Binding Database.

Le système enregistre dans la base de données tous les hôtes ne passant pas par un port digne de confiance. Les informations accumulées comprennent l’adresse MAC, l’adresse IP attribuée, le port du commutateur utilisé, le sous-réseau logique (VLAN) et la durée du Lease Time. Le DHCP snooping peut ainsi garantir que seuls les clients originaux ayant participé à la communication peuvent envoyer des ordres au serveur, car l’adresse MAC et le port du commutateur de l’appareil ne coïncident avec les informations enregistrées dans la base de données que pour ces clients originaux.

Remarque

D’autres mesures de sécurité, telles que l’ARP Inspection ou l’IP Source Guard utilisent aussi la DHCP snooping Binding Database.

Fichiers journaux

Certains périphériques réseau peuvent par ailleurs établir un rapport sur le processus de défense dans le cadre du DHCP. Il est possible de se faire envoyer les fichiers journaux (logs) et de les analyser. La procédure distingue deux erreurs dans cette documentation : d’une part, le décalage entre l’adresse MAC actuelle et les informations enregistrées dans la base de données et, d’autre part, les paquets de serveur envoyés via un port qui n’est pas digne de confiance.

Le premier type de messages d’erreur provient la plupart du temps d’une mise en œuvre erronée de certains aspects du réseau dans un appareil client et ne constitue pas, en général, une source d’inquiétude. Le second type de messages d’erreur renvoie quant à lui aux intentions criminelles : quelqu’un a délibérément tenté d’infiltrer le réseau avec un serveur DHCP non autorisé. Comme le DHCP snooping enregistre tout, il est possible de procéder à des enquêtes ciblées sur de tels incidents de sécurité.

Conseil

Des serveurs DHCP peuvent s’infiltrer dans le réseau sans que vous en ayez connaissance. Ces faux serveurs DHCP (les « spurious DHCP serveur ») peuvent cependant être détectés par un raté sous la forme du paquet DHCPDISCOVER, car le serveur nuisible répond à la requête et se dévoile de cette façon.

Option 82

L’activation de l’option 82, également appelée informations d’agent relais DHCP (« DHCP relay agent information »), permet une sécurité encore supérieure. Avec cette option, le commutateur est activement impliqué dans la communication entre le client et le serveur. Cette procédure est pertinente lorsque les clients et le serveur ne se trouvent pas dans le même sous-réseau. Lorsque le client envoie une requête au serveur DHCP, le commutateur ajoute des informations supplémentaires à l’en-tête de cette requête. Ces informations permettent au serveur de suivre le commutateur et, par conséquent, le site du client.

Le serveur DHCP lit les détails supplémentaires et attribue les adresses IP en fonction des informations de site. Le serveur renvoie le paquet de réponse au client par le biais du commutateur. Si le paquet atteint le commutateur, ce dernier identifie à partir des informations qu’il contient encore que la communication passe effectivement par lui. L’appareil supprime ensuite de l’en-tête les données de l’option 82 et transmet la réponse.

Conseil

Afin de pouvoir utiliser l’option 82, le DCHP snooping doit être activé de façon globale. Le serveur doit également être en mesure de traiter les informations supplémentaires. Dans le cas contraire, le serveur DHCP ignore simplement les données de l’option 82 et traite la requête client comme une requête DHCP habituelle.