Logo Blog perso d'Ozwald

Plantes carnivores

Par Oz le - Sécurité
Honeypot Malware Nepenthes dionaea virus

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 usuelles1). 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'' : dionaea2. 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 distro3 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 20104. 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 ;) ...


meik le 2010/04/27 23:44

perso j'ai mis une nepenthes dans un terrarium (vu qu'elles ont des conditions assez spécifiques, comparé à mes autres styles de carnivores), et pas moyen de lui faire développer ses urnes. Les feuilles poussent sans problème, mais les urnes au bout restent de taille miniature...déception :)

Gagou le 2010/05/02 19:04

Pour faire mentir Ozwald ( ;) ), il est maintenant possible d'installer dionaea sur Arch depuis les dépôts AUR :
-> http://aur.archlinux.org/packages.p...
L'utilisation de l'outil yaourt (http://archlinux.fr/yaourt) est fortement recommandé pour installer des paquets depuis AUR sans prise de tête :)

Ozwald le 2010/05/03 10:07

Merci pour le boulot effectué Gagou !
Tu viens d'entériner le choix de la distrib que je vais installer sur mon nouveau serveur ^^

@meik : ça pourrait venir d'un substrat trop riche...enfin en tout cas c'est ce que j'ai lu quelque part sur internet ou dans un bouquin je crois :D

Guiniol le 2010/05/10 14:52

Tu laisserai tomber Gentoo??
Je suis shocké :)

  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, cf commentaires du post ;)
  4. Oui, oui, j'ai été assez rapide pour avoir une place :-D

Oh les belles plantes !

Par Oz le - Sécurité
Honeypot Malware Nepenthes

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ées1. Ces plantes ont donc pour particularité de générer des pièges (appellés "urnes") afin de capturer passivement toute proie assez bête2 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écuter3 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, avr. 2009

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 chose4 dans les mois à venir.

Butterfly - Creative Common by Museum Wales on Flickr, avr. 2009

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 !

  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.