Les honeypots sont une technologie, relativement récente, introduite parmi les solutions de sécurité informatique. « HoneyPot » est un mot anglais, signifie en français « pot de miel » utilisé dans le sens d’appât pour les attaquants des systèmes informatiques. Contrairement aux différents outils de sécurité traditionnels, cette technologie adopte une approche non défensive de la sécurité, une approche qui consiste à prendre l’initiative d’attirer les attaquants et de les mettre à l’épreuve.

Ce dossier traite un ensemble de points liés aux honeypots (pots de miel)

1- Définition :

Lance Spitzner a défini un honeypot comme étant une ressource du système dont l’utilité est de se faire attaquer ou compromettre. L'idée est d'installer un système leurre avec un système d'exploitation non sécurisé ou présentant de nombreuses vulnérabilités permettant un accès facile à ses ressources. Tout le trafic traversant ce système leurre est suspect de nature.

2- Types de Honeypots :

Selon ce qu’on attend de lui, un honeypot peut être de production ou de recherche :

· Honeypots de production :

Ce type de honeypots a une utilité pour la sécurité active du système pour lequel il est installé. Il déroute les attaques orientées vers les différents services de production du système, en les attirant vers lui. Ainsi les honeypots de production réduisent le risque, en renforçant la sécurité qui est assurée par les autres mécanismes de sécurité comme les firewalls, les IDS (systèmes de détections d’intrusions), etc.

· Honeypots de recherche :

Ce sont des honeypots dont le souci n’est pas de sécuriser un système particulier. Ils sont introduits dans un environnement de recherche pour comprendre et étudier les attaquants et leur façon de procéder. Les renseignements tirés vont servir pour améliorer les techniques de protection contre ces attaques.

Les deux types de honeypots jouent un rôle dans une ou plusieurs composantes de la sécurité qui sont la prévention, la détection, et le recouvrement. Les honeypots de production contribuent à la prévention du système, en provoquant une déception chez les attaquants, après plusieurs tentatives échouées pour atteindre les ressources du système. Et ils sont aussi bénéfiques pour la détection, dans la mesure que toute connexion établie avec un honeypot de production est considérée comme tentative d’intrusion au système, il élimine ainsi toutes les fausses alertes (positives et négatives). Le rôle des honeypots de production dans le recouvrement se traduit par les deux points suivants :
• premièrement, ils permettent une continuité des services après une attaque produite en leur sein, en les mettant simplement hors service.
• deuxièmement, l’information enregistrée par les honeypots de production sera d’un apport considérable pour le recouvrement du système.
Les honeypots de recherche ne servent pas la sécurité des systèmes (prévention, détection et recouvrement) d’une manière directe, mais ils offrent des renseignements précieux sur les attaquants et leur comportement. Ces informations permettent une meilleure connaissance de la communauté des attaquants (blackhat community), ce qui aide les professionnels de la sécurité informatique dans l’amélioration de méthodes et mécanismes de protection.

3- Implémentations :

Les différentes implémentations des honeypots reposent sur leur niveau d’interaction « level of involvment ». Le terme interaction désigne l’interaction entre le pirate et le système piraté. Ainsi se distinguent deux implémentations possibles, les honeypots à faible interaction et les honeypots à haute interaction:

· 3.1 Honeypots à faible interaction

Cette implémentation ne fait que proposer des faux services du système. L’attaquant n’interagit pas vraiment avec le système, il peut simplement scanner les ports ou lancer l’exécution des commandes sans réponses. Donc la chance pour qu’il s’introduise dans le système est faible. En conséquence, peu d’informations sur l’attaquant sont dérivées par ce genre de honeypots.

· 3.2 Honeypots à haute interaction

Ces honeypots offrent une grande interactivité avec l’attaquant, puisque il s’agit bien des systèmes réels avec des failles de sécurité qu’il peut exploiter. Ils introduisent un grand risque dans le système hôte. Du moment qu’ils peuvent fournir beaucoup d’informations sur les activités de l’attaquant, ce type de honeypots est orienté plus à la recherche.
Le choix du niveau d’interaction d’un honeypot lors de son implémentation dépend de ce qu’on attend de son utilisation

4- Honeynets :

Un honeynet est un réseau de systèmes honeypots et un ensemble de mécanismes de sécurité comme les firewalls, les IDS, les serveurs log, etc. Il donne apparence à tout un environnement de production avec des failles et des informations pertinentes utilisées comme appât pour attirer et piéger les attaquants. Toutes les actions de la victime seront surveillées et enregistrées. Sa structure de réseau permet même d’avoir des renseignements sur les communications entre les attaquants et leurs méthodes de collaboration.
Le fonctionnement d’un honeynet se décompose en trois opérations : le contrôle de données, la collecte de données et l’analyse de données.

• Le contrôle de données signifie un contrôle de toutes les données dans le système, mais surtout le trafic sortant (outbound traffic) qui peut contenir des attaques envers d’autres systèmes réels. Cela est assuré par exemple par un firewall dissimulé derrière un routeur, qui utilise plusieurs techniques comme le blocage du trafic après un nombre limité de connections. Ainsi le routeur représente une deuxième couche de contrôle du trafic sortant.

• La collecte de données désigne la capture de toutes les informations qui se rapportent sur l’attaquant et ses activités. Elle est effectuée sur trois niveaux : le firewall, les IDS, et les systèmes honeypots eux même.

• L’analyse de données est l’opération qui consiste à extraire les informations recherchées, telles que les outils, les méthodes et tactiques utilisées par les hackers, ou bien celles qui révèlent les vulnérabilités existantes dans le système. C’est à partir des données collectées pendant l’attaque, et après leur analyse qu’on parvienne à avoir ce type d’informations recherchées sur le pirate et le système piraté.

Afin qu’il soit efficace et rentable pour l’organisation l’utilisant, un honeypot doit être, constamment, surveillé, maintenu, et mis à jour. Car il est en exposition permanente aux attaques qui ne sont pas toutes faciles à contenir, surtout que les attaquants essaient toujours de surpasser les mesures de sécurité mises en place.

5- Honeynets Virtuels :

Un honeynet virtuel est un honeynet dont tous ses systèmes honeypots sont installés sur une même machine qui fonctionne sous un système d’exploitation hôte. Le mot virtuel vient du fait que chaque système donne apparence qu’il est installé dans sa propre machine indépendante.
Les honeynets virtuels peuvent être indépendants ou hybrides. Un honeynet virtuel indépendant regroupe tout ses composants sur un même système physique (typiquement un firewall à l’entrée et un ensembles de honeypots), ce qui réduit le coût et le délai de son développement et facilite sa connexion à l’importe quel réseau informatique. Tant disque un honeynet hybride est un hybride de honeynet classique et de honeynet indépendant : les éléments de capture de données (exemple : firewall) et les éléments de contrôle de données (exemple : IDS) sont installés sur des systèmes isolés, et les honeypots sont regroupés sous un même système. Cette dernière solution est plus sure, du moment que l’attaquant ne peut pas s’emparer du firewall et de l’IDS, et elle présente l’avantage de supporter une multitude de types de logiciels et de matériel.

Quelques solutions possibles de honeynets virtuels: Entre autres plusieurs technologies qui permettent l’implémentation d’un honeynet virtuel, on cite : VMware et User Mode Linux (UML).

VMware est un exemple d’infrastructure logicielle pour le déploiement d’un honeynet virtuel. Il permet à partir d’un système d’exploitation principal appelé système hôte (HostOS) d’installer d’autres systèmes d’exploitation émulant des machines virtuelles appelés systèmes clients (GuestOS). Il existe deux possibilités de connexion d’une machine VMware : la première appelé bridge networking dans laquelle le système hôte peut paraître comme l’une des machines virtuelles et chaque machine virtuelle a une liaison directe au réseau. La deuxième consiste à connecter que le système hôte au réseau (host only networking) et chaque machine cliente n’est accédée que via ce système hôte.

User Mode Linux (UML) est un dispositif open source développé par Jeff Dike, permettant d’exécuter plusieurs versions virtuelles de Linux, en même temps, sur un même système. Ainsi, il permet d'avoir plusieurs machines virtuelles sur une seule machine physique hôte exécutant Linux. UML est capable de créer plusieurs réseaux virtuels et même des routeurs virtuels, qui seront tous dans le réseau virtuel original. Du même que VMware, UML supporte les deux possibilités de connexion : bridge networking et host only networking.

6- Architecture des Honeynets :

L’architecture d’un honeynet peut être distinguée suivant deux niveaux : niveau système et niveau réseau.

Au niveau système: Au niveau système d’un honeynet, deux architectures sont possibles :

• Une architecture dont laquelle chaque honeypot est installé sur sa propre machine physique ;
• Une architecture dont laquelle chaque honeypot fonctionne sur une machine virtuelle, et l’ensemble des honeypots se retrouvent sur une même machine physique.

Au niveau réseau: Au niveau réseau, il existe plusieurs solutions pour l’implémentation d’un honeynet, allant d’un honeynet simple jusqu’à un honeynet avancé, nous décrivons progressivement les différentes solutions :

• Chaque honeypot du honeynet sera simplement connecté à l’Internet ou à un autre réseau informatique. Ce type de solution est utilisé que dans un environnement de recherche.

• Par l’ajout d’un firewall transparent à l’entrée, nous aurons un honeynet simple. Mais contrairement à l’architecture précédente, celle-ci permet de contrôler le pirate sur le réseau.

• En insérant le honeynet simple avec firewall dans un environnement de production avec par exemple trois serveurs, nous aurons l’architecture d’un honeynet dans une zone démilitarisée (DMZ). C'est-à-dire le honeypot est placé directement à l’entrée du réseau juste derrière le firewall.

• une architecture d’un honeynet un peu plus élaborée dans une DMZ sera obtenue par l’ajout d’un Système de détection d’intrusion (IDS) et un serveur Log dans la DMZ. Cette architecture permet une bonne surveillance (monitoring) et un bon contrôle du réseau, ainsi le pirate sera vraiment espionné.

• dans l’architecture précédente, l’existence de plusieurs honeypots, nous donnera l’architecture d’un honeynet avancé qui est une architecture typique d’un honeynet dans un environnement de production.

7- Quelques Solutions existantes :

Les solutions décrites ci-après représentent des exemples pris d’une très longue liste de honeypots disponibles actuellement.

BackOfficer Friendly (BOF), un honeypot simple à faible interaction, développé par Marcus Ranum, fonctionne dans un environnement graphique (Windows ou Unix), il émule quelques services de base comme : http, ftp, telnet, mail, ou Back Orifice. BOF est capable de détecter toute tentative de connexion ou de scan des ports, et il a l’option « faking replies » qui consiste à donner à l’attaquant des fausses réponses.

Specter, est un honeypot de type production, à faible interaction. Il émule un grand nombre de services, de fonctionnalités et même de systèmes d’exploitation. Par exemple un serveur Web ou un serveur Telnet peut être émulé pour attirer un attaquant désirant pénétrer le système via ces serveurs, et toutes ses actions seront capturées et enregistrées. Specter représente un bon outil de détection puisque il supporte une grande variété de mécanismes d’alerte et d’enregistrement. Il fonctionne sous un environnement graphique. Cet honeypot est caractérisé par sa simplicité d’implémentation et engendre peu de risque.

Honeyd est une solution honeypot à faible interaction. C’est un système OpenSource développé par Niels Provos, il fonctionne sur les systèmes Unix, et porté même sur Windows. Ce honeypot simule des services et même des systèmes d’exploitations réels sur des adresses IP non utilisées d'un réseau. Très complet et simple d’utilisation, grâce à ses fichier de configuration, Honeyd vous permet d’émuler un grand nombre de services, de personnaliser les réponses aux connections, de simuler différentes stack ip pour tromper l’attaquant sur la version du système d’exploitation. Pour utiliser Honeyd, les trois modules libevent, libdnet et libpcap sont necessaires.

honeypots de Homemade sont des honeypots qui tendent à une faible interaction, puisque ils visent à capturer toute activité spécifique comme les vers ou le scan. Un exemple d’un honeypot de homemade est de créer un service sur le port 80 (http), en capturant tout le traffic entrant et sortant de ce port. Cela se fait généralement pour capturer et analyser les vers qui tentent des connections au service implémenté. Les honeypots de homemade peuvent être utilisées pour des fins de production ou de recherche.

Deception Toolkit (DTK), honeypot crée par Fred Cohen, comme un ensemble de scripts PERL qui émule une variété de vulnérabilités connues sous un système UNIX. Il est de faible interaction. Il a la particularité d’ouvrir le port 365 qui lui est attribué officiellement [Fur 03]. L’avantage de DTK est que son code source est libre (il est à la portée de l’utilisateur). L’inconvénient est que les scripts demandent beaucoup d’efforts pour leurs déploiement et sont potentiellement exploitables par l’attaquant afin d’obtenir un accès au système. L’utilité de ce honeypot réside principalement dans la détection des attaques. Même si à ses débuts avait un objectif de décevoir les attaquants, mais cela est vite dépassé par les attaques automatiques.

Mantrap est un produit très complet proposé par Symantec. Ce honeypot est de haute interaction qui met en œuvre quatre systèmes d’exploitation logiquement séparés et qui sont installés sur une même machine hôte. Chacun de ces systèmes supporte des applications réelles, et apparaît comme système indépendant avec sa propre interface réseau. L’administration du système hôte se fait par une interface utilisateur graphique Java. Mantrap peut être utilisé comme honeypot de production, notamment pour la détection et la réaction, et il est aussi rentable dans la recherche, mais avec un risque considérable.

8- Conclusion :

Par leur simplicité, leur coût et leurs délais de développement, les honeypots sont très utiles dans la sécurité d’une organisation. Des recherches sont toujours en quete de solutions honeypots en mesure de contenir les différentes attaques. Le honeynet project offre plus d’informations sur ces recherches.