Très à la mode en ce moment les attaques par déni de service (DoS) sont très dangereuses et génèrent des arrêts de service onéreux aux sociétés dont l'activité est basée sur un système informatique (nouvelles technologies, plateformes Web marchands, etc). En effet, les attaques ont pour seul objectif d'empêcher le bon fonctionnement d'un système et non de récupérer des informations.
Les attaques DoS n’utilisent pas de failles systèmes, mais tirent partie d'une faiblesse de l'architecture d'un réseau. Ce type d'attaque utilise une implémentation du protocole IP : il est ainsi possible par le biais d’une attaque DoS d’envoyer des paquets IP de taille anormalement importante. Le système victime reçoit des paquets IP qu'il ne peut gérer et fini par stopper tous les services (saturation mémoire).
Il n’existe malheureusement pas de "patch" pour se prémunir de telles attaques, c'est une faiblesse de la « norme » de communication (IP) qui est ici mise en oeuvre.
Une technique de déni de service : le « smurf »
Un BROADCAST SERVER (serveur de diffusion) est capable de rerouter un paquet de données à toutes les machines de son réseau en le dupliquant autant de fois qu'il y a de machines. Un ping consiste à envoyer un message vers une adresse IP particulière afin de s’assurer de sa présence effective.
Le "Smurf" est une technique de déni de service très ancienne issue du monde UNIX. Cette attaque est organisée car elle utilise une liste de serveurs broadcast récupérée à l'avance par un scanner prévu à cet effet.
Imaginons une machine A désirant attaquer une machine B :
- la machine A envoi un « ping » à un serveur broadcast en falsifiant son adresse IP,
- l'adresse IP falsifiée est celle de la machine B (la victime),
- Le serveur broadcast adressera le PING à son réseau et autant de PONG qu'il y a de machines seront renvoyés à la machine B (le paquet provenant donc "faussement" de la machine B).
L’attaque « Smurf » ne se sert pas uniquement d'un seul serveur broadcast mais d'une liste complète contenant les meilleurs serveurs broadcast : les plus rapides et surtout ceux qui reroutent vers le plus grand nombre de machines possibles.
Si on imagine 1 PING de 1Ko de données envoyé à un serveur broadcast reroutant vers 1000 machines, cela donnerait donc 1Mo de données reçus par la victime. Si l’on utilise 10 serveurs broadcast reroutant chacun vers 1000 machines, cela fera 1000 Mo de données reçus très rapidement par la victime qui ralentit tellement qu'elle finit par se déconnecter.
Le TCP-SYN/Flooding
Quand un système client essaie d’établir une connexion TCP à un système fournissant un service (le serveur), le client et le serveur échangent une séquence de messages suivant ce schéma ci-contre :
Les abus viennent au moment où le serveur a renvoyé un accusé de réception du SYN (ACK-SYN) au client mais n’a pas recu le « ACK » du client. C’est alors une connexion à demi-ouverte. Le serveur construit dans sa mémoire système une structure de données décrivant toutes les connexions courantes. Cette structure de données est de taille finie, ce qui veut dire qu’il peut se créer un dépassement de capacité en créant intentionnellement trop de connexions partiellement ouvertes.
L’ordinateur de l’agresseur envoie des messages SYN à la machine victime; ceux-ci paraissent provenir d’un ordinateur bien défini mais qui en fait, fait référence à un système client qui n’est pas capable de répondre au message SYN-ACK. Ce qui veut dire que le message ACK de confirmation finale ne sera jamais renvoyé au serveur victime.
Normalement, il y a un système de « time-out » (i.e. si le système attend un événement particulier, au bout d’un certains temps, il considère que cet événement n’apparaîtra plus et génère une erreur ou un message) associé à chaque connexion ouverte, donc les demi-connexions devraient expirer et le serveur victime ainsi récupérer de la place libre dans sa mémoire pour d’autres connexions. Toutefois, le système agresseur continue d'envoyer des paquets plus vite que le temps nécessaire au serveur pour faire expirer les demi-connexions.
La localisation de l’attaque est très complexe car les adresses contenues dans les paquets SYN envoyés sont très souvent falsifiées. Il n’y a donc pas de moyen de déterminer sa véritable source. Internet faisant suivre les paquets grâce à l’adresse de destination, le seul moyen s’affranchir de ces attaques est de valider la source d’un paquet en utilisant le filtrage.
Les vers
Un vers (en anglais worm) est un agent autonome capable de se propager à l'intérieur de la mémoire d'un ordinateur passant d'un système à l'autre grâce au réseau informatique.
En novembre 1988, un étudiant lança un petit programme sur Internet qui était capable de se dupliquer par lui-même à travers le réseau. Dans les 8 heures qui suivirent, entre 2000 et 3000 ordinateurs étaient déjà infestés. Au total, plus de 6 000 postes furent contaminés et devinrent inutilisables, causant une perte de 150 à 200 millions de dollars.
Après avoir pénétré au sein du système de sa victime, ce vers se dupliquait tout en se camouflant, saturant ainsi la mémoire disponible. Le serveur alors surchargé ne pouvait créer d'autres processus, et les connexions utilisateurs devenaient impossibles. Malgré les actions répétées de l'administrateur afin de supprimer tout les vers en mémoire, ils réapparaissaient très rapidement par l'intermédiaire du réseau.
Ce programme est différent d'un virus car :
- il n'attaque pas les données personnelles,
- il ne cherche pas à récupérer les mots de passe du système,
- il ne se reproduit pas comme un virus, qui s'implante dans les programmes,
- il ne nécessite pas l'action d'un autre programme pour être actif,
- il ne se diffuse que sur le réseau Internet (inactif sur les autres supports).
Son mode de propagation est cependant redoutable : le vers effectue une commande interne qui recherche d'autres serveurs reliés à Internet pour ensuite les infecter.
Historiquement, le premier programme de type "vers", apparu en 1971, était destiné à faciliter l'utilisation d'un réseau en récoltant de l'information d'un poste à un autre. Ce programme ne se répliquait pas.
Depuis le terme « vers » a évolué, et l'on accorde maintenant à certains programmes dont le but n'est pas de récolter de l'information mais bien de la détruire, à l'image des virus, tout en gardant un type de propagation basé sur l’utilisation d’un réseau informatique. Ces nouveaux vers se connectent au système d'exploitation en utilisant des trous de sécurité.
Les vers sont désormais utilisés par des hackers malicieux pour attaquer un maximum de sites en peu de temps, sans suivi réel de l'attaque. C’est un bon moyen de diversion pour une intrusion plus subtile...
Les trappes
Une trappe est un point d’entrée dans un système informatique qui passe au-dessus des mesures de sécurité les plus communes. C’est généralement un programme caché ou un composant électronique qui rend le système de protection inefficace. Ce peut être aussi une modification volontaire du code d'un programme, qui permet très facilement à son développeur de créer son propre outil d'intrusion.
La trappe peut être liée à une mauvaise politique de sécurité de la part des personnes chargées de l'administration. Par exemple, certains systèmes d’exploitation ont des comptes utilisateurs avec de hauts privilèges destinés à faciliter le travail des techniciens. Pourtant, une telle autorisation n'est pas toujours nécessaire, et il en résulte une détérioration de la sécurité. Il est donc important de trouver un équilibre entre facilité et fiabilité.
Il est bon de préciser que la plupart des fois où un hacker entre de force dans un système, il laisse derrière lui une ou plusieurs trappes pour être capable de revenir par la suite. C’est pourquoi, suite à une intrusion, il est prudent de vérifier toute l'intégrité du système de fichiers ou bien de ré-installer le système d’exploitation
Dans un autre contexte, il existe également des programmes qui permettent de récupérer les données émises sur un réseau : ces logiciels se nomment des "KEYTRAP", ils interceptent toutes les trames (qu'elles leur soient destinées ou pas) qui passent par un ordinateur ou un routeur. Les trames ainsi capturées, le Hacker n'a plus qu'à les décoder et à les lire (par exemple : numéro de CB, mot de passe avec destination, e-mail, etc...). Une politique de sécurité efficace permet d'éviter ce genre de désagrément.
Les chevaux de Troie ou Trojans
Loin de la mythologie, les chevaux de troie sont bien réels et efficaces dans le domaine de l'informatique. Le principe de l’attaque par "Trojans" est d’entrer sur le système de la victime par le biais d'un logiciel qu'il aurait volontairement exécuté. Cette attaque est rendue possible par l'intermédiaire d'un code parasite ajouté dans le logiciel à son insu. Un fichier excécutable reçu par E-mail peut tout à fait contenir un cheval de Troie.
En effet, le trojan est un logiciel de très petite taille (quelques lignes de code seulement) qui est dissimulé au sein d'un autre programme (c'est l'hôte) que vous utilisez. En lançant ce dernier, vous activez par la même occasion, le trojan caché qui ouvre alors une ou plusieurs portes virtuelles (ports) sur votre machine. Il permet ainsi au hacker de s'introduire avec grande facilité sur votre système à votre insu : le cheval de troie devient alors autonome, même si vous quittez le programme qui lui a permis de s'activer.
Depuis peu, des trojans de deuxième génération ont fait leur apparition, plus dangereux, ils ne se contentent plus d'ouvrir des portes virtuelles sur votre machine, mais ils infectent également, tel un virus, toutes les applications actives de votre machine. Cette méthode d'infection par trojan a été développée pour la première fois en France, le logiciel se nommant "Le Socket de Troie".