Introduction
La sécurisation d’un réseau Ethernet TCP/IP dans le monde académique repose en général sur la mise en
œuvre d’un pare-feu ainsi que sur le cloisonnement des flux à l’aide de VLANs. Le pare-feu régule les flux depuis et vers l’extérieur, les VLANs gèrent les flux internes. La configuration des pare-feux ainsi que celle des VLANs effectue à l’aide de règles qui reposent sur l’idée que ce qui n’est pas explicitement autorisé est interdit. Au fil du temps, les administrateurs du réseau mettent à jour les règles et des doutes apparaissent sur l’étanchéité du dispositif :
– des portes ne sont-elles pas ouvertes à tort ?
– comment vérifier que l’utilisation du réseau est conforme à la charte d’usage signée par les utilisateurs ?
– et surtout, comment détecter les intrusions potentielles ?
Les pare-feux et les éléments responsables de la gestion des VLANs produisent des fichiers d’événements (logs) en général très volumineux. Les consulter est utile en phase de mise au point de nouvelles règles, ils sont par contre difficilement exploitables pour vérifier efficacité des règles de sécurité positionnées. Des dispositifs supplémentaires sont donc nécessaires pour :
– vérifier les ports ouverts sur l’ensemble des machines du réseau ;
– visualiser le trafic (en différents points) par machines, protocoles, ports ;
– vérifier la vulnérabilité des services installés ;
– détecter les tentatives d’attaques ;
– détecter les éventuels intrus.
Après avoir effectué le point sur les principales attaques provenant du réseau, nous présentons ici différents outils déployés pour répondre aux questions posées ci-dessus. Ces outils procurent à l’administrateur du réseau une bonne connaissance des usages (souhaités ou non) et lui permettent de faire converger la politique de sécurité souhaitée et son implémentation effective.
Les principales attaques provenant du réseau
Pour protéger un réseau, il faut connaître les principales attaques qui peuvent l’affecter, la suite de ce chapitre les présente brièvement.
Les attaques sur les protocoles IP, TCP et UDP
Les attaques sur les protocoles TCP/IP tentent d’exploiter les concepts de base des couches réseau et transport. Elles ont pour but de bloquer le fonctionnement d’un réseau (déni de service) ou d’usurper l’identité d’une machine.
Le déni de service
Les attaques de type ( déni de service ) ont pour but de consommer toutes les ressources d’un réseau cible pour empêcher son fonctionnement normal. Ces attaques sont opérées par des groupes qui conjuguent leurs efforts pour le plaisir de nuire mais également par des organisations mafieuses qui demandent des rançons. Parmi un très grand nombre d’attaques en déni de service on peut citer les suivantes :
– les TCP SYN Food qui exploitent le mode connecté de TCP : pour établir une connexion, une machine source émet un paquet SYN (synchronize) auquel la machine destination répond par un paquet SYN-ACK (synchronize acknowledment ). Dans une situation normale, la machine source émet alors un paquet ACK (acknowledgment ) et la connexion est établie. Le schéma d’une attaque TCP SYN est de supprimer la dernière étape (envoi du paquet ACK), la machine cible l’attend alors pendant un certain temps. En répétant l’opération à grande échelle, on sature la machine cible en lui faisant atteindre le nombre maximum de connexion TCP qu’elle peut supporter : elle ne peut plus fonctionner.
– le ping of death dont le principe est d’envoyer des paquets ICMP dont la taille est supérieure à la taille maximale d’un paquet IP, certains équipements se bloquent alors (ils sont en voie de disparition).
L’usurpation d’identité
L’usurpation d’identité IP (IP spoofing ) est basée sur le fait que certains services utilisent l’adresse IP comme paramètre de confiance (rlogin, allow from d’apache, ...). Dès qu’une machine cliente dispose d’une connexion sur un serveur via une adresse IP de confiance, l’attaquant essaie d’usurper son adresse IP. L’attaquant doit au préalable réduire le vrai client au silence en le saturant au par une attaque de type ( déni de service ) (SYN Food par exemple). Il doit ensuite tenter d’exploiter une caractéristique du protocole TCP (numéros de séquences et d’acquittement qui ne sont pas toujours aléatoires) en ouvrant une session TCP usurpant l’adresse IP de la machine cliente. L’attaquant peut ensuite, s’il a réussi à deviner l’algorithme d’attribution des numéros de séquences, se faire passer la machine cliente.
Cette technique est évidemment très difficile à mettre en œuvre, certains systèmes qui n’utilisent pas un séquencement aléatoires y sont cependant toujours vulnérables.
Les attaques sur les protocoles applicatifs, les données qu’ils transportent et les applications qui les mettent en œuvre
Ces attaques sont les plus nombreuses car elles sont parfois très simples à déployer. Elles ciblent les vulnérabilités des protocoles applicatifs (SMTP, HTTP,...) ou de leurs implémentations mais également les applications qu’ils permettent d’utiliser (les scripts CGI, les applications PHP, ...). On peut aussi classer ici les attaques sur les applications, notamment celles portant sur les navigateurs Web.
L’attaquant peut, en fonction des attaques, exécuter du code malveillant, prendre le contrôle du système ou engendrer un déni de service. Les trois exemples suivants mettent en évidence des failles exploitables du protocole HTTP, du serveur http Apache et du navigateur FireFox. Les deux derniers exemples ont été choisis car ils sont relatifs à des outils très utilisés dans le monde universitaire. Il est évident que d’autres outils encore plus utilisés par ailleurs sont encore plus vulnérables (Microsoft Internet Explorer notamment) cf. SANS Top-20 Internet Security Attack targets (2006 annual Update)
Les attaques sur les protocoles applicatifs, les données qu’ils transportent et les applications qui les mettent en œuvre
Attaque sur HTTP
La méthode TRACE du protocole HTTP/1.1 a été spécifiée pour faciliter le développement d’application au-dessus de HTTP. Elle permet de visualiser dans le corps d’une réponse, toutes les en-têtes qui sont transmises lors d’une requête HTTP. Cette fonctionnalité est pratique dans une phase de mise au point pour vérifier ce que l’application distante reçoit. Malicieusement utilisée elle permet à un attaquant de visionner des cookies, des authentification de type auth-type : basic encodées en base 64 (en clair), ...
Cette faille peut être exploitée de la manière suivante :
– l’attaquant poste un mail à destination de l’attaqué (en usurpant l’adresse d’un collègue de celui-ci de préférence) ;
– l’attaqué consulte ce mail via une interface de type WebMail ;
– le courrier contient une pièce jointe qui va faire éxécuter un code JavaScript qui engendre une requête HTTP TRACE ;
– le script effectue une requête HTTP sur le serveur de l’attaquant en passant en paramètre le résultat de la requête TRACE effectuée sur le serveur de l’attaqué ;
– en consultant son log d’httpd, l’attaquant visualise les cookies, les champs auth en base 64, ...,
Attaques sur Apache
Le serveur HTTP Apache est composé d’un corps principal auquel s’ajoutent divers modules périphériques optionnels. De façon assez régulière, des failles sont répertoriées dans des modules, telles celles-ci qui permettent l’exécution de code arbitraire sur le serveur :
– le module mod rewrite des branches 1.3.8, 2.0.46 et 2.2.0 permet en fonction des règles d’écritures (les Rewrite rules) d’exécuter du code arbitraire ;
– le module mod tcl qui permet de faire exécuter des scripts developpés en TCL est vunérable dans sa version 1.0. Il autorise d’exécuter à distance du code arbitraire.
Attaque sur FireFox
Le problème le plus récurrent concerne l’activation des scripts JavaScript, celle-ci permet, dans certains cas, l’exécution de code arbiraire comme l’indique l’avis du CERTA du 13 novembre 2006 : ( il a été démontré qu’il était possible de modifier des objets scripts en cours d’exécution. Cette possibilité conduit potentiellement à l’exécution de code JavaScript arbitraire. Cette fonctionalité touche le moteur du navigateur qui est aussi utilisé dans le lecteur de mail qui devient ainsi vulnérable
si la fonctionalité JavaScript est activée ) .
Les attaques sur les systèmes d’exploitation ou leurs composants
Les systèmes d’exploitation et leurs composants peuvent également comporter des vulnérabilités qui peuvent être exploitées à distance. Plusieurs cas ont été signalés concernant des DLL de Windows, notamment à propos de la visualisation d’images WMF permettant l’exécution de code arbitraire. Pour exploiter il suffit de placer une image WMF corrompue sur un serveur Web et d’attendre les clients utilisant la DLL ciblée.
Les noyaux Linux peuvent également comporter des failles qui sont accessibles aux utilisateurs disposant d’un accès sur la machine cible. Combinées avec une attaque sur un service réseau (httpd par exemple), elles peuvent donner des accès privilégiés à un attaquant, ou provoquer un déni de service comme dans le cas de la vulnérabilité du noyau Linux avec IPv62publiée par le CERTA le 07 novembre 2006.
Premières mesures à prendre
Pour protéger un réseau il convient de s’informer très régulièrement sur ses vulnérabilités potentielles. Il revient aux différentes communautés d’utilisateurs de l’Internet de s’organiser en fonction du niveau de risques encourus. En France, les universités disposent des services du CERT-RENATER et de son réseau de correspondants de sécurité de sites. Plus généralement, en France, le CERTA (Centre d’Expertise Gouvernemental de Réponse et de Traitement des Attaques informatiques) diffuse journellement des alertes et des avis de sécurité qui décrivent les risques ainsi que les mesures à prendre immédiatement.
S’agissant des trois exemples décrits ci-dessus, dans les avis du CERTA on découvre qu’il convient respectivement de ne plus autoriser la méthode TRACE, de mettre à jour Apache et d’installer la version Firefox 1.5.0.8.
------------------------------------------------------------------------------------------------------
>>> CHAPITRE I : Les outils pour espionner
>>> CHAPITRE I : Les outils pour espionner
Aucun commentaire:
Enregistrer un commentaire