La sécurité dans l’environnement IP
Les échanges de données s’effectuent généralement entre un client et un serveur, mais les applications peer-to-peer, qui vont directement d’un client à un autre client, deviennent de plus en plus courantes. En règle générale, le client se sert d’un identifiant déterminé par un login et un mot de passe mis en clair sur le réseau. Le client est donc identifié, et il obtient l’autorisation d’accéder au serveur grâce à son mot de passe. Cependant, cette solution peut se révéler bien faible face à des pirates. L’absence d’authentification de la provenance des paquets IP rend possible de nombreuses attaques, comme les dénis de service (denial of service), c’est-à-dire le refus ou l’impossibilité pour un serveur de fournir l’information demandée. Il existe de nombreuses familles d’attaques dans le réseau Internet. Ce chapitre commence par donner un certain nombre d’exemples de ces attaques avant d’examiner les parades possibles. Les attaques par Internet Les attaques concernent deux grands champs : celles qui visent les équipements terminaux et celles qui visent le réseau Internet lui-même. Elles ne sont pas totalement décorrélées puisque les attaques des machines terminales par Internet utilisent souvent des défauts d’Internet. Les attaques du réseau Internet lui-même consistent à essayer de dérégler un équipement de routage ou un serveur, comme les serveurs DNS, ou à obstruer les lignes de communication. Les attaques des machines terminales consistent à prendre le contrôle de la machine pour effectuer des opérations non conformes. Très souvent, ces attaques s’effectuent par le biais des logiciels réseau qui se trouvent dans la machine terminale. Cette section explicite quelques attaques parmi les plus classiques.
Les attaques par ICMP
Le protocole ICMP (Internet Control Message Protocol) est utilisé par les routeurs pour transmettre des messages de supervision permettant, par exemple, d’indiquer à un utilisateur la raison d’un problème. Un premier type d’attaque contre un routeur ou un serveur réseau consiste à générer des messages ICMP en grande quantité et à les envoyer vers la machine à attaquer à partir d’un nombre de sites important. Pour inonder un équipement de réseau, le moyen le plus simple est de lui envoyer des messages de type ping lui demandant de renvoyer une réponse. On peut également inonder un serveur par des messages de contrôle ICMP d’autres types. Les attaques par TCP Le protocole TCP travaille avec des numéros de port qui permettent de déterminer une adresse de socket, c’est-à-dire d’un point d’accès au réseau. Cette adresse de socket est formée par la concaténation de l’adresse IP et de l’adresse de port. À chaque application correspond un numéro de port, par exemple 80 pour une application HTTP. Une attaque par TCP revient à utiliser un point d’accès pour faire autre chose que ce pour quoi il a été défini. En particulier, un pirate peut utiliser un port classique pour entrer dans un ordinateur ou dans le réseau d’une entreprise. La figure 34.1 illustre une telle attaque. L’utilisateur ouvre une connexion TCP sur un port correspondant à l’application qu’il projette de dérouler. Le pirate commence à utiliser le même port en se faisant passer pour l’utilisateur et se fait envoyer les réponses. Éventuellement, le pirate peut prolonger les réponses vers l’utilisateur de telle sorte que celui-ci reçoive bien l’information demandée et ne puisse se douter de quelque chose.
Les attaques par cheval de Troie
Dans l’attaque par cheval de Troie, le pirate introduit dans la station terminale un programme qui permet de mémoriser le login et le mot de passe de l’utilisateur. Ces informations sont envoyées à l’extérieur par le biais d’un message vers une boîte aux lettres anonyme. Diverses techniques peuvent être utilisées pour cela, allant d’un programme qui remplace le gestionnaire de login jusqu’à un programme pirate qui espionne ce qui se passe dans le terminal. Les attaques par dictionnaire Beaucoup de mots de passe étant choisis dans le dictionnaire, il est très simple pour un automate de les essayer tous. De nombreuses expériences ont démontré la facilité de cette attaque et ont mesuré que la découverte de la moitié des mots de passe des employés d’une grande entreprise s’effectuait en moins de deux heures. Une solution simple pour remédier à cette attaque est de complexifier les mots de passe en leur ajoutant des lettres majuscules, des chiffres et des signes comme !, ?, &, etc. Les autres attaques Le nombre d’attaques possibles est bien trop grand pour que nous puissions les citer toutes. De plus, de nouvelles procédures d’attaque s’inventent chaque jour. Les attaques par écoute consistent, pour un pirate, à écouter une ligne de communication et à interpréter les éléments binaires qu’il intercepte. Les attaques par fragmentation utilisent le fait que les informations de supervision se trouvent dans la première partie du paquet à un emplacement parfaitement déterminé. Un pirate peut modifier la valeur du bit de fragmentation, ce qui a pour effet de faire croire que le message se continue alors qu’il aurait dû se terminer. Le pare-feu voit donc arriver une succession de fragments qui suivent les fragments de l’utilisateur sans se douter que ces fragments complémentaires ont été ajoutés par le pirate. Les algorithmes de routage sont à la base de nombreuses attaques. En effectuant des modifications sur les tables de routage, le pirate peut récupérer de nombreuses informations qui ne lui sont pas destinées ou dérouter les paquets, lesquels, par exemple, vont effectuer des boucles et saturer le réseau. De la même façon, de nombreuses attaques sont possibles en perturbant un protocole comme ARP (Address Resolution Protocol), soit pour prendre la place d’un utilisateur, soit en captant des données destinées à un autre.