Overlapping IPv4, IPv6, and TCP data : exploring errors, test case context and multiple overlaps inside network stacks and NIDSes

Type de soutenance
Thèse
Date de début
Date de fin
Salle
Amphi ABL, CentraleSupélec, campus rennais
Orateur
Lucas AUBARD (PIRAT)
Sujet

Résumé :

La fragmentation IP et la segmentation TCP permettent de diviser des paquets réseaux trop volumineux en morceaux plus petits. Ce découpage peut donner lieu à du recouvrement, c’est-à-dire que plusieurs morceaux ainsi créés peuvent se chevaucher, de manière complète ou partielle, avec des données non nécessairement identiques. Les politiques de réassemblage, c’est-à-dire le morceau de données préfère en fonction du type de recouvrement, diffèrent selon les implémentations IPv4, IPv6 et TCP. Des lors, un système de détection d’intrusion réseau (NIDS) qui ne ré-assemble pas les recouvrements de la même manière que l’hôte surveille est aveugle au flux réellement traite par cet hôte, laissant la place à son contournement.
L’objectif principal de cette thèse est d’évaluer dans quelle mesure les NIDS sont vulnérables a des attaques basées sur les recouvrements IPv4, IPv6 et TCP. Nous proposons tout d’abord une nouvelle méthode pour modéliser les recouvrements de fragments et de segments afin de garantir la complétude des tests. Nous instancions ce modèle dans notre outil PYROLYSE et testons les politiques de réassemblage de différents types de piles IP et TCP. Nous avons découvert que les politiques sont beaucoup plus diverses et complexes que décrites dans l’état de l’art et que les NIDS Suricata, Snort et Zeek présentent des incohérences de réassemblage avec ces piles, ce qui les rend vulnérables aux attaques par recouvrement. 
Nous avons également trouvé des erreurs de réassemblage dans cinq piles, dont une CVE.

English abstract:

IP fragmentation and TCP segmentation enable the splitting of large data packets into smaller ones. These mechanisms permit full or partial overlaps with different data on the overlapping portions. Reassembly policies, i.e., the data chunk preferences that depend on the overlap types, differ across IPv4, IPv6, and TCP implementations. This can lead to vulnerabilities, as Network Intrusion Detection Systems (NIDSes) may interpret the packet differently from the monitored hosts.
The main goal of this thesis is to evaluate to what extent NIDSes are vulnerable to overlap-based attacks. We first propose a new way to model the fragment and segment overlaps to ensure complete testing. We instanciate this model in our tool PYROLYSE and test the reassembly policy of various IP and TCP stack types. We discovered that the policies are much more diverse and complex that described by related works. Suricata, Snort and Zeek NIDSes exhibit reassembly inconsistencies, which make them vulnerable to overlapbased attacks. 
We also found reassembly errors in five stacks, including one CVE.

 

Composition du jury
- Georgios SMARAGDAKIS Full professor a l’Universite Technique de Delft, Pays-Bas
- Herve DEBAR Professeur a Telecom SudParis, France
- Vincent NICOMETTE Professeur a l’INSA de Toulouse, France
- Johanna AMANN Senior Engineer chez Corelight, Royaume-Uni
- Yassine HADJADJ-AOUL Professeur a l’Universite de Rennes, France
- Gilles GUETTE Professeur a l’IMT Atlantique, France (directeur de thèse)
- Johan MAZEL Inspecteur chez ANSSI, France (co-encadrant)
- Pierre CHIFFLIER Inspecteur chez ANSSI, France (co-encadrant)