10/28/2006

Les Canaux cachés de la couche Réseau

Le protocole Ipv4 est à la base des réseaux informatiques. Sa RFC définit un certain nombre de propriétés que doit remplir le protocole. Toutes ces propriétés se traduisent par des champs dans l'entête Ipv4. Ces champs ne sont parfois que partiellement utilisés et peuvent donc être modifiés en conséquence pour créer un canal caché.


+

Bits 0 - 3

4 - 7

8 - 15

16 - 18

19 - 31


0

Version

Header length

Type of Service

Total Length

32

Identification

Flags

Fragment Offset

64

Time to Live

Protocol

Header Checksum

96

Source Address

128

Destination Address

160

Options + Padding

160/192+


Data



Figure 3: Entête IP

Comment le protocole est-il détourné?

Le champ d'identification du paquet IP est codé sur 16 bits et est employé pour identifier un datagramme IP dans un même flot, c.-à-d. un ensemble de datagrammes IP partageant le même quatre-tuple de source et de destination (IP de source, IP de destination et ports source et de destination). La valeur pour ce champ doit être choisie aléatoirement par la source, mais peut également contenir une valeur non-aléatoire sans perturber le mécanisme d'IP. Il est alors possible de détourner ce champ pour cacher 16 bits de données et les envoyer à n'importe quel autre système sur le réseau. Remarquons qu'il a été proposé de cacher les informations transmises dans ce champ de telle manière qu'on garde les propriétés de suite pseudo-aléatoire du champ d'identification.

D'autre part, le champ de 3-bits utilisé pour gérer les problèmes de fragmentation est facultatif et sans conséquence sur le fonctionnement du protocole IP. Par conséquent c'est un medium intéressant pour les canaux secrets, quoiqu'il puisse seulement faire circuler quelques bits par paquet. Le champ de remplissage est normalement à 0, mais rien n'empêche de choisir un remplissage autre que 0 et donc d'exfiltrer ainsi de l'information.

Le champ option de l'entête du paquet IP est prévu pour les opérations de service requises ou utiles dans quelques situations bien précises mais inutiles pour les communications les plus communes. C'est un champ très intéressant pour pouvoir faire circuler des informations, car il offre un débit spatial très intéressant.

Logiciels pouvant être utilisés:

On pourra utiliser covert_tcp.c ou new-sob.c, en mode IP.

Dans les deux cas la communication entre l'expéditeur et le destinataire est directe. Les logiciels créent le trafic qu'ils utilisent pour créer un canal caché et inscrire de l'information dans chaque paquet utilisé, donc nous sommes dans le cas d'un trafic spatial.

Sous Ipv6, certaines implémentations sont déjà en cours, par exemple le logiciel de Thomas Graf.


Aucun commentaire:

Enregistrer un commentaire