Systèmes de détection et prévention d'intrusion pour les réseaux de capteurs sans fil
# Systèmes de détection et prévention d'intrusion pour les réseaux de capteurs sans fil

Les systèmes de détection et prévention d'intrusion pour les réseaux de capteurs sans fil désignent l'ensemble des techniques et mesures prises pour détecter et protéger les réseaux de capteurs sans-fil des attaques informatiques.

Les réseaux de capteurs sans-fil sont des cibles vulnérables pour les hackers, qui peuvent interagir physiquement avec les réseaux et les objets.

Les organisations qui exploitent ces réseaux cherchent à mettre en place des solutions de détections d'intrusion pour se protéger contre les attaques communes. Les solutions existantes pour les réseaux traditionnels ne sont pas adaptées aux spécificités des réseaux de capteurs sans-fil, et il est nécessaire d'en développer de nouvelles. Des prototypes existent à l'état de projets de recherches.

## Problématiques spécifiques à l'internet des objets

L'internet des objets est caractérisé par une grande diversité de périphériques, de services, de protocoles et de matériels.

En héritant des technologies IP et des liaisons sans fil à faible consommation énergétique, les systèmes composant l'internet des objets héritent des vulnérabilités et des problématiques de sécurité de ces technologies. De plus, ils sont la cible d'attaques spécifiques à l'architecture de leurs réseaux, notamment les protocoles de routage. L'utilisation de chiffrement et d'authentification ne suffit pas à garantir la sécurité du $système^,^,$

Les ressources des nœuds étant limitées, ils ne peuvent pas toujours se défendre seuls contre un attaquant plus fort, tels qu'un ordinateur portable Les terminaux composant l'internet des objets sont également vulnérables aux attaques physiques, c'est-à-dire pour lesquelles l'adversaire à un accès physique au $périphérique^,.$

L’hétérogénéité, les faibles ressources de calcul et le caractère distribués des nœuds rendent difficiles le déploiement de système de détection d'intrusion $classique^,.$ Les systèmes de détection existant ne sont pas conçus pour ces problématiques et il n'existe pas de système de détection d'intrusions universel à l'internet des $objets^,$

### Analyse des risques

Garcia-Morchon identifie les risques suivants pour l'internet des $objets^,.$

| | Fabrication | Déploiement | Opération |
| - | - | - | - |
| Objet | Clonage du périphérique. Porte dérobée | Substitution du périphérique | Vie privée. Extraction de valeurs secrètes |
| Couche applicative | | | Remplacement du firmware |
| Couche transport | | Eavesdropping & Attaque de l'homme du milieu | Eavesdropping & Attaque de l'homme du milieu |
| Couche réseau | | Eavesdropping & Attaque de l'homme du milieu | Attaque par déni de service. Attaque sur les protocoles de routages (Attaque Sinkhole, Attaque Sybil, Attaque Wormhole) |
| Couche physique | | | Attaque par déni de service |

## Architectures

Les techniques de détections d'intrusions peuvent être classées en deux catégories, selon qu'elles soient centralisées ou non.

Dans une architecture centralisée, les stations de bases sont utilisés pour détecter les attaques. Les stations récoltent les données des nœuds et déterminent les nœuds malveillants.

À l'inverse, on peut distribuer la détection des attaques en collectant les informations dans des nœuds de confiance répartis sur le $réseau^,.$

Les IDS distribués peuvent être classés suivant qu'ils déterminent les nœuds de confiance statiquement, ou dynamiquement. Dans le second cas, les nœuds chargés de la protection du réseau varient au cours du temps.

## Mécanismes de détection des attaques courantes

Malgré l'absence de solution universelle, des techniques existent pour la détections d'attaques courantes.

### Attaque Sinkhole

L'attaque Sinkhole est une attaque où l'adversaire attire tout le trafic à lui. Dans une attaque Sinkhole, un nœud compromis étend sa sphère d'influence et tente d'attirer le trafic des nœuds voisins vers $lui^,^,^,$

Une attaque Sinkhole peut avoir pour conséquence une augmentation de la consommation réseau, ce qui augmente la consommation énergétique des périphériques et réduit la durée de vie du réseau

**Détection**

L'architecture INTI (Intrusion detection for SiNkhole attacks over 6LoWPAN) propose un modèle de détection basé sur la réputation, et la confiance accordée à chacun des nœuds. Chacun des nœuds calcule un indice modélisant la réputation des autres nœuds. Les nœuds propagent ensuite leurs status, qui sont analysés par le système de détection d'intrusion. On applique la théorie de Dempster-Shafer pour réduire les faux positifs.

La réputation de chaque nœud est comparée à un seuil, qui détermine si le nœud est bon ou s'il est considéré comme un attaquant.

**Réponse**

Cervantes propose un module qui diffuse un message de broadcast en guise d'alarme à tous les nœuds du réseau. Ils coupent les connexions avec les nœuds malveillants, ce qui les isole du réseau sain.

### Attaque Sybil

L'attaque Sybil est une attaque où l'attaquant manipule une ou plusieurs identités à un instant donné. L'adversaire apparait dans de multiples locations à un instant donné. Dans le cadre de l'internet des objets, l'attaquant est susceptible d'altérer les données produites par les nœuds, et d'atteindre à la confidentialité des données échangées par les $utilisateurs^,^,.$

Le but de l'attaque Sybil est de corrompre la table de routage et réduire l'efficacité des mécanismes de tolérance aux $fautes^,.$

**Détection**

L'attaque Sybil est caractérisée par l'existence de nœuds ayant une identité différente, mais partageant la même location physique.

L'approche de Sharma propose un modèle « léger » dans lequel le réseau définit un seuil de débit. Lorsqu'un nœud entre dans le réseau, les nœuds voisins calculent la valeur RSS (Received Signal Strength), c'est-à-dire la force du signal reçu.

Si la valeur RSS calculée est supérieure au seuil, alors le nœud est considéré comme Sybil. Tian propose de triangulariser la position réelle d'un nœud, et de la comparer à un écart acceptable.

### Attaque Wormhole

L'attaque Wormhole est un scénario dans lequel un attaquant enregistre les paquets en un point, et les rejoue à un autre. Il peut utiliser un autre lien physique, avec une latence plus faible que celle utilisé par le réseau $ciblé^,.$

**Prévention**

Hu introduit un mécanisme de laisse : on ajoute à chaque paquet transmis une information limitant la distance que peut parcourir le paquet. Les laisses peuvent être de type géographique, ou temporel. Ainsi, le destinataire d'un paquet peut détecter si un paquet reçu a parcouru une distance supérieure à celle autorisée par sa laisse. Dans ce cas, une attaque Wormhole est peut-être en cours.

**Détection**

Buch propose une approche statistique pour la détection d'attaque Wormhole : après avoir mesuré les quantités de données émises et reçues par chacun des nœuds surveillés, on peut comparer ces valeurs avec celles des nœuds voisins. Idéalement, le nombre de paquets envoyés à un nœud est la somme des paquets à destination de ce nœud reçus par ses voisins. Lorsque cette équation n'est pas satisfaite, une attaque Wormhole est peut-être en cours.

### Deni de service

L'introduction d'objets connectés dans la vie courante, plus spécifiquement ceux intégrés dans des systèmes critiques, tels que des services médicaux ou industries énergiques, augmente l'impact que peut entrainer un déni de service dans un réseau d'objets $connectés^,.$

**Détection**

Le système de détection de déni de service doit être lui-même résistant au déni de service. Plus précisément, le système de détection de déni de service doit s'activer avant que l'attaque ne rende ledit réseau inopérant.

Kasinathan propose une solution de détection dans laquelle des nœuds surveillent le trafic physique à l'aide de sondes dédiées, qui émettent des alertes à destination d'un centre de contrôle. Ce centre de contrôle corrèle les alertes reçues avec d'autres métadonnées pour analyser et confirmer une éventuelle attaque.

Pour pouvoir communiquer efficacement en cas de déni de service, les sondes communiquent avec le centre de contrôle à l'aide d'un canal physique différent de celui des nœuds à surveiller.

## Prototypes

Alors qu'il n'existe pas de solution adoptée par l'industrie, des universitaires ont proposé des prototypes de systèmes de détection d'intrusion qui intègrent certains des mécanismes de détection exposés précédemment.

### INTI

INTI (Instrusion detection for SiNkhole attacks over 6LoWPAN for InterneT of ThIngs) est une implémentation de système de détection d'intrusion pour le simulateur Cooja proposée par Cervantes. INTI regroupe les nœuds en clusters, puis les classe suivant leurs rôles dans le réseau; leader, associé (qui relaie le trafic entre clusters), ou simple membre. En plus des classiques stations de bases. Ce rôle peut changer au cours du temps, en cas de reconfiguration du réseau; panne d'un objet, réaction à une attaque.

Dans son fonctionnement, les nœuds propagent leurs status aux nœuds leaders, lesquels classent les nœuds selon un indice modélisant leur bienveillance. Les leaders déterminent la réputation de chacun des nœuds. Si la réputation est inférieure à un seuil, le nœud est considéré comme malveillant, et est isolé du réseau.

Pour isoler un nœud du réseau, Cervantes détermine trois procédures, suivant que le nœud à isoler soit leader, associé ou bien membre.

### SVELTE

SVELTE est un prototype de système de détection d'intrusion pour le système d'exploitation Conkiti proposé par Raza. Il intègre notamment un mini pare-feu distribué pour répondre aux alertes. SVELTE est un système hybride, c'est-à-dire qu'il a des composantes centralisées et des composantes distribuées entre les nœuds. Notamment, il s'installe à la fois sur les nœuds, et sur le routeur qui fait le lien entre la zone interne des objets et le reste de l'internet. Il est conçu principalement pour détecter les attaques sur les protocoles de routages.

SVELTE a pour objectif de détecter les attaques suivantes :

* Sinkhole
* Selective-Forwarding
* Paquets forgés

De plus, SVELTE se veut extensible pour ajouter des modules de détections.

