samedi 26 juillet 2008

Honeypot / Honeynet kezako?

Introduction :

De nos jours la sécurité est devenu un point incontournable de l’informatique, et les besoins dans ce domaine sont grandissants. En effet les techniques de piratage utilisées par les crackers sont de plus en plus perfectionnées.

Effectivement combien de spam sont envoyés par jour, combien d’ordinateur sont infecté par jour, tout cela rendant le web de plus en plus pollué, et en faisant un univers de plus en plus malsain pour les personnes non averties.

Je vais au cour de cet article vous montrer un aspect de la sécurité : les honeypots, je sais essayer de les démystifiés en vous présentant leur utilité, en vous montrant leurs avantages et inconvénients, ...


Explications et description des honeypots


Définitions :

Un « honeypot » (traduisez par pot de miel) est un système volontairement mis en place afin de leurrer les pirates, de détecter les derniers vers à la mode, de renforcer la sécurité du réseau d’une entreprise,… ou de vous la jouer kikitoutdur devant vos amis :-p. Un honeypot pourra volontairement être vulnérabilisé ou non, selon l’utilité que l’on en fera. Lorsque plusieurs honeypots seront en réseau alors on parlera de « honeynet». Un honeynet pourra par exemple comporter différentes machines fonctionnant sous différents OS, et faisant tourner différents services.

Différents type de honeypots existent ayant chacun des fonctionnalités différentes.

On distingue deux types différents de honeypots :

  • Les honeypots à faible interaction : Les honeypots à faible interaction sont des honeypots qui vont simuler le fonctionnement de certains services/programmes sur une machine. Ils pourront par exemple simuler certains systèmes d’exploitation exécutant des services tels que FTP, HTTP, TELNET, SMTP…, et des failles connues sur ces services Par exemple nous pourront simuler un serveur FTP tournant sous Debian ou alors un serveur IIS, tournant sous Windows Server 2003. Ces services ne seront pas réels sur la machine les émulant, ce qui limitera le risque si un cracker vient à cracker le faux service lancé sur la machine. Les honeypot à faible interaction sont très utile dans certain cas mais ont leurs limites. Par exemple un service émulé pourra ne pas avoir la même interaction et les mêmes réponses qu’un vrai service tournant sur un vrai ordinateur, un pirate pourra aussi prendre conscience qu’il n’est pas sur une vraie machine mais sur un honeypot.
  • Les honeypots à forte interaction : Les honeypots à forte interaction, ne vont pas à la différence des honeypots à faible interaction émulé des services, mais faire tourner de réels services sur de réelles machines. Elles seront en quelque sorte des machines de tests.
Pourquoi mettre un honeypot sur une vraie machine et ne pas seulement se contenter d’utilisé un honeypot à faible interaction ?

Un honeypot à forte interaction sera très utile dans certains cas, par exemple si un cracker vient à pénétrer votre honeypot alors il sera rendra plus difficilement compte qu’il n’est pas sur une machine de production, car les réponses formulé par le honeypot seront conforme à la réalité, tant au niveau des entêtes des paquets que des payload. Et pour que la supercherie soit totale vous aurez fait le maximum pour que le honeypot ressemble à une machine « normale ». Un honeypot à haute interaction sera aussi utile dans la détection de nouveaux vers exploitant des failles 0-day.

A la différence d’un honeypot à faible interaction un honeypot à forte interaction nécessitera plus de surveillance, car il tournera sur une machine réelle, et pourra se faire corrompre entièrement.

Pourquoi a-t-on besoin de honeypots ? Comment les honeypots vont-ils être compromis ?

Les honeypots sont apparu au cour des années 90-2000 lors de l’expansion d’internet afin de faire face aux nouvelles menaces.

On peut scinder l’utilité des honeypots en deux catégories :

Les honeypots de recherche « reniflant » le Net pour détecter les nouveaux vers, virus, etc…

A l’heure actuelle les menaces pesant sur les utilisateurs d’Internet sont par exemple le phising, les vers, les virus, l’enrôlement dans des réseaux zombies, les rootkits, etc... Afin de contrer ces attaques il a fallut trouver des parades. Les honeypots vont avoir, par exemple, pour but de « renifler » l’Internet et les dangers l’entourant afin de mieux s’en protéger.

Un honeypot reniflant le Net aura pour objectif d’être attaqué. Généralement il sera attaqué par un vers qui utilisera une faille de type 0-day. Les honeypots pourront aussi être attaqués directement par un pirate. Le honeypot servira à détecter les nouveaux vers circulant sur l’Internet, et quels sont les failles qu’ils vont exploités. Suite à la détection viendra l’analyse et la mise en place de contre mesures, qui pourront passées par des mises à jour anti virus, des correctifs de sécurité, … Le rôle des honeypots dans le cas des vers est très importants car ils permettront de les détecter et d’agir le plus rapidement possible, réduisant ainsi au maximum le temps de statu 0-day de certaines failles.

Les ordinateurs infectés deviendrons très souvent des zombies servant pour des attaques de type DOS, ou pour des campagnes de spam, ou encore pour du phishing. Les réseaux de zombies peuvent devenir très importants et atteindre plusieurs dizaines de milliers de machines zombies.

Ces honeypots seront généralement des honeypot à forte interaction car ils vont servir à découvrir de nouvelles failles, de nouveaux exploits, et dans ce cas là les honeypots à faible interaction sont moins utilisés.

Les honeypots d’entreprise, serviront à renforcer la sécurité du réseau d’une entreprise, en prévenant par exemple des attaques en interne.

Les honeypots d’entreprise ne sont pas les premières mesures de sécurité qu’une entreprise mettra en place, ce qui attestera qu’une entreprise comprenant un honeynet à déjà un bon niveau de sécurité. Les honeypots d’entreprise pourront être mis dans une DMZ dédiée dans ce cas là on cherchera plutôt à se prémunir contre les attaques externe, ou alors dans le réseau local de l’entreprise, on cherchera alors à se protéger des attaques en interne.

Dans les deux cas (interne ou externe) il faudra être très vigilant et avoir mis en place une politique de sécurité plus élevée, en effet il faudra faire attention à ce que le honeypot corrompu ne puisse pas servir de relai pour attaquer d’autres machines non-honeypot. Il faudra en conséquence sécuriser au maximum le réseau accueillant le honeypot ou honeynet. La sécurisation passera par des équipements tels que des firewalls, des IDS (système de détection d’intrusion) tel que Snort.

Ces honeypot seront généralement des honeypot à faible interaction car ils ne serviront pas à détecter de nouvelles failles mais à se prémunir contre des attaques. En effet si un pirate vient par exemple à scanner en interne le réseau d’une entreprise, et détecte des machines pouvant être des clients ou serveurs web, mail … s’il essaye de corrompre une de ces machines et qu’il s’avère que c’est un honeypot alors il sera automatiquement détecté et loggué car tout trafic circulant sur un honeypot est considéré comme suspect.


Analyse et gestion du honeypot

La sécurité se décompose en trois étapes distinctes: la prévention, la détection, et la réaction. Les honeypot agiront surtout au niveau de la détection.

On peut facilement détecter une présence suspecte sur un honeypot car tout trafic passant sur un honeypot est considéré comme suspect, en effet un honeypot n’étant qu’une copie (réelle ou non) d’une machine de production il n’est pas censé recevoir de trafic.

Différentes informations pourront être collectées tel que l’activité réseau, l’activité logicielle, l’activité système. Il faudra surtout penser à centraliser les logs et capture sur une autre machine protégée de toute attaque.

Différentes manières seront possibles pour la collecte d’informations. On pourra collecter les informations transitant sur le réseau à l’aide d’un IDS tel que Snort. La capture d’information pourra se faire au niveau du firewall, ou du Switch sur lequel est connecté le honeypot.

Si le honeypot est un honeypot à faible interaction alors il intégrera généralement une solution de capture des informations. Par exemple un honeypot émulant un service tel que SSH aura généralement un « keylogger » inclus journalisant toutes les actions effectuées dans un fichier.

En cas de danger il sera toujours possible de déconnecter physiquement du réseau le honeypot.


Les projets autour des honeypots

Différents projets existent ayant pour thème la mise en place le développement de honeypots. Beaucoup de honeypots à faible interaction ont été développés par différentes personnes tous plus ou moins élaborés, plus ou moins perfectionnés.

L'un des projets les plus connu, important et ouvert dans le domaine des honeypots est le « Honeynet Project », qui fut crée à la base par Lance Spitzner. Il a pour objectif le principe « know your enemy », qui comme la traduction l'indique à pour objectif de mieux connaître les différentes méthodes d'attaques des pirates, de mieux cerné leurs objectifs et par la suite de pouvoir mieux contrer les futures attaques.