Cours la sécurité logique d’un réseau
...
1.3. Les protocoles réseau 1.3.1. Le protocole MPLS
Comme il l’a été brièvement expliqué en introduction, le principe de base de MPLS est la commutation de labels. Ces labels, simples nombres entiers, sont insérés entre les en-têtes de niveaux 2 et 3. Les routeurs commutent ces labels tout au long du réseau jusqu’à destination, sans avoir besoin de consulter l’en¬tête IP et leur table de routage [RFC3031].
Cette technique, appelée Label Swapping, est similaire à la commutation de cellules sur ATM avec les informations de Virtual Path Identifier/Virtual Circuit Identifier ou à la commutation sur réseau Frame Relay avec les Data Link Connection Identifier [RFC3034]. Les routeurs MPLS situés à la périphérie du réseau, qui possèdent à la fois des interfaces IP traditionnelles et des interfaces connectées au backbone MPLS, sont chargés d’imposer ou de retirer les labels des paquets IP qui les traversent. Les routeurs d’entrées, qui commutent les labels, sont appelés Label Switch Router (LSR) ou Provider (P). Tandis que les routeurs d’entrée ou de sortie, qui ajoutent ou retirent les labels, sont appelés Label Edge Router (LER) ou PE (Provider Edge).
Un label MPLS occupe 4 octets (32-bits) et se présente sous la forme:
Le format des labels MPLS est générique et peut notamment être utilisé sur Ethernet, Frame-Relay, etc.
1.3.2. Le protocole IP
Le protocole IP est né avec les premiers réseaux de recherche américains dans le milieu des années 1970. Mais ce n'est qu'avec l'apparition en 1993 du premier navigateur MOSAIC, qu'il a été largement diffusé. La version actuelle d'IP (IPv4) a depuis été retenue par l'ensemble des constructeurs informatiques comme le protocole universel de niveau réseau.
Le protocole IP fait partie de la couche Internet de la suite de protocoles TCP/IP, et permet l'élaboration et le transport des datagrammes IP, sans toutefois en assurer la livraison. Concrètement, le protocole traite les datagrammes IP indépendamment les uns des autres en définissant leur représentation, leur routage et leur expédition [RFC791].
Le protocole IP détermine le destinataire du message grâce à 3 champs :
n Le champ adresse IP : Ce champ indique l'adresse de la machine.
n Le champ masque de sous-réseau : Un masque de sous-réseau permet au protocole IP de déterminer la partie de l'adresse IP qui concerne le réseau.
n Le champ passerelle par défaut : Ce champ permet de savoir à quelle machine remettre le datagramme si jamais la machine de destination n'est pas sur le réseau local.
Les données circulent sur Internet sous forme de datagrammes. Les datagrammes sont des données encapsulées, c'est-à-dire des données auxquelles on a ajouté des en-têtes correspondant à des informations sur leur transport. Les données contenues dans les datagrammes sont analysées et éventuellement modifiées par les routeurs.
Voici la signification des différents champs :
n Version (4 bits) : Ce champ indique la version du protocole IP que l'on utilise afin de vérifier la validité du datagramme.
n Longueur d'en-tête (4 bits) : Ce champ indique le nombre de mots de 32 bits constituant l'en-tête.
n Type de service (8 bits) : Ce champ indique la façon selon laquelle le datagramme doit être traité.
n Longueur totale (16 bits) : Ce champ indique la taille totale du datagramme en octets. La taille de ce champ étant de 2 octets, la taille totale du datagramme ne peut dépasser 65536 octets. Utilisé conjointement avec la taille de l'en-tête, ce champ permet de déterminer où sont situées les données.
n Identification, drapeaux et déplacement de fragment sont des champs qui permettent la fragmentation des datagrammes.
n Durée de vie appelée aussi TTL (Time To Live) (8 bits) : Ce champ indique le nombre maximal de routeurs à travers lesquels le datagramme peut passer. Ce champ est décrémenté à chaque passage dans un routeur, lorsque celui-ci atteint la valeur critique de 0, le routeur détruit le datagramme.
n Protocole (8 bits) : Ce champ permet de savoir de quel protocole est issu le datagramme comme les protocoles suivants :
n ICMP: 1
n IGMP: 2
n TCP: 6
n UDP: 17
n Somme de contrôle de l'en-tête (16 bits) : Ce champ permet de contrôler l'intégrité de l'en-tête afin de déterminer si celui-ci n'a pas été altéré pendant la transmission. La somme de contrôle est le complément à un de tous les mots de 16 bits de l'en-tête.
n Adresse IP source (32 bits) : Ce champ représente l'adresse IP de la machine émettrice, il permet au destinataire de répondre.
n Adresse IP destination (32 bits) : Ce champ indique l'adresse IP du destinataire du message.
La fragmentation d'un datagramme se fait au niveau des routeurs, c'est-à-dire lors de la transition d'un réseau dont le MTU (Maximum Transfer Unit) est plus faible. Si le datagramme est trop grand pour passer sur le réseau, le routeur va le fragmenter, c'est-à-dire le découper en fragments de tailles inférieures au MTU du réseau. Le routeur va ensuite envoyer ces fragments de manière indépendante.
1.4. Les protocoles de routage
Tous les protocoles de routage ont pour objectif de maintenir les tables de routage du réseau dans un état intègre et cohérent. Pour y parvenir, les protocoles diffusent des informations de routage aux autres systèmes du réseau afin de transmettre les modifications des tables de routage. Ces protocoles réceptionnent en contrepartie les informations de routage d’autres systèmes du réseau afin de mettre à jour les tables de routage.
Dans les premiers grands réseaux, les tables de routage étaient statiques et donc maintenues à jour par des techniciens de bout en bout. De nos jours, les mises à jour des tables de routage et le calcul du meilleur chemin sont automatiquement propagés sur le réseau par les protocoles de routage.
n Algorithmes de routage à trajet unique ou multiple : Ils permettent le multiplexage du trafic sur plusieurs lignes.
n Algorithmes de routage hiérarchique : Ils définissent des groupes logiques de nœuds, appelés domaines, systèmes autonomes ou zones. Certains routeurs peuvent communiquer avec les routeurs d’autres domaines, alors que d’autres routeurs ne peuvent communiquer qu’à l’intérieur de leur propre domaine, simplifiant ainsi les algorithmes en fonction des exigences de routage des routeurs appartenant à la hiérarchie.
n Algorithmes de routage absolu : Par opposition aux algorithmes hiérarchiques, ces algorithmes fonctionnent dans des réseaux homogènes, dans lesquels tous les routeurs sont sur un même pied d’égalité.
n Algorithmes de routage intra domaine : Ils ne fonctionnent que dans les limites d’un domaine.
n Algorithmes de routage inter domaine : Ils fonctionnent tant au sein d’un domaine qu’entre divers domaines.
n Algorithmes de routage d’état des liens : Ils testent régulièrement l’état des liens avec leurs voisins et diffusent périodiquement ces états à tous les autres routeurs du domaine. L’algorithme du plus court chemin est généralement fondé sur l’algorithme de Dijkstra, qui calcule le plus court chemin vers chaque destination. Les avantages de tels algorithmes sont d’offrir une convergence rapide sans boucle et à chemins multiples. De plus, chaque passerelle calcule ses propres routes indépendamment des autres, et les métriques sont généralement précises et couvrent plusieurs besoins. En revanche, ces algorithmes sont souvent plus complexes à mettre en œuvre et consommateurs de ressources.
Suivant l’algorithme utilisé, plusieurs paramètres peuvent intervenir lors d'une décision de routage. Les critères de routage s’appuient généralement sur les éléments suivants :
n Longueur du trajet : Définit un critère de décision à partir du nombre de liens qu’un paquet doit traverser pour se rendre du point d’origine au point de destination.
n Fiabilité : Définit un critère de décision fondé sur la fiabilité de chaque lien du réseau.
n Délai de transmission : Définit un critère de décision fondé sur le temps requis afin d’acheminer un paquet du point d’origine au point de destination.
n Largeur de bande : Définit un critère de décision fondé sur la capacité de transmission d’un lien.
n Charge : Définit un critère de décision fondé sur les ressources d’un routeur comme le nombre de paquets traités par seconde, ressource mémoire, etc.
n Coût de la communication : Définit un critère de décision fondé sur un coût appliqué à un lien.
IGP (Interior Gateway Protocol) et EGP (Exterior Gateway Protocol) sont les deux grandes familles de protocoles de routage dans les réseaux IP. Un réseau de routage est découpé généralement en systèmes autonomes, dits AS (Autonomous System), ou zones de responsabilité. Dans un système autonome, le protocole de routage utilisé est de type IGP. Pour les échanges de routage entre systèmes autonomes différents, le protocole de routage utilisé est de type EGP.
1.4.1. Le protocole de distribution des labels
Les P routeurs se basent sur l’information de label pour commuter les paquets au travers du backbone MPLS. Chaque routeur, lorsqu’il reçoit un paquet, utilise le label pour déterminer l’interface et le label de sortie. Il est donc nécessaire de propager les informations sur ces labels à tous les P routeurs [RFC3036].
Pour échanger les labels correspondants aux routes IP unicast apprises par un protocole IGP, les routeurs CISCO emploient le protocole TDP, utilisant TCP sur le port 711. Ce protocole est un protocole propriétaire défini par CISCO. Le protocole défini par l’IETF est LDP, qui utilise TCP sur le port 646. Bien que ces deux protocoles soient fonctionnellement identiques, ils sont incompatibles entre eux, à cause de différences dans le format des paquets.
1.4.2. Les protocoles de routage interne IGP 1.4.2.1. Les caractéristiques fondamentales
Les protocoles IGP sont conçus pour gérer le routage interne d’un réseau avec des objectifs de forte convergence des nouvelles routes injectées dans les tables de routage. Les décisions de routage s’appuient sur une unique métrique afin de favoriser la fonction de convergence. Le nombre d’entrées dans les tables de routage doit aussi être limité afin de renforcer la convergence des tables de routage.
Parmi les protocoles les plus utilisés, citons principalement:
n OSPF (Open Shortest Path First) : Protocole de routage à état de liens fondé sur le calcul des chemins les plus courts et sur une architecture hiérarchique constituée de zones OSPF.
n IS_IS (Intermediate System to Intermediate Systems) : Protocole de routage à état de liens fondé sur le calcul des chemins les plus courts et sur une architecture hiérarchique constituée de domaines IS_IS.
1.4.2.2. Le protocole de routage IS_IS
IS_IS est un protocole interne de routage. Issu de l’ensemble des protocoles OSI (Open Systems Interconnexion), il fournit un support pour la mise à jour d’informations de routage entre de multiples protocoles. Il s’agit d’un protocole par état des liaisons de type SPF (Shortest Path First) dont la dernière version est conforme à la norme ISO 10589 [IS_IS 1992, RFC1195].
Le routage IS_IS utilise deux niveaux hiérarchiques de routage. La topologie de routage IS_IS est découpée en aires de routage de niveaux 1 ou 2. Les routeurs de niveau 1 connaissent la topologie dans leur aire, incluant tous les routeurs de cette aire. Cependant, ces routeurs de niveau 1 ne connaissent ni l’identité des routeurs, ni les destinations à l’extérieur de leur aire. Ils routent tout le trafic vers les routeurs interconnectés au niveau 2 dans leur aire.
Les routeurs de niveau 2 connaissent la topologie réseau du niveau 2 et savent quelles adresses sont atteignables pour chaque routeur. Les routeurs de niveau 2 n’ont pas besoin de connaître la topologie à l’intérieur d’une aire de niveau 1. Seuls les routeurs de niveau 2 peuvent échanger les paquets de données ou les informations de routage directes avec les routeurs externes situés en dehors de leur aire de routage.
Le domaine de niveau 2 agit comme domaine d’échange entre les aires de niveau 1. La figure suivante illustre une topologie de routage des aires IS_IS de niveaux 1 et 2 [RFC1142] :
Figure 2 : Topologie de routage des aires IS_IS
Pour des raisons de disponibilité des sessions de routage entre les aires, le nombre de sessions de routage entre les aires 1 et 2 doit être supérieur au minimum à deux sessions. Le réseau de routage formé par les routeurs des aires 1 ou 2 doit définir un graphe connexe [Lacomme et al. 2003]. De plus, l'aire de niveau 2 est un point d'articulation du graphe.
Figure 3 : Topologie de routage des équipements réseaux au sein d’une aire IS_IS
Le graphe doit être connexe et sans point d'articulation pour assurer la disponibilité du réseau [Lacomme et al. 2003].
1.4.3. Les protocoles de routage externe EGP 1.4.3.1. Les caractéristiques fondamentales
Les protocoles EGP sont conçus pour gérer le routage externe d’un réseau avec des objectifs de convergence et d’optimisation de nouvelles routes injectées dans les tables de routage du réseau. Généralement, le nombre d’entrées dans les tables de routage est souvent important. Par exemple, un routeur qui comporterait l’ensemble des routes actuelles d’Internet compterait près de 100 000 entrées.
Parmi les protocoles EGP utilisés de nos jours, c’est le protocole de routage BGPv4 qui s’est imposé.
1.4.3.2. Le protocole de routage BGP
BGP est un protocole de routage externe qui a remplacé EGP. Le protocole BGP permet d’échanger des informations d’accessibilité entre les AS. Il peut notamment fournir des informations détaillées concernant chaque route et les utiliser pour sélectionner le meilleur chemin [RFC1774].
Les sessions de routage au sein d'un AS sont appelées sessions iBGP. Les sessions de routage entre AS sont appelées sessions eBGP. BGP ne transmet pas de métrique dans les mises à jour de routes, mais transmet la meilleure route vers chaque système autonome susceptible d’être adoptée pour atteindre une destination donnée.
Lorsqu’un routeur BGP reçoit des mises à jour en provenance de plusieurs systèmes autonomes décrivant différents chemins vers une même destination, il choisit alors le meilleur itinéraire pour l’atteindre et le propage vers ses voisins.
Une décision de routage est fondée sur plusieurs attributs comme :
n AS-path : Cet attribut liste les numéros de tous les AS qu’une mise à jour a traversé pour atteindre une destination.
n Next hop : Cet attribut contient l’adresse IP du routeur vers lequel l’information doit être émise pour atteindre le réseau.
n Weight : Cet attribut est utilisé dans le processus de sélection de chemin lorsqu’il existe plus d’une route vers une même destination. Cet attribut de poids est local et n’est pas propagé dans les mises à jour de routage.
n Local preference : Cet attribut a un rôle similaire à l’attribut de poids, si ce n’est qu’il fait partie des informations de mise à jour de routage.
n Multi-exit discriminator: Cet attribut indique aux routeurs voisins externes le chemin à privilégier vers un AS lorsque celui-ci possède plusieurs points d’entrée.
n Community : Cet attribut est utilisé pour grouper des destinations auxquelles des décisions de routage peuvent être appliquées.
Le premier niveau de topologie de routage définit les différentes sessions de routage entre les systèmes autonomes participant au routage BGP. Le découpage en différents AS dépend de nombreux paramètres, tels que le nombre d’équipements réseau, la localisation géographique, etc. Pour des raisons de disponibilité et de résilience des connexions entre les systèmes autonomes, le nombre de sessions de routage entre les systèmes autonomes de l’opérateur de télécommunications doit être supérieur au minimum à deux sessions.
La figure suivante illustre une topologie de routage d’un réseau d’un opérateur de télécommunications avec ses partenaires et ses clients au niveau des systèmes autonomes :
Figure 4 : Topologie de routage des systèmes autonomes BGP
Le graphe doit être connexe pour assurer la disponibilité du réseau [Lacomme et al. 2003]. Il doit être noté que le graphe peut avoir des points d'articulation.
La figure suivante illustre une topologie de routage des sous-systèmes autonomes au sein d’un système autonome [RFC3065] :
Figure 5: Topologie de routage des sous-systèmes autonomes BGP
Le dernier niveau de topologie de routage se situe au niveau d’un système autonome. Il est composé de plusieurs modèles possibles. Dans le modèle "full-meshing", tous les équipements ont une session de routage BGP avec les autres équipements. Dans le modèle de type "route reflector", tous les équipements "réflecteurs de routes" ont une session de routage BGP avec les autres équipements "réflecteurs de routes". De plus, tous les équipements non "réflecteurs de routes" ont au minimum deux sessions de routage BGP avec des équipements "réflecteurs de routes" comme l'illustrent les figures suivantes [RFC2796] :
Figure 6 : Topologies de routage des équipements réseau BGP
Dans les deux cas, les graphes doivent être connexes et sans points d'articulation pour assurer la disponibilité du réseau de routage [Lacomme et al. 2003].
1.4.3.3. Le protocole de routage MP-BGP et les réseaux privés virtuels
Un réseau privé virtuel MPLS/VPN permet de connecter des sites distants sur un réseau partagé par tous les clients. Le trafic du réseau privé virtuel est isolé logiquement des autres trafics VPN. Cette isolation est réalisée par un mécanisme de routage fondé sur le protocole MP-BGP, qui est une extension du protocole de routage BGP pour les réseaux MPLS.
Le protocole MP-BGP fonctionne en collaboration avec un protocole de distribution de labels afin d'associer un label à une route externe. Dans ce cas, deux niveaux de labels sont utilisés, le premier label correspond à la route dans le VPN concerné et le second label correspond au PE permettant d'atteindre le prochain saut BGP [RFC2547].
IPv4 afin de créer une route VPNv4. En revanche, dans le cas d'un Extranet ou d'un fournisseur de services, les adresses IP devront être uniques afin de partager les ressources communes.
La sécurité logique d’un MPLS/VPN repose sur la configuration logique du VPN dans les configurations des routeurs PE. Pour mieux comprendre les enjeux de configuration des MPLS/VPNs, prenons l’exemple de deux VPNs (rouge, bleu), que nous allons définir afin de relier deux sites différents pour chacun des VPNs, comme illustré à la figure suivante :
Commutation
sur des labels
Figure 7 : Exemple de réseaux privés virtuels MPLS/VPNs
Nous avons vu que le RD permet de garantir l’unicité des routes VPNv4 échangées entre les PEs, mais ne définit pas la manière dont les routes vont être insérées dans les VPNs. Pour y parvenir, l’import et l’export de routes sont réalisés à l’aide d'une communauté étendue BGP appelée Route-Target (RT). Les routes-targets doivent être vues comme des filtres appliqués sur les routes VPNv4.
Dans notre exemple, les routeurs "CE1 A" et "CE2 A" appartiennent au "MPLS/VPN A" et les routeurs "CE1 B" et "CE2 B" appartiennent au "MPLS/VPN B". La configuration des routeurs PE permet de créer ces VPNs sur le réseau par les configurations décrites ci-dessous des deux PE (implémentation CISCO). Nous utiliserons le terme VRF (Virtual Routing Forwarding) par la suite pour désigner un VPN.
Configuration du routeur PE, connecté à CE1 A et CE1 B :
# Définition du MPLS/VPN A ip vrf A
# La valeur du rd (route distinguisher) permet d'identifier les routes échangées # entre les routeurs PE pour chaque MPLS/VPN
rd 1
# Les valeurs des route-targets RT permettent de définir un MPLS/VPN.
# Le MPLS/VPN A n'accepte que les routes reçues véhiculant le RT 1 et
# exporte les routes apprises de son côté au réseau MPLS en insérant le RT 1
route-target import 1
route-target export 1
!
# Définition du MPLS/VPN B
rd 2
route-target import 2
route-target export 2
!
# Connexion de CE1 A au PE : Cette connexion appartient au MPLS/VPN A
interface ...
ip vrf forwarding A
...
!
# Connexion de CE1 B au PE : Cette connexion appartient au MPLS/VPN B interface ...
ip vrf forwarding B
...
!
# Description de la session de routage avec le MPLS/VPN A
address-family ipv4 vrf A
neighbor 10.10.10.102 activate
neighbor 10.10.10.102 send-community
neighbor 10.10.10.102 as-override
!
# Description de la session de routage avec le MPLS/VPN B
address-family ipv4 vrf B
neighbor 192.10.10.102 activate
neighbor 192.10.10.102 send-community
neighbor 192.10.10.102 as-override
!
Configuration du routeur PE, connecté à CE2 A et CE2 B :
# Définition du MPLS/VPN A ip vrf A
# La valeur du rd (route distinguisher) permet d'identifier les routes échangées # entre les routeurs PE pour chaque MPLS/VPN
rd 3
# Les valeurs des route-targets RT permettent de définir un MPLS/VPN.
# Le MPLS/VPN A n'accepte que les routes reçues véhiculant le RT 1
# et exporte les routes apprises de son côté au réseau MPLS en insérant le RT 1
route-target import 1
route-target export 1
!
# Définition du MPLS/VPN B
ip vrf B
rd 4
route-target import 2
route-target export 2
!
# Connexion de CE2 A au PE : Cette connexion appartient au MPLS/VPN A
interface ...
ip vrf forwarding A
...
!
# Connexion de CE2 B au PE : Cette connexion appartient au MPLS/VPN B interface ...
ip vrf forwarding B
...
!
# Description de la session de routage avec le MPLS/VPN A
address-family ipv4 vrf A
neighbor 10.10.10.104 activate
neighbor 10.10.10.104 send-community
neighbor 10.10.10.104 as-override
!
# Description de la session de routage avec le MPLS/VPN B
address-family ipv4 vrf B
neighbor 192.10.10.104 activate
neighbor 192.10.10.104 send-community
neighbor 192.10.10.104 as-override
!
1.4.3.4. Les interconnexions des réseaux MPLS/VPNs
Les opérateurs de télécommunications développent de plus en plus les services réseaux MPLS/VPNs et ont besoin de s'interconnecter pour étendre un
MPLS/VPN sur un autre réseau. Cette interconnexion entre deux réseaux MPLS/VPNs se réalise de deux manières possibles, soit sur le modèle "VRF¬To-VRF, soit sur le modèle "MP-eBGP" que nous allons décrire ci-après.
Comme l'illustre la figure suivante, le modèle "VRF-To-VRF" permet d'interconnecter en point à point un VPN entre les réseaux des opérateurs de télécommunications MPLS/VPN:
Figure 8 : Modèle d'interconnexion "VRF-To-VRF"
Les avantages de ce modèle sont les suivants :
Les désavantages de ce modèle sont les suivants :
Figure 9 : Modèle d'interconnexion "MP-eBGP"
Les avantages de ce modèle sont les suivants :
Les désavantages de ce modèle sont les suivants :
Les deux modèles (VRF-To-VRF, MP-eBGP) ont leurs avantages et leurs inconvénients. Il doit être cependant noter que non seulement les technologies et les fonctions de contrôle évoluent, mais aussi qu'une interconnexion entre deux réseaux MPLS/VPN peut être un mixte de ces deux modèles.
1.5. Conclusion
Le chapitre suivant décrit les menaces qui pèsent sur un réseau multi-services. Une classification des attaques est aussi détaillée afin de mieux comprendre les éléments à protéger.
Chapitre 2. Les menaces réseau
2.1. Introduction
Les différentes catégories de menaces qui pèsent sur un réseau peuvent être classées comme illustré à la figure suivante :
MENACES DE SECURITE
Humaines Catastrophes naturelles
Erreurs de manipulation,
configuration, etc.
Figure 10: Typologie des menaces
Les menaces non intentionnelles ou imprévisibles, comme les catastrophes naturelles, ne mettent pas en œuvre d’outils ou de techniques particulières et n’ont évidemment pas d’objectif déterminé. À l’inverse, les menaces intentionnelles mettent généralement en œuvre des outils et des techniques d’attaques très variés.
Avec l’avènement d’Internet et des moyens de communication modernes, une nouvelle forme d’insécurité est apparue, qui s’appuie sur l’utilisation de code informatique pour perturber ou pénétrer les systèmes informatiques.
Les attaques touchent généralement les trois composantes suivantes d’un système. La couche réseau, en charge de connecter le système au réseau. Le système d’exploitation, en charge d’offrir un noyau de fonctions au système, et la couche application, en charge d’offrir des services spécifiques. Toutes ces composantes d’un système réseau constituent autant de moyens de pénétration pour des attaques de toute nature comme l'illustre la figure suivante :
Application
(BGP, IPSEC, etc.)
Système d'exploitation (IOS, Unix, etc.)
Réseau (IP, TCP, etc.)
Figure 11 : Composantes d’un système susceptibles d’être attaquées
L’objectif de ce chapitre est de cerner les faiblesses les plus couramment exploitées par les attaques et de détailler les mécanismes de ces attaques. Comme tout effet a une cause, les attaques réseau s’appuient sur divers types de faiblesses, que l’on peut classifier par catégorie comme illustré à la figure suivante :
Faiblesses des protocoles
Faiblesses d'authentification
Faiblesses d'implémentation ou bogues
Mauvaise configuration
Figure 12 : Typologie des faiblesses de sécurité
Les protocoles réseau sont encore jeunes, et aucun d’eux n’a été conçu pour
tenir compte des problèmes de sécurité à l'origine. Le protocole IP, par exemple, ne comporte pas de couche sécurité. La plupart des protocoles utilisés dans un réseau, tels SNMP (Simple Network Management Protocol) pour la supervision ou BGP pour le routage, n’implémentent pas de couche de sécurité et s’exposent à diverses attaques, comme les attaques par fragmentation, déni de service, etc.
De même, les protocoles réseau n’ont prévu aucun mécanisme d’authentification véritable et subissent des attaques qui s’appuient sur ces faiblesses d’authentification, comme les attaques de type spoofing, man-in-the¬middle, etc.
Les faiblesses d’implémentation ou bogues des programmes (système d’exploitation, application de routage, etc.) exposent aussi le réseau à d’autres attaques. La raison en est que les développements de logiciels et de piles réseau se font de plus en plus rapidement et sans règles de codage strictes. Parmi les innombrables attaques qui utilisent de mauvaises implémentations ou des erreurs de programmation, citons les attaques de type SYN flooding et ping-of-death.
Les faiblesses de configuration des équipements réseau peuvent provenir d’une mauvaise configuration d’un pare-feu, laissant passer du trafic non autorisé par la politique de sécurité.
2.2. Les faiblesses des protocoles réseau
Les attaques sur les protocoles réseau sont assez fréquentes. Elles sont souvent utilisées pour repérer la topologie réseau et les services disponibles.
D’autres formes d’attaques utilisent des bogues ou de mauvaises implémentations des piles IP/TCP dans les systèmes réseau, par exemple par l'interprétation erronée du codage des RFC (Request For Comments).
La panoplie des attaques réseau est particulièrement large, comme nous le verrons avec les attaques par déni de services distribuées.
Les attaques visant à établir la cartographie d’un réseau ont pour but de dresser les artères de communication des futurs systèmes cibles. Elles ont recours pour cela à des outils de diagnostic tel que Traceroute, qui permet de visualiser le chemin suivi par un paquet IP d’un hôte à un autre.
Traceroute utilise l’option durée de vie, ou TTL (Time To Live) du paquet IP afin d'émettre un message ICMP TIME_EXCEEDED (temps dépassé) pour chaque routeur qu’il traverse. Sachant que chaque routeur qui manipule un paquet décrémente le champ TTL, ce champ devient un véritable compteur de tronçon et permet de déterminer l’itinéraire précis suivi par les paquets IP vers un système cible.
Certaines attaques visent à identifier un système dans le but de dresser les futurs moyens de pénétration de ce système.
Il existe différentes techniques de balayage des systèmes comme illustré à la figure suivante :
Scan ouvert
(connexion complète TCP, etc.)
Scan semi-ouvert
(semi-connexion TCP avec drapeau SYN, etc.)
Scan furtif
(semi-connexionTCP avec drapeau SYN|ACK, etc.)
Scan par le contrôle d'erreur
(ICMP echo, etc.)
Autres types de scan
(UDP, etc.)
Figure 13 : Les différents types de scanning
La prise d’empreinte d'une pile réseau permet d’identifier très rapidement le système d’exploitation d’un système cible donné. Sachant que chaque éditeur de piles réseau interprète généralement différemment les RFC des protocoles, l’implémentation de la pile TCP/IP est différente d’un système d’exploitation à un autre. En recherchant ces différences, il est possible de reconnaître les différents systèmes d’exploitation.
Les principales techniques de prise d’empreinte active sont les suivantes :
n Sondage par le bit TCP FIN : Bien que la RFC indique qu’il ne faut pas répondre à un tel paquet, certains systèmes d'exploitation ont tendance à répondre par des paquets avec les bits FIN et ACK [RFC793].
n Sondage par balise factice : Si l’on place une balise TCP non définie dans l’en-tête TCP d’un paquet SYN, certains systèmes d’exploitation retournent cette balise dans le paquet émis en réponse.
n Surveillance du bit DF (Don’t Fragment) : Certains systèmes d’exploitation définissent ce bit afin d’augmenter les performances.
n Surveillance de la taille initiale de la fenêtre TCP : Dans certaines mises en œuvre de piles, cette taille est unique.
n Analyse des numéros d’acquittement des paquets TCP : Certaines piles implémentent des numéros de séquences spécifiques.
n Analyse du comportement face aux messages ICMP : Les systèmes d’exploitation implémentent des comportements et des réponses parfois différents face à des messages ICMP non conformes [RFC792].
La prise d’empreinte passive consiste à analyser le trafic du système cible afin d’identifier le système d’exploitation. Les données comme la durée de vie TTL du paquet IP, la taille de la fenêtre du paquet TCP ou le bit DF du paquet IP permettent de déterminer un comportement particulier, et donc un système d’exploitation.
Grâce à un sniffer, il est possible d’intercepter les trames reçues par la carte réseau d’un système pirate et qui ne lui sont pas destinées. Le système pirate se situe donc sur le réseau local et capture tous les paquets réseau transitant sur ce réseau afin d’obtenir des mots de passe.
Les attaques par fragmentation ont été les premières attaques à passer au travers des éléments de filtrage IP réalisés par les pare-feu.
L’attaque par Tiny Fragments consiste à fragmenter sur deux paquets IP une demande de connexion TCP ou d’autres demandes sur une machine cible tout en traversant et en déjouant, par le mécanisme de fragmentation, un filtrage IP.
Le premier paquet IP contient des données comme les huit premiers octets de l’en-tête TCP, c’est-à-dire les ports source et destination et le numéro de séquence. Le second paquet contient la demande de connexion TCP effective.
Les premiers filtres IP appliquaient la même règle de filtrage à tous les fragments d’un paquet. Le premier fragment n’indiquant aucune demande de connexion explicite, le filtrage le laissait passer, de même que tous les fragments associés, sans davantage de contrôle sur les autres fragments. Lors de la défragmentation au niveau IP de la machine cible, le paquet de demande de connexion était reconstitué et passé à la couche TCP. La connexion s’établissait alors malgré le filtre IP.
L’attaque par Fragment Overlapping consiste à fragmenter deux paquets IP au moyen de l’option Overlapping pour faire une demande de connexion TCP ou une autre demande sur une machine cible tout en traversant un filtrage IP.
Le déni de service est une attaque qui vise à rendre indisponibilité un service, un système ou un réseau. Ces attaques se basent généralement soit sur une faiblesse d’implémentation ou bogue, soit sur une faiblesse d’un protocole. Les premières attaques par déni de service sont apparues entre 1998 et l’an 2000 et visaient de grands sites Internet (Yahoo, Ebay, eTrade, etc.). Concernant le site Yahoo, ce site a été attaqué en février 2000 et a été "noyé" (flood) sous un gigabyte de données en quelques secondes pendant plus de 3 heures d'au moins 50 points réseau différents.
L’inondation est généralement la méthode la plus classique pour empêcher un réseau d’assurer sa mission. Son principe de fonctionnement est simple, une ou plusieurs machines inondent le réseau avec des paquets réseau afin de saturer la bande passante de celui-ci. Une fois que toute la bande est occupée, les autres machines ne peuvent plus travailler, ce qui génère une situation de refus de service.
L’inondation peut recourir à différentes méthodes. La plus classique est le Ping Flooding, où une machine envoie des paquets de ping ICMP REQUEST et attend en réponse un paquet ICMP REPLY. Sans mention d’un délai pour l’obtention de la réponse, la machine envoie ses paquets aussi vite qu’elle le peut, saturant ainsi le réseau.
L’attaque DDoS (Distributed Denial Of Services) est un dérivé de la précédente sous une forme distribuée comme illustré à la figure suivante :
Victime
Figure 14: Attaque par déni de service distribué
La première étape consiste à pénétrer par diverses méthodes des systèmes dits handlers, ou maîtres (masters), et agents, ou esclaves (slaves). Le pirate contrôle ensuite dans une deuxième étape directement un ensemble de systèmes handlers, qui contrôlent eux-mêmes un ensemble de systèmes agents. La troisième étape consiste pour le pirate à déclencher son attaque vers un ou plusieurs systèmes cibles donnés. Cet ordre d’attaque aura été donné par les systèmes handlers, qui eux-mêmes auront reçu cet ordre du pirate.
Parmi les nombreuses attaques DDoS, citons TFN (Tribe Flood Network), historiquement la première, et Stacheldraht, qui chiffre les ordres de commandes échangés entre les handlers et les agents dans le champ données des paquets ICMP. Ces attaques ont fait des émules, et d’autres attaques sont apparues, comme Trinoo, qui s’appuie sur UDP pour les communications des ordres entre handlers et agents. Mais aussi TFN2K, une version entièrement revue de TFN, qui introduit des phénomènes de randomisation des ports utilisés pour les communications des ordres entre les handlers et les agents, ainsi qu’un phénomène aléatoire dans le lancement des attaques vers les systèmes cibles.