

- le SITE - contribuer - le FORUM - liste évènements - livres sécurité info - @abcdelasecurite (twitter) - groupe Facebook - admin
Le portail dédié à la sécurité informatique et la protection des données, systèmes, réseaux, vie privée et usagers d'Internet.
Forum prévention, configuration, astuces, matériel, logiciel, informations ... hors warez crack serial
Vous n'êtes pas connecté.
- Accueil
- » H-IDS, N-IDS, sniffer, sonde
- » question complexe
Poster une réponse
Résumé des sujets (les plus rècents en premier)
- marius
- 07-06-2008 20:15:51
izkool a écrit:
JokuHech merci de ta réponse,
je passerai son pc sur secuser par acquis de conscience ; mais en fait, ses soupçons sont des certitudes, et le but est de trouver des éléments de preuve.
il est absent de son bureau très fréquement dans la semaine, et de manière prévue. apparament, les malveillances se produisent dans ces laps de temps, alors même qu'il éteint son pc lorsqu'il s'en va.
peut-on envisager l'installation d'un logiciel espion qui enverrait des rapports d'activité du poste de travail par mail sur un serveur distant par exemple?
la question se mérite dans les deux sens; soit il y a effectivement un fautif, soit *vous* tentez d'introduire un logiciel espion dans une grosse structure scientifique et soit qu'il vous faut des *preuves* concrète de la réussite de votre acte d'espionnage industrielle...
Qu'importe, la réelle motivation le meilleur moyen que je connaisses est d'utiliser le principe d'un honeypot. Grosso-modo le but de l'entreprise est de créer la structure virtuelle d'un os pour laisser miroiter des failles, le tout étant évidemment en monitoring constant avec de l'équipement d'enregistrement.
Voici une description parfaite et un petit historique pour bien conprendre de quoi il s'agit.
::: source ::: http://www.supinfo-projects.com/fr/2005/honeypot/
1 Description du contexte
1.1 Le Honeypot
1.1.1 Historique du Honeypot
Août 1986. Université de Lawrence Berkeley Laboratory en Californie. Cliff Stoll astronome reconverti en administrateur système sur VAX et UNIX, mena une investigation pour découvrir et comprendre pourquoi il perdait 75 pour cents au niveau de la comptabilité de tout système informatique utilisé par de nombreux physiciens. C’est alors qu’il découvre un pirate sur son réseau (par l’intermédiaire d’une vulnérabilité de GNU Emacs) attaquant des systèmes militaires américains. Afin de piéger le pirate rapidement Cliff et son équipe créent de faux fichiers ayant l’air d’appartenir à la Stratégie Defence Initiative. Le pirate était employé par le KGB afin de retrouver des mots clefs comme NORAD, nuclear, SDI, KH11, dans le but de pénétrer le système militaire américain. Nourrissant cet intrus avec de fausses informations, l’équipe gagna du temps et réussit à le localiser et à le faire neutraliser par les autorités. Ce fut le premier leurre, révélé au public dans le fameux livre culte The cuckoo’s egg. Le concept du honeypot est ainsi né.
Janvier 1991, AT&T Bell Laboratories. De faux services sont ajoutés par un employé, Bill Cheswick, pour surveiller les tentatives d’accès par un pirate, nommé Berferd.
7 janvier 1991 un pirate, croyant qu'il avait découvert que le célèbre service sendmail avait un trou de sécurité, il essaya d'obtenir une copie du dossier de mot de passe Pendant plusieurs mois ce pirate a été dupé afin de le localisé où il se trouvait et apprendre ses techniques.
1.1.2 Définition d'un Honeypot
Les deception systems (aussi connus sous les noms de leurres, trappes ou honeypot) possèdent des pseudo-services dont le but est d'émuler des vulnérabilités connues, de différents services, afin de piéger les intrus. Un honeypot est un système conçu pour se faire passer pour une machine, différents services ou un réseau virtuel qu'un intrus peut pirater.
La philosophie est simple : plus on connaît l'ennemi, plus on est susceptible de parer ses attaques. Le projet honeynet est un projet de recherche open source dédié à la collecte de tactiques, de motivations et d’informations relatives aux hackers.
Le projet honeynet a été initié dans le but d'enregistrer les actions d'attaquants. Ainsi, le projet honeynet a permis de s’apercevoir qu'un ordinateur est susceptible d'être étudié des dizaines de fois par jour par des pirates.
Un honeypot est un programme, une machine ou encore un système introduit dans un réseau afin d'être atteint par un attaquant. Tout l’intérêt du honeypot est de faire croire à ce dernier qu'il se trouve sur un serveur réel de production.
Les honeypots sont des programmes pouvant êtres des machines, réseaux ou des systèmes virtuels.
Il y a des exemples de honeypots non virtuels(Deception toolkit, trapserver, Man Trap, Back Officer Friendly et Honeytokens) faisant croire qu'elles possèdent des services et des ports ouverts que l'on pourrait trouver sur une autre machine de production (serveur web - port 80, serveur mails port 110 et 25).
1.1.3 Objectif d'un Honeypot
Ces services ont pour finalité d'attirer l'attention du hacker afin que ce dernier fournisse du temps et des ressources qui seront par la suite enregistrés par le honeypot.
Les honeypots contiennent des informations susceptibles d'intéresser le hacker mais ne doivent pas contenir d'informations sensibles ou confidentielles concernant l'organisation de l'entreprise mettant en place le honeypot.
La machine mise en réseau, équipée du honeypot, enregistre toutes les tentatives d'accès. La figure ci dessous illustre cet exemple.
L'intérêt d’utiliser un honeypot est d'imiter un réseau, une machine, un service, tandis que des attaquants tentent de s'y connecter, le honeypot enregistre des détails concernant les attaques : à savoir l'identité des attaquants, leurs motivations, leur niveau de connaissances en termes d'attaques et le type d'outils qu'ils utilisent.
Les informations ainsi récoltées permettent de détecter les vulnérabilités du réseau et donc de mieux le sécuriser par la suite.
La quantité d'informations récoltées sur leurs techniques dépend donc directement du temps passé par un attaquant à pénétrer le système.
Les honeypots sont conçus pour être pénétrés et ce pour deux raisons. La première est de permettre de trouver des informations concernant les faiblesses d'un système. L'administrateur peut donc apprendre de l'attaquant la façon dont il est parvenu à casser le système.
La deuxième raison est de collecter les informations nécessaires sur les hackers et éventuellement de les poursuivre en justice.
Par ailleurs, on peut aussi considérer que la présence d'un honeypot attire l'attention d'un éventuel attaquant et donc qu’il s’intéresse moins au reste du réseau. C'est donc aussi un moyen de protection.
1.1.4 Fonction d'un honeypot
Pour résumer, les différentes fonctions de l'utilisation d'un honeypot sont les suivantes :
* Etre alerté des attaques en cours
* Conduire l'attaquant dans une partie isolée et accessible d'un réseau de production
* Fournir des informations sur les méthodes d'un attaquant
* Fournir des preuves quant à la poursuite en justice des attaquants
Par contre, le honeypot ne doit pas fournir aux attaquants les fonctions suivantes :
* L'accès aux données sensibles propres à l'organisation
* Le contrôle administratif du réseau de production
* Le contrôle d'entités rattachées au réseau de production
* L'utilisation légitime du trafic du réseau
* L'attaquant ne doit pas devenir utilisateur légitime du réseau
Toute la difficulté dans l'utilisation d'un honeypot réside dans la création d’un environnement réaliste afin que l'attaquant soit persuadé de pénétrer un système réel.
En aucun cas, il ne doit se douter que le système est un leurre. Les services proposés doivent donc simuler d’authentiques services qui seraient présents sur le réseau, sans pour autant fournir des informations sensibles sur le réseau de l'organisation.
Une fois les informations sur un pirate collectées, l'administrateur se doit de les copier sur une machine distante afin de les analyser par la suite.
Mais la prudence est de rigueur car la connexion sur une machine distante peut être décelée par l'attaquant lui-même. Et dans le cas d'une intrusion sur le réseau, l'administrateur en serait tenu pour responsable car le fait d'installer un honeypot constitue, d'un point de vue légal, une preuve de la volonté de l'organisation de se voir attaquée.
2 Principe de fonctionnement d'un Honeypot
Le but de ce leurre est de faire croire à l'intrus qu'il a pris la main sur une véritable machine ou une machine de production afin d’observer les moyens de compromission des pirates et pouvoir se prémunir contre de nouvelles attaques et laisser ainsi un temps supplémentaire de réaction à l’administrateur.
Une utilisation correcte d’un honeypot repose essentiellement sur la résolution et la mise en parallèle de trois problématiques :
* la surveillance
* la collecte d'information
2.1 La surveillance
Il faut partir du principe que toute information circulant sur le réseau à destination ou non du honeypot est importante. De ce fait, la surveillance doit absolument être constante et doit porter aussi bien au niveau local qu’au niveau distant. Cette surveillance de tous les instants repose sur :
· l'analyse du trafic réseau
· l’analyse des évènements journaliers (via des logs ou rapports)
2.2 La collecte d'information
La collecte d’information est possible grâce à des outils appelés renifleurs qui étudient les paquets présents sur le réseau et stockent les événements dans des bases de données. On peut également collecter des informations brutes grâce à des analyseurs de trames.
Un analyseur de trame : lorsque la machine reçoit une trame suspecte et que le programme est alerté. Il change l’en-tête de la trame et le redirige dans un endroit sécurisé en lui faisant croire qu’il a bien été envoyé au destinataire.
CRC (Cyclic Redundancy check) est le résultat d’un calcul effectué sur les champs de la trame. Le but est de détecter des bits corrompus lors de la transmission.
C'est grâce à l'analyse des informations recueillies que l'on va pouvoir découvrir les défaillances du réseau à protéger et les motivations des pirates.
3 Les differents types de Honeypot
On compte deux types de honeypot ayant des buts et des fonctionnalités bien distincts :
* les honeypots à faible interaction
* les honeypots à forte interaction
3.1 Les Honeypots à faible interaction
Ils sont les plus simples de la famille des honeypots. Leur but est de récolter un maximum d’informations tout en offrant un minimum de privilèges aux pirates et donc en limitant au maximum les risques. On peut ranger l'exemple de netcat dans cette categorie. Puis netcat se limite à l'écoute d'un port particulier tout en loguant toutes les commandes entrées, on peut donc ecrire dans un fichier toutes les commandes entrées par un agresseur par exemple.
Cependant, ce type d'écoute reste très limité car spécifique à un seul port. il permet d'ouvrir facilement des connexions quelconques (TCP ou UDP) sans savoir programmer, aussi bien pour créer des petits clients/serveurs, que pour tester un programme.
Il existe sur plusieurs systèmes (Windows 95/98, NT, Linux et Unix). il est utilisable à la ligne de commande, ce qui va permettre de facilement l'incorporer dans des scripts.
Dans la même famille, on pourra citer :
* Honeyd de Niels Provost est un honeypot virtuel capable d’émuler des machines ou un réseau virtuel dans le but de leurrer les hackers. C’est l’un des honeypots à faible interaction qui offre le plus de possibilités.
* Spectre qui permet d'émuler des services classiques. il ne permet pas un accès total sur un système d'exploitation à l'attaquant ce qui limite son interet.
3.2 Les Honeypots à forte interaction
Ce type de honeypots peut être considéré comme le côté extrême du sujet puisqu’il repose sur le principe de l’accès à de véritables services sur une machine du réseau plus ou moins sécurisée.
Les risques sont, bien entendu, beaucoup plus importants que pour les honeypots à faible interaction. Il apparaît donc nécessaire de sécuriser au maximum l’architecture du réseau pour que l’attaquant ne puisse pas rebondir et s’en prendre à d’autres machines.
Les deux grands principes d’un tel honeypot sont :
*
le contrôle des données : pour observer le maximum d’attaques, le honeypot à forte interaction doit bien entendu accepter toute les connexions entrantes et limiter les connexions sortantes pour éviter tout débordement. Cependant, il ne faut en aucun cas interdire toutes les connexions sortantes pour ne pas alerter le pirate. Un bon compromis entre sécurité et risque de découverte du leurre est donc nécessaire.
* la capture des données : avec un pare-feu ou un Système de Détection d'Intrusion (SDI).
* le pare-feu permet de loguer et de rediriger ou de bloquer – DROP – les connexions toutes les tentatives d’attaque aussi bien internes qu’externes.
le SDI permet d’enregistrer tous les paquets circulant pour pouvoir reconstruire la séquence d’attaque. Il peut permettre également, grâce aux Iptables, qui est un utilitaire en espace utilisateur, permettant de piloter le comportement du filtrage à travers les couches réseaux.
Iptables définit un filtrage commun à tous les paquets qui les traversent.
Ils sont utilisé pour réaliser des firewalls logiciels sous UNIX / LINUX car il est scriptable.
Les informations récoltées seront redirigées vers une machine distante et surtout pas stockées sur la machine hébergeant le honeypot, en raison du risque de compromission de ces données.
4 Les methodes de hack
Afin de comprendre les procéder des pirates il est fort conseillé de s'intéresser au buffer-overflow. Le buffer-overflow est une méthode de hack qui est un moyen de récupérer la main sur une console ou de lancer un shellcode. Il est donc interessant d'etudier et de regarder le code source au niveau du langage machine (assembleur) afin d’analyser le comportement machine au plus bas niveau et comment sont gérées les instructions machines.
Pour bien comprendre le buffer-overflow nous expliquerons la gestion de la mémoire en langage C.
4.1 La mémoire physique de l'ordinateur.
La mémoire de la machine peut être comparé à un long tableau, la largeur du tableau s’exprime en octets, dans le tableau il y a des compartiments de différentes tailles. Chaque section est numérotée et correspond à une adresse mémoire.
4.2 Espace mémoire du programme C.
Les applications peuvent utiliser plus de mémoire que la quantité allouée au lancement de l’application.
Le programme utilise une partie de la mémoire vive RAM mais aussi la SWAP qui est le fait d'utiliser une partie d'un disque dur comme de la mémoire vive.
C’est la MMU (Memory Management Unit) ou unité de gestion de la mémoire qui fait la traduction des adresses mémoires. Le système s’occupe d’octroyer les différentes ressources (RAM, SWAP, disque dur). Les cases du tableau qui représente la mémoire, lorsqu’un pointeur va dans une zone mémoire physique réelle que celle-ci est utilisée.
le schéma ci dessous montre l'organisation d'un programme :
4.3 Le buffer overflow
Le buffer overflow consiste à écrire une instruction dans une zone mémoire où elle n’a pas lieu d’être.
Nous avons vue juste au dessus l’organisation de la mémoire d’un programme exécutable. Nous allons voir dans cette partie la réalisation d’un buffer overflow dans différentes zones mémoires.
* Ce premier exemple montre l’influence de l’emplacement de la déclaration sur la position de la variable en mémoire.
int indice = 1;
char * str;
int rien;
void f( char c )
{
int i;
/* Réservation de 5 caractères dans le tas */
str = ( char * ) malloc ( 5 * sizeof (char) );
strncpy( str, "abcde", 5 );
}
int main( void )
{
f( 0 );
}
* Le programme suivant illustre un buffer overflow dans la zone de données du programme. Le tableau Shellcode présente en code machine le lancement d’un shell. Dans la fonction main la variable « ret » est allouée sur la pile. L’affectation nous permet de réaliser un saut de pile à la zone de données.
char shellcode[] = "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b" "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd" "\x80\xe8\xdc\xff\xff\xff/bin/sh";
int main()
{
int * ret;
*( (int *) & ret + 2 ) = ( int ) shellcode;
sleep( 5 );
return( 0 );
}
*
L’utilisation d’un débogueur nous permet de connaître le déroulement en détaille du programme.
(gdb) info symbol shellcode
shellcode in section .data
(gdb) p &shellcode
$2 = (char (*)[46]) 0x8049520
La dernière commande du débogueur nous indique l'adresse du tableau shelcode
*
Le programme suivant illustre un buffer overflow dans le tas du programme. Le malloc retourne une adresse située dans le shellcode.
int main()
{
int * ret;
char * shellcode = ( char * ) malloc( 64 );
sprintf( shellcode,
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
"\x80\xe8\xdc\xff\xff\xff/bin/sh" );
*( (int *) & ret + 2 ) = ( int ) shellcode;
return( 0 );
}
*
Le programme suivant illustre un buffer overflow dans la pile du programme. Le shellcode étant déclaré dans la fonction main, il est alloué sur la pile.
int main()
{
int * ret;
char shellcode[] =
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b" "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
"\x80\xe8\xdc\xff\xff\xff/bin/sh";
*( (int *) & ret + 4 ) = ( int ) shellcode;
return( 0 );
}
Ces exemples ont permis d’illustrer le concept du buffer overflow ainsi que l’organisation de la mémoire.
Conclusion
Les avantages du honeypot
Les NIDS (Network Intrusion Detection Systems) ont des difficultés pour distinguer le trafic hostile du trafic bénin. Les honeypots isolés ont en toute logique, bien plus de facilitée puisque ce sont des systèmes auxquels on ne devrait normalement pas accéder. Cela signifie que tout trafic arrivant sur un honeypot est déjà suspect.
Les honeypots se présentent souvent comme des systèmes facilement piratables. Une des choses prédominantes chez les pirates est le scan de vulnérabilités connues (ou méconnues parfois) et la collecte d'informations. Le honeypot peut être configuré pour faire croire qu'une vulnérabilité connue est présente sur le système et que celui-ci peut facilement être compromis, ce qui piégera l'intrus qui s'y intéresse de trop près. Par exemple, le service POP3 donne la version du logiciel. De nombreuses versions de logiciels connus possèdent des vulnérabilités de type buffer-overflow (débordement de mémoire tampon).
L'intrus se connecte sur le port 110, obtient la version du système, puis regarde sur les sites du CERT pour trouvé quelle faille peut être utilisée contre cette version du logiciel afin de le pénétrer.
Les inconvénients du honeypot
Si le système est piraté, il peut servir de base de lancement pour tenter de compromettre le reste du réseau.
La législation sur les honeypots est obscure, quelques personnes pensent que puisque les honeypots leurrent les pirates, les droits légaux pour poursuivre les pirates se trouvent réduits. Cependant c'est une mauvaise interprétation de la chose car les honeypots ne sont pas des leurres actifs, ils ne se montrent pas à la vue de tous. En effet un pirate peut trouver un honeypot uniquement en faisant un scan sur le réseau, la démarche est donc intégralement initiée par le pirate.
Les honeypots ajoutent de la complexité et en sécurité informatique, la complexité est mauvaise, elle mène à accroître l'exposition aux exploits.
Les honeypots doivent être maintenus comme tout service ou équipement inhérent à un réseau. Ceci amène de nombreuses personnes à les désactiver après un certain temps. Comment vous assurer que l'enregistrement des tentatives d'intrusions est toujours efficace et qu'il n'a pas été compromis par un pirate pour vous attaquer ?
Les honeypots peuvent être utilisés soit en tant qu'outil de prévention, outil de détection ou encore en tant qu'outil permettant de collecter des informations sur les activités et les méthodes d'attaque des pirates. En effet, toute activité sur un Honeypot est anormale et suspicieuse.
Et apres...?
La grande question souvent posée concernant les pots de miel est de savoir s’ils servent réellement à quelque chose pour sécuriser des réseaux informatiques.
Compte tenu du fait qu’ils n’ont à traiter que les flux liés aux agressions qui viennent vers eux, ils sont facilement plus performants et moins verbeux que les NIDS qui doivent analyser un nombre colossal de trames. Ainsi, les honeypots ne remontant que du trafic malveillant, ils réduisent énormément les faux-positifs et ne font pas perdre de temps aux équipes de sécurité. De plus, la plupart des NIDS actuels se basent sur des signatures, empêchant de voir les nouvelles attaques, alors que les honeypots peuvent justement servir à découvrir de nouvelles techniques et de nouveaux exploits.
Néanmoins, il faut bien avoir conscience des limites des honeypots. Ces derniers, par exemple, ne se substitueront pas aux autres outils de sécurité. Ils ne sont qu’une brique supplémentaire permettant d’obtenir des informations de sécurité complémentaire aux autres technologies en place.
En effet, les honeypots ne peuvent fournir que des informations liées à la vision qu’ils possèdent, limitées au trafic leur incombant, ne capturant pas de production en place. De plus, ils représentent de nouveaux points d’entrée potentiels pour des agresseurs distants, ce qui impose une protection et une surveillance savamment calculée.
Dans le monde où s’agrandit la dépendance de l’homme face aux nouvelles technologies de l’information et de la communication, nous pensons donc que les pots à miel deviendront une carte très intéressante à inclure dans le jeu des défenseurs luttant contre de nombreuses formes de menaces toujours en pleine évolution.
- izkool
- 17-03-2007 10:57:02
les malveillances se caractérisent par des e-mails effacés dans microsoft outlook, des documents archivés qui disparaissent mystérieusement, ...
il y a aussi des e-mails envoyés qui arrivent deux mois plus tard, ... 24 heures après la date du congrès ou du colloque dont ils comportent l'invitation en pièce jointe !!! et cette petite comédie se systématise ! mais là, je ne pense pas qu'on puisse faire grand chose ; alors je lui ai ouvert une boite mail sur gmail, et il s'en sert professionnellement.
il a pas que des copains mon poto !!! ![]()
à force de traiter ses supérieurs de "prix nobels" ![]()
- habana
- 16-03-2007 16:15:49
Vu qu'il ne dispose pas des privilèges d'administration, n'importe qui ayant les droits d'admin fait ce qu'il veut sur ce pc.
Cependant, l'admin est responsable et si des fuites ont été constatées, il doit en répondre.
Il existe aussi des keyloggers matériels à installer directement entre le clavier et l'unité centrale. Vérifie de ce côté aussi.
Tu peux préciser ce que tu entends par malveillance ?
- izkool
- 16-03-2007 10:42:59
JokuHech merci de ta réponse,
je passerai son pc sur secuser par acquis de conscience ; mais en fait, ses soupçons sont des certitudes, et le but est de trouver des éléments de preuve.
il est absent de son bureau très fréquement dans la semaine, et de manière prévue. apparament, les malveillances se produisent dans ces laps de temps, alors même qu'il éteint son pc lorsqu'il s'en va.
peut-on envisager l'installation d'un logiciel espion qui enverrait des rapports d'activité du poste de travail par mail sur un serveur distant par exemple?
- JokuHech
- 16-03-2007 10:05:27
Bonjour.
Si le PC est victime d'un malware, si ce PC est un poste, il faut dans un premier temps le faire analyser avec un antivirus en ligne. Si c'est un portable, essayer de le sortir du réseau, puis le faire analyser aussi.
En général, un keylogger se passe des autorisations. Dans une grosse structure, il y a certainement d'autres personnes responsables de la sécurité informatique. Tenter de signaler ce problème à plusieurs d'entre eux.
- izkool
- 16-03-2007 09:07:41
bonjour,
je me trouve confronté à un cas de figure complexe :
un de mes amis travail dans un domaine scientifique de recherche, et soupçonne depuis longtemps des actes de malveillance sur son pc.
il s'agit d'une très grosse structure, et son pc est une station de travail dans un réseau avec serveur.
il ne possède pas les autorisations administrateur pour installer un quelconque keylogger ou autre, et soupçonne que toutes les malveillances dont il est la cible s'opèrent avec la complicité de l'administrateur réseau de l'établissement.
qqu'un a-t-il une idée ?
merci