Elouan

ARP, DHCP, NAT et VLAN : la plomberie du réseau local

Les mécanismes invisibles qui font marcher un réseau d'entreprise, et les attaques qui en profitent : ARP spoofing, faux serveur DHCP, contournement de VLAN.

Elouan

Série Les fondations du réseau · article 6 sur 7
  1. Adresses IP, masques et sous-réseaux
  2. Le modèle OSI et la pile TCP/IP
  3. Ports et protocoles courants
  4. TCP et UDP
  5. Le DNS, de la requête à l'attaque
  6. ARP, DHCP, NAT et VLAN : la plomberie du réseau local
  7. HTTP, HTTPS et TLS

Les articles précédents expliquent comment un paquet trouve son chemin à travers Internet. Mais avant même d’y arriver, sur le réseau local de l’entreprise, plusieurs mécanismes travaillent en silence. Ils ont un point commun : ils ont été conçus à une époque où l’on faisait confiance à tout le monde sur le réseau local. Les attaquants en profitent encore aujourd’hui.

ARP : de l’adresse IP à l’adresse MAC

Sur un réseau local, les trames Ethernet sont adressées avec des adresses MAC, pas des adresses IP. Quand un poste veut envoyer un paquet à 192.168.1.1, il doit donc trouver l’adresse MAC correspondante. C’est le rôle d’ARP (Address Resolution Protocol).

Poste   → (broadcast) « Qui a 192.168.1.1 ? Répondez à 192.168.1.20 »
Routeur → (unicast)   « 192.168.1.1, c'est moi : 00:1a:2b:3c:4d:5e »

La réponse est mise en cache ARP pendant quelques minutes (arp -a pour le voir).

Pourquoi on ne fait jamais d’ARP vers Internet

Si la destination est hors du réseau local, le poste ne cherche pas la MAC de la destination : il cherche celle de sa passerelle. C’est le routeur qui se charge de la suite.

L’ARP spoofing

ARP n’a aucune authentification. N’importe quelle machine peut répondre, et les postes acceptent même des réponses qu’ils n’ont pas demandées (ARP gratuit).

Un attaquant sur le même réseau envoie donc : « 192.168.1.1, c’est moi ». Les postes mettent à jour leur cache et envoient tout leur trafic destiné à la passerelle… à l’attaquant, qui le relaie. Il est en homme du milieu : il peut lire le trafic en clair, le modifier ou le bloquer.

Ce qu’on voit : une même adresse MAC associée à plusieurs IP, ou l’adresse MAC de la passerelle qui change soudainement.

Les parades : Dynamic ARP Inspection (DAI) sur les switchs, entrées ARP statiques pour les équipements critiques, et surtout le chiffrement (TLS, SMB signé), qui rend l’interception inutile.

DHCP : recevoir sa configuration automatiquement

Personne ne configure l’adresse IP de chaque poste à la main. Le DHCP (Dynamic Host Configuration Protocol) distribue automatiquement :

  • l’adresse IP et le masque ;
  • la passerelle par défaut ;
  • les serveurs DNS ;
  • la durée du bail (au bout de laquelle il faut renouveler).

L’échange suit la séquence DORA, en UDP (67 côté serveur, 68 côté client) :

ÉtapeQuiMessage
DiscoverClient, en broadcast« Y a-t-il un serveur DHCP ? »
OfferServeur« Je te propose 192.168.1.20 »
RequestClient, en broadcast« J’accepte l’offre de ce serveur »
AcknowledgeServeur« C’est validé, pour 8 heures »

Le DHCP en investigation

Une alerte cite l’adresse 10.10.4.57 à 14 h 03. Mais les adresses changent : pour savoir quelle machine l’avait à ce moment-là, il faut consulter les journaux du serveur DHCP, qui associent chaque bail à une adresse MAC et à un nom de machine. C’est un réflexe à avoir avant de bloquer ou d’isoler quoi que ce soit.

Le faux serveur DHCP

Un attaquant qui installe son propre serveur DHCP peut répondre plus vite que le vrai et imposer sa passerelle ou son DNS. Il détourne alors tout le trafic, ou toutes les résolutions de noms. La parade est le DHCP snooping : le switch n’accepte les réponses DHCP que sur les ports où se trouve le vrai serveur.

NAT : partager une adresse publique

Il n’y a pas assez d’adresses IPv4 publiques pour toutes les machines. Le NAT (Network Address Translation) permet à tout un réseau privé de sortir sur Internet avec une seule adresse publique.

Poste 192.168.1.20:51234  ──►  [ Routeur NAT ]  ──►  Internet
                              203.0.113.5:40001
       Le routeur garde une table : 40001 ↔ 192.168.1.20:51234

Quand la réponse revient sur le port 40001, le routeur sait à quelle machine interne la renvoyer.

TypeUsage
NAT source (ou PAT, masquerading)Les postes internes sortent sur Internet
NAT destination (redirection de port)Exposer un serveur interne, par exemple le port 443 vers le serveur web

Le NAT n’est pas un pare-feu

Le NAT bloque par effet de bord les connexions entrantes non prévues, mais il n’a pas été conçu pour la sécurité. Surtout, il ne fait rien contre les connexions sortantes, celles qu’utilisent les malwares pour contacter leur serveur de commande. La protection, c’est le pare-feu et le filtrage en sortie.

Conséquence pour l’investigation : côté Internet, tout ton réseau apparaît sous la même adresse publique. Pour retrouver la machine interne derrière une connexion signalée par un tiers (par exemple un CERT qui te prévient), il faut les journaux de NAT du pare-feu, avec l’heure et le port source exacts.

VLAN : découper un réseau physique

Un VLAN (Virtual LAN, norme 802.1Q) découpe un même équipement réseau en plusieurs réseaux logiques séparés. Les postes utilisateurs, les serveurs, la téléphonie et les invités peuvent partager les mêmes switchs sans se voir directement.

Pour passer d’un VLAN à un autre, il faut traverser un routeur ou un pare-feu. C’est là tout l’intérêt en sécurité : c’est le point où l’on peut filtrer. C’est la base de la segmentation, qui ralentit énormément un attaquant qui cherche à se déplacer dans le réseau.

Attention

Un VLAN n’isole que si le routage entre VLAN est filtré. Des VLAN séparés mais routés sans aucune règle n’apportent presque rien contre un mouvement latéral.

Les attaques connues sur les VLAN (VLAN hopping) exploitent une configuration laxiste des switchs : négociation automatique de trunk (DTP) ou double étiquetage sur le VLAN natif. On les évite en figeant la configuration des ports.

802.1X : authentifier avant de connecter

Dernière brique : 802.1X. Avant de donner accès au réseau, le switch ou la borne Wi-Fi demande à la machine (ou à l’utilisateur) de s’authentifier, en général auprès d’un serveur RADIUS. Une machine inconnue branchée sur une prise murale n’obtient pas d’accès, ou se retrouve dans un VLAN de quarantaine.

L'essentiel

  • ARP fait le lien entre une adresse IP et une adresse MAC sur le réseau local. Il n'a aucune authentification, d'où l'ARP spoofing (homme du milieu).
  • DHCP attribue automatiquement l'IP, le masque, la passerelle et le DNS. Séquence DORA : Discover, Offer, Request, Acknowledge (UDP 67/68).
  • Un faux serveur DHCP peut imposer sa passerelle ou son DNS à toutes les machines. Parade : DHCP snooping sur les switchs.
  • Le NAT traduit des adresses privées en une adresse publique. Ce n'est pas une mesure de sécurité, même s'il empêche par effet de bord les connexions entrantes non prévues.
  • Un VLAN sépare logiquement un réseau physique en plusieurs réseaux de couche 2. Passer d'un VLAN à l'autre nécessite un routeur ou un pare-feu, où l'on peut filtrer.

Idées reçues

Le NAT est-il une mesure de sécurité ?

L'erreur courante. Dire oui, puisque les machines internes ne sont pas joignables depuis Internet.

En réalité. Non, pas en tant que tel. Le NAT sert à économiser des adresses publiques. Le fait qu'on ne puisse pas initier de connexion entrante est un effet de bord. La vraie protection, c'est le pare-feu à états. Et le NAT ne protège en rien contre les connexions sortantes, qui sont justement celles qu'utilisent les malwares (reverse shell, C2).

Comment fonctionne une attaque par ARP spoofing ?

L'erreur courante. Dire que l'attaquant change son adresse IP.

En réalité. L'attaquant envoie des réponses ARP non sollicitées pour associer son adresse MAC à l'IP de la passerelle (et à celle de la victime). Les machines mettent à jour leur cache ARP et lui envoient leur trafic : il est en position d'homme du milieu. Parades : Dynamic ARP Inspection (DAI) avec DHCP snooping, entrées ARP statiques pour les équipements critiques, et chiffrement des flux.

Comment un attaquant peut-il sortir de son VLAN ?

L'erreur courante. Dire que c'est impossible puisque les VLAN sont isolés.

En réalité. Par le VLAN hopping : soit en se faisant passer pour un switch (switch spoofing, en négociant un trunk avec DTP), soit en double étiquetage 802.1Q quand il est sur le VLAN natif. Parades : désactiver DTP, forcer les ports d'accès en mode access, ne pas utiliser le VLAN 1 comme VLAN natif. Et surtout, un VLAN n'est une frontière que si le routage entre VLAN est filtré.

Que fait un poste qui démarre pour obtenir une adresse IP ?

L'erreur courante. Dire qu'il interroge le DNS.

En réalité. Il envoie un DHCP Discover en broadcast (il n'a pas encore d'adresse, donc source 0.0.0.0 et destination 255.255.255.255), reçoit un Offer, répond par un Request et reçoit un Acknowledge. S'il n'obtient rien, Windows s'attribue une adresse APIPA en 169.254.x.x.

Tester ses connaissances

Références

  • TCP/IP Illustrated, Volume 1 : The Protocols (2e éd.)Kevin R. Fall, W. Richard Stevens · Addison-Wesley
  • Practical Packet Analysis (3e éd.)Chris Sanders · No Starch Press

Textes de référence en ligne