Logo Blog perso d'Ozwald

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.