Mot-clé - Honeypot

Fil des billets - Fil des commentaires

mardi, avril 27 2010

Plantes carnivores

Figurez vous que je me suis récemment découvert un intérêt pour les plantes carnivores et que j'ai acheté un livre explicatif sur le sujet (environnement naturel, divers genres, méthodes de culture, etc.). Après avoir relu le bouquin trois fois j'ai finalement craqué et j'ai acheté quatre petits plants ainsi que quelques graines (pour une représentativité totale de trois genres différents de plantes carnivores usuelles[1]). Et c'est en me renseignant sur ce nouvel univers que je me suis remémoré le premier billet de ce blog, qui parlait du honeypot à faible intéraction Nepenthes et je me suis dit qu'il était temps que je me repenche sur ce logiciel qui m'avait bien amusé à l'époque...

Mes dionaea - Creative common by Ozwald from ozwald.fr

Premier choc : Nepenthes n'est plus. Aux alentours de l'été 2009 ses concepteurs commençait à apercevoir des limites à leur architecture, ils ont alors freezé Nepenthes et se sont lancés dans un nouveau projet de honeypot à faible interaction, en repartant from scratch : dionaea[2]. Le développement initial de dionaea a donc eu lieu pendant l'été 2009, et actuellement c'est une solution qui semble bien plus aboutie que ne l'était Nepenthes (gestion du multithread, émulation avancée des shellcode à la place de simple pattern matching, etc.). Par contre, même si le logiciel en lui-même est bien plus avancé, son packaging général ne tient pas (encore ?) la comparaison avec ce qu'était celui de Nepenthes à la fin de sa vie. En effet dionaea n'est, à ma connaissance, actuellement packagé pour aucune distro[3] et pour tester dionaea vous devrez donc compiler vous-même une demi-douzaine de softs (sans vous planter au moment de les linker à dionaea bien sur). Ca n'a rien de titanesque ou même de compliqué, mais ça prend un peu de temps mine de rien.

En plus du coté technique c'est un projet qui a l'air vraiment sympa et vivant. Par exemple un petit billet d'un utilisateur sur les performances d'un script d'analyse des logs de dionaea a mené à une réflexion assez poussée sur la performance des accès aux logs directement sur le blog officiel du projet. Autre exemple : les auteurs de dionaea ont publié de grosses quantités de logs (anonymisés) issus de leurs propres sondes dionaea afin que chacun puisse mener les recherches qu'il souhaite dessus. Bref c'est un projet qui sent la bonne ambiance et j'espère bien en entendre un peu parler au SSTIC 2010[4]. D'ailleurs tant qu'on parle de SSTIC je me dis que le vieux pense-bête que j'avais rédigé il y a quelques mois pourrait être utile ;) ...

Notes

[1] Pour les curieux : sarracenia, dionaea, et drosera.

[2] Le genre "dionaea" correspondant aussi à des plantes carnivores. Ce sont celles qu'on connait sous le nom familier "attrape-mouche", et pour les curieux elles sont beaucoup plus facile à cultiver que les Nepenthes ^_^

[3] Oubliez donc tout de suite les "aptitude install dionaea", "emerge dionaea", et autres "pacman -S dionaea" qui pourraient vous passer par la tête. ERRATA : Pour Arch la procédure est simplifiée ;)

[4] Oui, oui, j'ai été assez rapide pour avoir une place :-D

samedi, avril 25 2009

Oh les belles plantes !

Savez vous ce que signifie "Nepenthes" ?

"Nepenthes" désigne un genre botanique qui regroupe des espèces de plantes carnivores à pièges passifs de la famille des Népenthacées[1]. Ces plantes ont donc pour particularité de générer des pièges (appellés "urnes") afin de capturer passivement toute proie assez bête[2] pour s'y introduire et se faire digérer. Ces plantes vivent en milieu chaud et humide (visez Sumatra ou Bornéo si vous voulez avoir une chance d'en croiser en milieu naturel ;) ) et sont plutôt jolies si vous voulez mon avis :

Nepenthes - Creative Common by "Eric in FS" on Flickr


Et l'informatique là dedans ?

Maintenant que vous avez quelques bases concernant les Nepenthes je peux vous parler du logiciel qui tire son nom de ces charmantes plantes carnivores. Nepenthes est un logiciel issue du projet mwcollect (dont je vous avoue ne pas avoir suivi les diverses péripéties mais qui semble relativement mal en point) et son but est donc dans la philosophie du projet : la collecte de malware.

Comme les Népenthacées, le logiciel Nepenthes fabrique des pièges passifs et attend gentiment qu'une proie vienne s'y aventurer afin de la capturer. En termes informatique : Nepenthes ouvre des ports correspondant à des services notoirement porteurs de failles (pour n'en citer que quelques un : 80, 135, 139, ...) puis il attend qu'on s'y connecte. Lorsqu'on établit une connection sur l'un des ports ouvert, Nepenthes commence à simuler une vulnérabilité connues. Si la simulation est convaincante (bonnes réponses aux bons stimulis) et qu'on est un malware se propageant par l'exploitation de cette faille, on va donc envoyer un shellcode.

Nepenthes tente alors de décoder le shellcode en s'aidant d'une bibliothèque de shellcode usuels, si il y parvient et que le shellcode est du type "download & execute" Nepenthes va gentiment aller télécharger le fichier en question et l'exécuter[3] le stocker dans un endroit sûr (enregistrement dans un répertoire local, upload sur site web, stockage en BDD, etc.). Et voilà le tour est joué ! Nepenthes vient de capturer un malware :)

Nepenthes - d'après l'ascii art original


A quoi ça sert alors ce Nepenthes ?

Résumons nous : Nepenthes est un logiciel qui permet la capture passive de malware exploitant des failles connues et des shellcodes usuels. Or la récolte de malware, même exploitant des failles connues, peut avoir beaucoup d'intérêt :)

Imaginez que vous soyez un éditeur d'antivirus : c'est une opportunité de collecter des fichiers malicieux encore inconnus dont vous pourrez extraire une signature pour votre bouffeur de ressources produit. Imaginez que vous soyez un chercheur en sécurité informatique : c'est un outil bien pratique pour "prendre la température" du net et suivre les tendances. Enfin imaginez que vous ne soyez rien de tout ça : collectionner des malware ce n'est, en fin de compte, pas plus étrange que de collectionner des papillons :) !!!

Pour ma part je me classerai donc dans la catégorie des collectionneurs de papillons (avec un petit bout de chercheur en sécurité informatique quand même, faut bien se jeter des fleurs de temps en temps ;) ). Du coup j'ai installé un Nepenthes dans une VM et j'espère bien capturer quelques malwares puis réussir à en tirer quelque chose[4] dans les mois à venir.

Butterfly - Creative Common by Museum Wales on Flickr


Comment on installe un Nepenthes ?

Mettre en place un Nepenthes est simplissime : je m'attendais à aller chercher les sources sur le site puis à compiler le schmilblick mais en fait un package existait pour ma distro et c'est le cas pour plusieurs distro majeures (ah oui, il semblerait qu'on puisse aussi l'utiliser sous windows et mac si on a envie...). Bref pour moi en une ligne l'installation était faite, et en 10mn la configuration aussi (d'ailleurs cette dernière gagnerait à être un peu plus simple : lorsque je m'y suis mis j'ai retrouvé quelques secondes l'impression que la découverte des fichiers de conf de postfix m'avait faite il y a quelques années de ça ^^)

Vous pouvez décider des vulnérabilités que vous vouler simuler, les méthodes de download que vous voulez supporter (http, ftp, tftp , etc.), et ce que vous désirez faire des fichiers téléchargés. Pour ma part j'ai laissé les vulnérabilités par défauts, toutes les méthodes de téléchargements de malware, et j'ai décidé d'enregistrer les malwares récoltés dans un répertoire local (tout simplement ^^). Ensuite j'ai été paramétrer mon routeur afin de rendre accessible depuis les net les ports sur lesquels mon Nepenthes écoute. Et voilà les pièges sont montés. Plus qu'à attendre patiemment des résultats intéressants pour en faire un futur billet, alors restez à l'affût !

Notes

[1] Merci Wikipedia

[2] Bétise toute relative tant la plante déploie d'astuces pour attirer les proies. On se laisserait berner aisément.

[3] Nepenthes est un honeypot à faible intéraction

[4] Des statistiques sur le pourcentage de malware reconnus par tel ou tel antivirus en fonction de son age par exemple. Ou pourquoi pas carrément un spécimen inconnu que je parviendrait à analyser et dont l'autopsie pourrait alors faire l'objet d'un billet sur ce blog. Etc.