Attaques relatives à la structure du P2P

L’architecture de la plupart de ces systèmes P2P suppose que l’on peut faire confiance à tous les nœuds du réseau P2P. Dans un réseau isolé, comme le réseau interne d’une entreprise, cette supposition peut être justifiée. Mais dans un réseau ouvert, comme l’Internet, on peut toujours exclure les nœuds non dignes de confiance à l’aide d’un serveur central jouant le rôle d’une autorité pour l’attribution de certificat de confiance. Mais on peut rencontrer des situations où il n’est pas désirable de limiter l’accès à un système Peer-to-peer.

Dans ce cas, le système doit pouvoir continuer à fonctionner même si certains participants au réseau sont mal intentionnés.

Le modèle d’attaque qu’on a choisi consiste à créer des participants à des tables de hachage qui ne suivent pas correctement le protocole. Ils cherchent à tromper des nœuds participants au système en leur fournissant des informations erronées.

On suppose qu’un nœud malicieux est capable de créer des paquets avec un contenu modifiable, par exemple une adresse IP non réelle. Mais on suppose d’un autre côté que ce nœud malicieux ne peut tracer les communications entre les autres nœuds, et ne peut pas les modifier en conséquence.

La première ligne de défense contre une attaque consiste à la détecter. La plupart des attaques peuvent être détectées par un noeud puisque ces attaques modifient ou violent des règles des procédures de communication. Ce qui est moins évident, c’est les actions à prendre une fois que l’attaque a été détectée.

Attaques contre la table de routage

Le routage consiste à maintenir des tables de routage. Il est bien sur nécessaire à ce que le routage soit correct dans une table de hachage distribué. Malheureusement, il est possible à un adversaire d’affecter ces tables.

  • Attaque du type routage incorrect

Un noeud malicieux peut diriger des lookups à un noeud incorrect ou inexistant. Puisque le noeud malicieux participe à la mise à jour des tables de routage d’une façon normale, ce noeud incorrect apparaitra comme existant, et ne sera pas supprimé des autres tables de routage. La retransmission du lookup sera donc envoyée au noeud malicieux

  • Mise à jour incorrecte de la table de routage

Puisque chaque noeud dans un système recherche (lookup) construit sa table en consultant les autres noeuds du réseau, un noeud malicieux peut corrompre les tables de routage des autres noeuds en leur envoyant des informations incorrectes. Ces noeuds, qui pourtant marchent correctement, vont alors envoyer des requêtes à des noeuds inappropriées ou inexistants

  • Partionnement

Pour se connecter à un réseau P2P, un nouveau noeud doit contacter un noeud existant. Ce noeud pourra alors se connecter à un faux réseau. Supposons qu’un groupe de noeud malicieux a formé un réseau parallèle, fonctionnant avec le même protocole que le vrai réseau. Ce réseau parallèle fonctionne parfaitement et peut même contenir des fichiers du vrai réseau. Un nouveau noeud peut joindre ce réseau accidentellement et du coup ne pas fournir des résultats corrects. Un des noeuds malicieux peut également être connecté au vrai réseau et au faux réseau et causant la connexion des nouveaux noeuds au faux réseaux.

Le partionnement peut être utilisé par les noeuds malicieux pour refuser des services ou pour en apprendre davantage sur le comportement des clients qu’il sera autrement impossible d’observer. Supposons par exemple, qu’un service a été créé pour publier des documents anonymement, un utilisateur malicieux peut créer un système qui émule le vrai système, mais qui permet de suivre le comportement des clients pour les espionner.

Attaques du type stockage et récupération de donnnées

Un noeud malicieux peut joindre et participer au protocole de recherche (lookup) correctement, mais nier l’existence des données dont il est responsable. Un noeud peut également clamer l’existence de données, mais refuser de les servir aux clients.

Autres types d’attaque

  • Comportement étrange

les attaques déjà citées peuvent devenir plus difficile à détecter si le noeud malicieux se comporte correctement avec une certaine partie du réseau. Les noeuds du réseau ne verront alors aucune raison d’enlever ce noeud de leur table de routage bien que les noeuds plus distants ont observé un comportement invalide.

Idéalement, les noeuds distants doivent être capables de convaincre les noeuds locaux, que les noeuds qui semblent marcher correctement sont malicieux en vérité. Mais ceci nécessite l’utilisation des clés publiques et des signatures électroniques pour savoir quel noeud croire.

  • Surchage des noeuds (DoS)

Puisqu’un adversaire peut générer des paquets, il peut essayer de surgarcher des noeuds avec des paquets invalides. Il s’agit en vérité d’une attaque du type Denial Of Service, et ce n’est pas limité aux réseau P2P. Ceci causera l’arrêt du noeud et le système doit s’adapter.

  • Popularité et faux fichiers

Quand des documents sont demandés à partir de mot clé, plutôt qu’en utilisant un cryptage associé à un Hash, il devient possible à un attaquant de spoofer le résultat, de fournir un résultat qui n’est pas le résultat attendu, mais en le présentant comme le résultat que l’utilisateur recherche.

Un exemple de ceci peut être les industries de musique comme le RIAA qui a déployé des fichiers de musiques faux portant la même description que des vrais MP3 dont le but de tromper les utilisateurs. Une fois téléchargé, ce fichier n’est qu’une suite de 0 dont la taille approche la taille des fichiers MP3 originaux.

Ce problème est également présent dans les résultats de moteurs de recherche, et Google utilise l’algo PageRanck pour faire face à ce problème. Plus il y a des liens vers une page web, plus cette page web est importante.

Mais cet algorithme ne peut être appliqué aux réseaux P2P, d’autres techniques doivent être utilisées. Dans le cas du réseau eDonkey par exemple, les utilisateurs peuvent mettre des commentaires aux fichiers, donner des notes et indiquer si un fichier est un « fake », un fichier ne contient pas ce qu’il prétend contenir. Ceci permet d’avoir un résultat comparable au PageRank de Google.

  • Envoi de données erronées

Un type d’attaque sur les tables de hash distribué au sein des différents nœuds consiste à retourner des données incorrectes à l’application. On peut trouver une solution à ce problème en utilisant des techniques de hachage. Ces techniques permettent à un système de détecter et d’ignorer les données non authentifiées.

Dans le cas du réseau eDonkey, une vérification du hach est effectuée sur les données nouvellement téléchargées. Si la vérification ne réussit pas, ces données sont rejetées et on redemande l’envoi des parties manquantes.


0 Réponses à “Attaques relatives à la structure du P2P”


  1. Pas de commentaires

Laisser un commentaire