Propos et Commentaires du Climenole

Introduction à Look’n'Stop

.

« Ce qui a forme et contours peut être observé par chacun dans l’Empire […] Tout cela est soumis à des formes se dominant mutuellement. Celui qui excelle aux formes refuse de les imiter. Car il sait que la grandeur du Tao réside dans ce qu’il n’a pas de forme. Sans-forme il ne peut être ni dominé, ni mesuré, ni trompé, ni même deviné. »

Extrait du “Houai-Nan Tse”, commentaire de l’Art de la Guerre de Sun Tzu.

Je me propose dans cette série d’articles de présenter un jeu de règles pour le pare-feu Look’n'Stop.

La connaissance des éléments des protocoles internet est un préalable indispensable pour la compréhension de ces règles.

C’est par l’explication sommaire de ces protocoles que nous allons commencer.

.
Look'n'Stop firewall

1- Le protocole TCP-Ip et le rôle du Pare-feu

Le protocole TCP-Ip se présente comme un modèle en 5 couches: physique, liaison, réseau, transport et applications. Les couches de la pile TCP-IP concernées se limiteront au trois dernières qui touchent directement le sujet de cet article puisque c’est à ces niveaux qu’intervient le pare-feu.

Les protocoles IP sont définis dans les Request for Comments et permettent de différencier les paquets respectants ces normes de ceux qui en diffèrent. Les paquets hors-normes seront réputés malformées et possiblement malveillants.

Les normes sont dans l’ordre: les adresses Ip et en particulier les adresses réservées, le protocole Icmp, le protocole Udp et le protocole Tcp. Le même ordre sera reflété dans la liste des règles.

Cet ordre a été choisi parce qu’il commence par les normes les plus générales et se continu vers celles qui sont plus particulières. Les adresses Ip concernent toutes les normes qui suivent, l’ICMP dépend des normes précédentes et concernent l’ensemble des connexions indépendement des ports UDP ou TCP. Pour ce qui est de l’UDP les datagrammes sont principalement utilisés par le protocole de résolution des adresses Domain Name Service, la synchronisation Network Time Protocol et certaines applications telles que les réseaux P2P. Enfin le TCP est le protocole “principal” pour la plupart des applications et est l’un des plus utilisé par des applications internet.

Les adresses IP

Depuis 2005 les adresses IP sont classées selon le Classless Inter-Domain Routing qui remplace les classes A, B, C, D, E. L’ IANA a réservé certaines plages d’adresses pour des fonctions particulières:

Unicast ou Point-à-point: les ex-classes A, B, et C et qui sont utilisable pour l’adressage sur internet comme adresses IP sources et destinations.

Multicast ou Multipoints: (l’ex-classe D) 224.4.0.0 – 239.255.255.255

Broadcast ou de Diffusion: 255.255.255.255

de même que des plages d’adresses réservées pour les réseaux locaux:

10.0.0.0 – 10.255.255.255

169.254.0.0 – 169.254.255.255

172.16.0.0 – 172.31.255.255

192.168.0.0 – 192.168.255.255

puis 240.4.0.0 – 255.255.255.254 , gamme réservée par L’IANA

et enfin 127.0.0.0 -127.255.255.255 réservé au bouclage en local.

Ces plages d’adresses ne doivent pas être retrouvées sur internet et dans le cas contraire elles sont le fait de routeurs mal configurés ou signalent des paquets malveillants. Il faut aussi noter que les adresses Ip légitimes ne peuvent finir par 0 ou 255 la première spécifiant le réseau lui-même, l’autre étant utilisée pour la diffusion pour la gamme d’adresse.

Wikipedia: Adresse IP

L’ICMP

L’Internet Control Message Protocol ne concerne aucun port en particulier et n’est principalement destiné qu’à signaler les incidents se produisant sur le réseau.

À l’exception des codes/types Echo request, Echo Reply et Traceroute les codes et types de ce protocole ne sont pas utilisés directement par les applications internet. Cependant l’utilisation de sondages d’adresses Ip utilisant l’Icmp est une des formes les plus simples pour détecter la présence d’un système actif correspondant à cette adresse IP.

Le rôle du pare-feu est de ne permettre que l’émission d’un requête d’ “echo”, la réception de la réponse à cette requête et l’utilisation du “Traceroute”. C’est ce qui assure, au niveau de ce protocole, la furtivité de votre système. Toute sollicitation de celui-ci par un sondage Icmp doit être ignorée.

Wikipedia: ICMP

L’UDP

L’User Datagram Protocol permet la transmission de paquets définie par une adresse Ip et un numéro de port sans garantir que la réception s’est faite ou non. Il est principalement utilisé pour le service de résolution des noms permettant la traduction entre un URL et une adresse IP, les échanges permettant d’établir une adresse Ip avec le DHCP, la synchronisation avec les serveurs Network Time Protocol et des appplications en streaming .

Le protocole UDP sert en particulier à transmettre des datagrammes pour le protocole NetBios, pour transmettre le “spam” du service d’affichage des messages vers les systèmes mal protégés et pas à jour de même que certain types de sondages tel que le “scan UDP ICMP_PORT_UNREACHABLE” qui utilise les paquets UDP pour déclencer une réponse ICMP signalant quels sont les ports ouverts ou fermés sur le système visé par le balayage.

D’autres méthodes utilisent des paquets malformés pour tenter d’exploiter des faiblesses des systèmes d’exploitation. On peut aussi signaler au passage les paquets UDP en provenance de sites de surveillances des réseaux d’échanges pair-à-pair et d’envoi de “fakes” sur de tels réseaux.

Les transmissions utilisant l’UDP doivent se limiter à celles qui sont légitimes: DNS , DHCP , NTP , etc. tout autre paquet UDP devant être ignoré.

Wikipedia: UDP

Le TCP

Le Transmission Control Protocol est celui qui retiendra le plus notre attention.

Une bonne façon de comprendre le protocole TCP est à de présenter une exemple de connexion entre un client et un serveur afin de comprendre ce que sont ces échanges et ainsi différencier les paquets légitimes de ceux qui doivent être ignorés.

Exemple d’une connexion d’un navigateur à un serveur web

Lorsque vous entrez l’URL d’un site web dans le champ d’adresse de votre navigateur la premère chose qui est vérifiée par le système d’exploitation est la présence de cet URL dans le fichiers HOSTS. Si cet URL est présent alors le navigateur se connecte à l’adresse IP indiquée dans le fichier HOSTS. La première ligne du fichier HOST se présente obligatoirement ainsi:

127.0.0.1 localhost

En général les adresses présentes dans ce fichier sont celles qui doivent être bloquées pour des raisons de sécurité. En ce cas la ligne correspondant à cet URL se présente par exemple ainsi:

127.0.0.1 URL_du_Site_malveillant.com

En ce cas la connexion boucle en local et l’accès au site à problème est interdit.

Dans le cas probable où l’URL du site n’est pas présent et bloqué par le fichier HOST le système fait une requête de résolution des noms vers le serveur DNS. Puis traduit cet URL en adresse IP, utilise le premier port local disponible entre 1024 et 5000 et initie la connexion en envoyant un paquet TCP ne contenant aucune donnée et avec le flag SYN vers le port 80 en écoute (listening). Le serveur accepte l’établissement d’une connexion sollicitée par le client et renvoie un paquet TCP avec les flags SYN-ACK.

La connexion entre le client et le serveur entre dans l’état “established“. La connexion se poursuit par l’échange de paquets TCP avec les flags SYN-ACK, ACK et à l’occasion ACK-PSH ou ACK-PSH-FIN.

La fermeture de la session de connexion se produit lorsque le client envoie un paquet TCP avec le flag ACK-FIN signalant la fermeture de la connexion. Cette fermeture est confirmée par l’envoi par le serveur d’un paquet TCP avec les flags ACK-FIN et se termine par l’acquiescement du client avec un paquet TCP avec le flag ACK.

Les points les plus importants à retenir de cet exemple simplifié sont:

1- que le paquet TCP avec le flag SYN qui introduit la connexion n‘est envoyé que depuis le client vers un serveur et jamais l’inverse.

2- que les paquets TCP transmis de part et d’autre durant la connexion ont tous au moins le flag ACK à l’exception de RST.

En somme, l’examen des transmissions TCP normales permet de connaître les combinaisons de flags légitimes de celles qui ne le sont pas et de même que les destinataires valides selon qu’il s’agisse d’un client ou d’un serveur.

Enfin les fonctions des flags permettent de reconnaître les combinaison illégales.

Les paquets TCP avec le seul flag SYN ne sont légitimes que depuis le client vers un serveur mais pas l’inverse.

Les combinaisons possibles sont SYN (vers le serveur), ACK, ACK-FIN, ACK-SYN, ACK-PSH, ACK-URG, ACK-RST, ACK-PSH-FIN et RST.

Toute autre combinaison étant réputée anormale et présumée d’origine malveillante tel que des paquets TCP sans aucun flag, avec tous les flags ou avec des combinaisons absurdes tel que SYN-FIN, PSH-URG-FIN, etc.

La non-réponse à toute sollicitation visant votre ordinateur comme un serveur assure le caractère furtif à votre système au niveau du protocole TCP. Comme vous le constatez il s’agit d’une défense plutôt “ZEN” ;)

Wikipedia: TCP

Sommaire des autres pages sur Look’n'Stop

.

Présentation de l’édition des règles

1- Nom de la règle
2- Direction des paquets
3- Description de la règle
4- Type Ethernet
5- Protocole IP
6- Positionnement des fragments
7- Flag des fragments
8- Flags TCP ou code et type ICMP
9- Options pour l’adresse Ethernet
10- Adresse Ethernet
11- Options pour l’adresse IP
12- Options pour les ports TCP/UDP
13- Applications
14- Édition du filtrage logiciel

Présentation commentée d’un jeu de règles

1- Un pare-feu furtif, sans fuite et informatif
2- Modèles possibles de jeu de règles
3- Exemple d’un jeu de règles simple
4- Règles pour les programmes internets

Les Normes et les Faits

1- Les programmes Internet et l’assignation des ports
2- Les programmes, les connexions et la documentation
3- L’exemple des navigateurs et l’utilisation des ports
4- Règles pour les applications les plus courantes
5- Les protocoles à “contenu sale”, à “n’importe quoi” et à “géométrie variables”

Les 7 étapes et le Journal

1- Créer une règle temporaire sans restrictions pour l’application à surveiller
2- Placer cette règle immédiatement après la règle pivot
3- Utiliser le programme en essayant toutes ses fonctions
4- Utiliser un chiffrier pour ne conserver que les lignes de TEST et les trier
5- Créer un jeu de règles de test à partie des résultats de la “phase 1″ du test
6- Conserver la première règle TEST comme “garbage collector” durant la “phase 2″
7- Recommencer à partir de l’étape 3 et rafinez vos règles.
8- Le Journal et le format brut

Cas particuliers et Jeu de Règles à Importer

1- Résumé de l’article précédent
2- La méthode d’élaboration des règles et les applications P2P
3- En guise de conclusion temporaire…
4- Jeu de Règles pour télécharger et importer dans Look’n’Stop
5- Autres ressources


Outil suggéré pour l’étude des protocoles internet: Packetyzer

protocols




Rédigé par Claude LaFrenière

2006/06/29 à 18:38