Les attaques sur la couche réseau
Au sein de la couche réseau du modèle OSI, la sécurité constitue un enjeu critique, notamment en raison de l’absence de mécanismes de vérification d’identité. Cette couche, conçue pour l’acheminement efficace des paquets à travers des réseaux complexes, n’intègre pas nativement de contrôle de l’authenticité de la source des données transmises. Une faille majeure découle de cette lacune : la possibilité de falsification de l’adresse IP source d’un paquet.
En théorie, l’adresse IP d’un paquet devrait être la représentation numérique fiable de la provenance de celui-ci. Toutefois, dans la pratique, un individu aux intentions malveillantes peut manipuler l’en-tête IP pour y insérer une adresse source falsifiée, ce qui est souvent désigné par le terme de “spoofing”. Ce genre de subterfuge numérique ouvre la voie à une variété d’abus et de menaces en matière de sécurité réseau.
L’usurpation d’adresse IP peut être utilisée pour masquer l’origine réelle d’une attaque, rendant la tâche des défenseurs plus ardue lorsqu’il s’agit de tracer et de bloquer l’attaquant. La pratique courante de bannir les adresses IP impliquées dans des attaques s’avère donc peu efficace, car les adresses manipulées peuvent être arbitraires ou appartenir à des systèmes légitimes qui sont eux-mêmes victimes. Cela souligne l’importance de ne pas se reposer uniquement sur l’adresse IP source pour authentifier la provenance des paquets au sein de la couche réseau.
Dans ce contexte, comprendre la menace et développer des stratégies de mitigation nécessite une analyse approfondie et une connaissance précise des protocoles de la couche réseau. Cela implique également l’adoption d’approches de sécurité multicouches qui ne dépendent pas uniquement de l’adresse IP pour l’identification et l’authentification.
La limites en PPS
Une attaque par PPS (pour paquet par secondes) est une forme spécifique de déni de service qui cible la capacité de traitement des équipements réseau en inondant la victime avec un volume élevé de paquets en un très court laps de temps. L’objectif ici n’est pas nécessairement le volume de données, mais plutôt le nombre de paquets qui doivent être traités.
Les équipements réseau, comme les routeurs et les pare-feu, ont une capacité limitée pour traiter les paquets qui leur transitent. Ils doivent examiner les en-têtes de chaque paquet, déterminer la destination appropriée et, le cas échéant, appliquer des règles de filtrage ou de routage. Un afflux massif de paquets sollicite ces tâches à un niveau qui dépasse leur capacité opérationnelle, provoquant un ralentissement ou, dans le pire des cas, un arrêt complet du traitement des paquets légitimes.
L’attaque est redoutable, car elle peut être exécutée avec des ressources relativement limitées de la part de l’attaquant. Des paquets très léger, voir même vides, suffisent pour saturer les ressources de traitement d’un équipement. Cela contraste avec les attaques par débit, qui cherchent à saturer la bande passante et nécessitent une grande quantité de données pour être efficaces. Les attaques par PPS exploitent souvent des paquets légers et normalement inoffensifs. Cependant, leur volume et leur fréquence de transmission forcent les dispositifs réseau à consommer des ressources de traitement excédentaires pour chaque paquet, ce qui engendre un état de surcharge.
Une attaque par PPS est particulièrement vicieuse, car elle ne se contente pas de saturer le processeur de l’appareil ciblé ; elle vise également à remplir les files d’attente des routeurs. Chaque routeur a une capacité de mise en file d’attente limitée pour les paquets en attente de traitement. Lorsque cette capacité est dépassée, les paquets supplémentaires sont rejetés ou perdus, ce qui entraîne un déni de service pour les données légitimes. Ce remplissage des files d’attente force le routeur à consommer davantages de ressources, le forçant non seulement à traiter les paquets, mais aussi à gérer le trafic retransmis. Cela intensifie l’impact de l’attaque sur les performances du réseau, car des paquets légitimes sont perdus et doivent être retransmis, ce qui remplit encore plus la file.
Pour se prémunir contre les attaques par PPS, il est nécessaire d’adopter des stratégies de sécurité multicouches. L’utilisation isolée de technique tel que le rate limit n’est souvent pas suffisante, car elle peut conduire à bloquer indistinctement le trafic légitime lorsque l’adresse IP source est falsifiée. Une approche plus robuste consiste à implémenter une analyse comportementale du trafic pour identifier les modèles d’attaque, plutôt que de se reposer uniquement sur la source IP. Des systèmes de détection et de prévention d’intrusions peuvent être configurés pour reconnaître les schémas d’attaques par PPS et déclencher des réponses automatiques, mais ils risquent également de saturer rapidement.
La seule solution réel, c’est la diversification des chemins réseau et la redondance pour diminuer l’impact des attaques en répartissant le trafic sur plusieurs composants, évitant ainsi la saturation d’un point unique. La validation des paquets entrants à l’aide de techniques telles que l’inspection profonde des paquets (appelée DPI) peut aussi aider à filtrer le trafic malveillant avant qu’il n’atteigne les ressources critiques. Quoi qu’il en soit, la collaboration avec les fournisseurs et les hébergeurs afin de mettre en œuvre des mesures de filtrage du trafic à la périphérie du réseau s’avérera toujours bénéfique dans le but d’atténuer les effets des attaques avant qu’elles n’entrent dans le réseau interne.
Les attaques par fragmentation
L’attaque par fragmentation est une méthode spécifique exploitée dans les dénis de service qui cible la manière dont les réseaux gèrent les paquets de grande taille. La fragmentation est un processus normal dans le fonctionnement d’un réseau : lorsqu’un paquet est trop volumineux pour être transmis sur le réseau en l’état, il est découpé en fragments plus petits qui sont ensuite reconstitués par le système de destination. Toutefois, cette fonctionnalité nécessaire peut être détournée à des fins malveillantes.
Dans une attaque par fragmentation, l’attaquant fragmente délibérément des paquets en plusieurs petits bouts afin de contourner les mécanismes de sécurité, qui sont souvent configurés pour inspecter des paquets entiers. Ces petits fragments peuvent passer inaperçus, car ils ne contiennent pas suffisamment de données pour être identifiés comme malveillants par les mécanismes de sécurité qui s’attendent à des paquets entiers.
L’objectif principal de cette attaque est de saturer la capacité de la machine cible à reconstituer ces fragments. Les systèmes d’exploitation ont une quantité limitée de mémoire tampon réservée à la reconstitution des paquets fragmentés. Lorsque cette mémoire est pleine à cause d’une quantité excessive de fragments, le système peut ralentir considérablement, voir même de cesser de fonctionner, ce qui résulte en un déni de service.
L’attaque par fragmentation se révèle particulièrement rusée lorsqu’elle cible les extrémités d’un paquet, exploitant spécifiquement le premier et le dernier fragment pour tromper le système de destination. Dans une telle attaque, l’assaillant envoie sciemment le premier fragment d’un supposé grand paquet de données, ainsi que le dernier fragment, mais omet de transmettre les fragments intermédiaires. Ces fragments indiquent au système cible de commencer le processus de réassemblage et de réserver de la mémoire pour les futurs fragments. Quant au dernier fragment, il incite le système à attendre et à conserver un espace mémoire pour des fragments qui n’arriveront jamais.
Le système de destination, trompé, alloue donc une partie de sa mémoire tampon pour ce qui est anticipé comme un paquet de grande taille à venir. Cette allocation est basée sur les informations contenues dans les fragments reçus, lesquelles suggèrent que d’autres données sont en chemin pour compléter le message. Cependant, comme les fragments intermédiaires sont intentionnellement omis, l’attente devient interminable et l’espace mémoire alloué reste inutilisé et bloqué. La mémoire reste ainsi réservée et indisponible pour d’autres opérations, ce qui peut mener à un ralentissement significatif du système.
Les paquets invalides
L’attaque par paquets invalides, souvent illustrée par l’exemple historique du “ping de la mort”, est une forme spécifique de déni de service qui cible des vulnérabilités au niveau de la couche réseau. Cette attaque se caractérise par l’envoi d’un ou de plusieurs paquets avec des caractéristiques déformées qui exploitent les failles des protocoles réseau.
Le “ping de la mort” implique l’envoi d’un paquet ping d’une taille supérieure à la normale autorisée, ce qui était possible à cause d’une lacune dans la spécification originelle du protocole. Les paquets ICMP étant normalement utilisés pour des messages d’erreur ou des tests de réseau simple, ils ne sont pas conçus pour le transfert de grandes quantités de données. L’attaque fonctionne en fragmentant un paquet ping excessivement grand de sorte que le paquet initial est accepté par la cible. Lorsque la victime tente de réassembler ces fragments en un seul paquet pour le traitement, la taille totale dépasse la limite maximale, entraînant un débordement de la zone mémoire. Ce débordement peut causer des comportements imprévus, y compris le blocage ou le redémarrage du système, résultant en un déni de service pour les utilisateurs légitimes.
Les systèmes d’exploitation modernes ont depuis longtemps corrigé cette vulnérabilité spécifique, mais le concept général d’envoyer des paquets invalides pour provoquer des dénis de service persiste sous différentes formes. Les attaquants recherchent continuellement des défauts de traitement de paquets, comme des erreurs de fragmentation, des options d’en-tête incorrectes ou d’autres anomalies pour provoquer un crash ou un comportement indésirable dans les équipements de réseau ou les hôtes de destination. La prévention de telles attaques repose sur des équipements à jour et sur l’application de correctifs de sécurité