WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mise en place d'un IDS en utilisant Snort

( Télécharger le fichier original )
par Hamzata Gueye
Miage kenitra - Licence en informatique et reseau 2010
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

II.5. 3.4 SNIFFING

Le sniffing consiste simplement à capturer une image du trafic qui circule sur un brin d'un réseau. Le but du sniffing est d'exploiter le fait que beaucoup de méthodes d'authentification transmettent les mots de passe en clair sur le réseau. Le sniffing est typiquement utilisé par les pirates pour étendre leurs attaques. Une fois qu'ils ont pris possession d'une machine, le sniffing leur permet de trouver des mots de passe leur donnant accès à des machines supplémentaires. Le sniffing est le plus efficace dans des réseaux locaux qui utilisent un média partagé (par exemple, l'Ethernet classique sans commutation). Dans ce cas le sniffer peut voir le trafic de toutes les machines connectées au réseau local et sa chance de trouver un mot de passe est plus grande. Les réseaux locaux récents sont souvent commutés plutôt que partagés. Dans ce cas chaque machine est connectée séparément à un commutateur. Le commutateur ne propage les paquets que vers les machines qui peuvent potentiellement être leur destinataire. Ceci augmente largement les performances du réseau, puisque chaque machine a à sa disposition la bande passante totale du média. L'efficacité du sniffer est par contre fortement réduite puisqu'il ne voit que le trafic concernant la machine sur laquelle il est installé. Certains sniffers avancés permettent de forger des messages du protocole de résolution d'adresses Ethernet (ARP) afin de recevoir du trafic qui ne leur est pas destiné, même sur un réseau commuté. On parle alors d'empoisonnement de la résolution d'adresses (ARP poisoning).

La plupart des systèmes d'exploitation ne permettent l'exécution de sniffers que par des utilisateurs ayant des privilèges d'administrateur. En utilisant un sniffer sur une machine, le pirate peut éventuellement trouver le mot de passe d'un administrateur d'une autre machine et installer un sniffer sur cette nouvelle cible.

Plus souvent, le pirate découvre des mots de passe d'utilisateurs qui ne sont pas administrateurs. Ces mots de passe lui donnent accès à de nouvelles machines, mais il doit encore trouver une vulnérabilité dans sa nouvelle cible et d'obtenir les privilèges d'administrateur.

Pour information, les protocoles d'authentification les plus courants qui transmettent des mots de passe en clair sont donnés dans le tableau 1

Figure 1 : PROTOCOLES ÉCHANGEANT DES MOTS DE PASSE EN CLAIR

II.5.1. IP SPOOFING

Le terme "IP Spoofing" se réfère à la falsification d'adresses source IP. Dans de nombreux cas, des paquets de données sont traités différemment en fonction de leur adresse source. Dans les réseaux, un routeur ou un firewall peut laisser passer des paquets dont l'adresse source indique qu'ils proviennent d'un site ami. De même, certaines applications offrent des privilèges aux connexions qui émanent de sites connus. Par exemple rsh, sous Unix, peut permettre l'exécution de commandes sans demander de mot de passe, à condition que la requête vienne d'un site se trouvant sur une liste de sites amis.

Typiquement, les attaques de Spoofing exploitent des relations de confiance entre des machines qui appartiennent à une même entité. Par exemple, les machines d'une salle informatique peuvent être configurées de manière à ce qu'on n'ait pas besoin de s'authentifier si on se connecte à une machine de la salle à partir d'une autre machine de la salle. Un pirate peut exploiter cette relation de confiance en essayant de se faire passer pour une machine de la salle lorsqu'il se connecte à une autre machine de la salle. La difficulté avec le Spoofing est que le pirate qui envoie des paquets avec des adresses source falsifiées ne voit pas les réponses à ces paquets, puisque la cible répondra à l'adresse falsifiée se trouvant dans les paquets. Ceci est d'autant plus difficile que la plupart des attaques se basent sur des connexions TCP et que pour établir une connexion, TCP exige que trois paquets soient échangés.

Pour comprendre les tenants et aboutissants d'une telle attaque il faut se rappeler quelques notions de base de TCP. TCP est un protocole à fenêtre coulissante. Il utilise donc un numéro de séquence pour chaque direction, indiquant le numéro du premier byte envoyé dans la trame courante et le numéro du prochain byte attendu. Pour éviter que des paquets retardés d'une ancienne connexion soient confondus avec des paquets d'une connexion courante, les numéros de séquence ne commencent pas à zéro, mais à une valeur initiale qui est incrémentée dans le temps. Lors de l'établissement d'une connexion, la machine initiante envoie une demande de synchronisation (paquet syn.) en indiquant le numéro de séquence initial qu'elle va utiliser. La machine destination répond avec une confirmation de synchronisation (synack) qui contient son numéro de séquence initial. La machine initiante peut ensuite envoyer le premier paquet faisant partie du protocole à fenêtre, un acquittement (ack), qui contient le numéro de séquence du prochain byte attendu, éventuellement des données et le numéro de séquence du premier byte transmis (ou à transmettre). Cet échange est décrit à la figure

Imaginons maintenant le cas d'un pirate sur la machine A qui veut se faire passer pour un utilisateur sur la machine C. Dans ce cas il crée des paquets TCP dont l'adresse source est

C.

Quand la machine B va recevoir les paquets du pirate, elle va, de bonne foi, répondre à la machine C. Le pirate ne verra donc pas le numéro de séquence initial de B et ne peut continuer le dialogue que s'il est capable de le deviner. Ce dialogue de sourds est illustré à la figure 2

Pour réussir son attaque le pirate a besoin de deux informations :

1. Le numéro de séquence initial utilisé pour la dernière connexion établie par la cible

2. L'incrément qui va être utilisé pour générer le numéro de séquence initial de la prochaine connexion.

Pour obtenir la première information, le pirate n'a qu'à faire une tentative de connexion en donnant sa vraie adresse source (si le réseau est surveillé alors il sera démasque). L'acquittement que la cible lui envoie contient le numéro de séquence initial actuel. La deuxième information,

Figure 2 : ECHANGE DES NUMÉROS DE SÉQUENCE INITIAUX LORS DE L'ÉTABLISSEMENT D'UNE CONNEXION TCP

Figure 3 : TENTATIVE D'ETABLISSEMENT D'UNE CONNEXION PAR UN PIRATE. POUR QUE L'ATTAQUE REUSSISSE, LE PIRATE DOIT DEVINER LE NUMERO DE SEQUENCE INITIAL PROPOSE PAR B.

Pour obtenir la deuxième information, l'incrément, est plus difficile à obtenir. Initialement, la plupart des implémentations de TCP utilisaient des incréments fixes. Suite aux attaques de Spoofing, les incréments fixes ont été remplacés par des incréments aléatoires. Quand le générateur de nombres aléatoires utilisé est trop simple, le pirate arrive quand-même à prédire le prochain numéro de séquence initial. Il faut noter que le pirate n'a pas besoin de connaître la valeur exacte du numéro de séquence. Il peut envoyer une multitude de paquets avec une série de numéros de séquence initiaux parmi lesquels il suppose que se trouve le bon numéro. Les paquets avec les mauvais numéros seront rejetés, et le paquet avec le bon numéro établira la connexion.

Il existe une difficulté supplémentaire à part le fait que le pirate doive deviner le numéro de séquence initial de sa cible. En effet, la machine pour laquelle le pirate se fait passer va recevoir un acquittement de synchronisation (syn-ack), alors qu'elle n'a jamais demandé de synchronisation. Dans ce cas elle va envoyer un paquet d'annulation (reset, rst), pour invalider la connexion. Le pirate doit donc soit envoyer son paquet de données avant que la machine C ait pu répondre, soit choisir comme machine C une machine hors service (mais tout de même amie de B), quitte à mettre hors service cette machine lui-même.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Là où il n'y a pas d'espoir, nous devons l'inventer"   Albert Camus