1. Annexe 2
Installation et configuration
de Monkey-Spider 2.0
Cette annexe décrit toutes les étapes d'installation et de configuration du client Honeypot
Monkey-Spider sur une plateforme GNU/Linux.
1. INTRODUCTION
Monkey-Spider est un client Honeypot à faible interaction, il permet d'explorer les sites
internet afin de détecter les menaces existantes dans ces sites. Initialement développé dans un cadre
universitaire par M. Ali Ikinci et est poursuivi et publié comme Logiciel Libre, il viens de publier
dernièrement sa nouvelle version (version 2.0) le 24 Mars 2009 sous la licence GPLv3.
Monkey-Spider est un client de détection de Malwares rapide et facilement extensible avec
d'autres outils de détection, il est basé sur deux grands mécanismes : l'exploration et le
téléchargement des sites internet, ensuite ces sites seront scannés par un anti-virus pour détecter les
logiciels malveillants qui seront par la suite stockés dans une base de données.
2. ENVIRONNEMENT
• Dernière version de Ubuntu : 9.04
• Dernière version de JDK : 1.6.0_13-b03
• Dernière version de Python 2.6
• Dernière version de Heritrix : 1.14.3
• Dernière version de ClamAV : 4.08
• Dernière version de PostGreSQL : 8.3.7-1
• Dernière version de Monkey-Spider : 2.0
2. 3. PRÉ-REQUIS
Pour l'installation de Monkey-Spider, nous supposant que Ubuntu est bien installé, et que
l'administrateur à tous les droits du compte super-utilisateur (root), et qu'un minimum de
connaissance des commandes Shell et de l'environnement Lunix (Ubuntu) est acquis.
Nous supposons aussi que les outils suivants sont installés : sed 4.1.5-8, mawk 1.3.3, wget
1.11.4, grep 2.5.3, unzip 2.25, Python 2.6 et Java 1.6 (JVM).
Notons aussi qu'il faut installer Heritrix, PostgreSQL et ClamAV ainsi que toutes leurs
composantes nécessaires (PyGreSQL, SOAPpy, pYsearch) pour faire tourner Monkey-Spider. Pour
cela, nous allons commencer par l'installation de ces outils, puis on va détailler l'installation et
l'utilisation de Monkey-Spider.
4. INSTALLATION ET CONFIGURATION DE HERITRIX
Heritrix est un robot d'exploration Open Source développé en Java par Internet Archive et
les Bibliothèques Nationales Nordiques en 2003. Il permet d'aspirer les sites internet et de les
archiver sous format ARC.
Afin d'éviter d'avoir la gestion d'un grand nombre de petits fichiers, le format ARC, permet
de stoker de multiples ressources (texte, images, vidéo, etc) dans un seul fichier. Un fichier consiste
en une séquence d'enregistrements d'URL, chacun étant accompagné d'un en-tête contenant des
métadonnées à propos de la manière dont la ressource a été demandée, de l'en-tête HTTP, et du
code de la réponse. La taille d'un fichier Arc est comprise entre 1 et 600 mégaoctets.
Dans cette partie nous essayons de détailler l'installation de Heritrix 1.14.3 disponible depuis
le 03 Mars 2009, pour cela :
• Commencez par télécharger le fichier heritrix-1.14.3.tar.gz à partir de ce site :
http://sourceforge.net/project/showfiles.php?group_id=73833&package_id=73980
• décompressez le dans votre dossier Home:
tar -xfz heritrix-1.14.3.tar.gz
• Définition de HERITRIX_HOME pour le système: pour cela éditez le fichier bashrc :
$sudo gedit /etc/bash.bashrc
• À la fin du fichier, tapez :
export HERITRIX_HOME=~/heritrix-1.14.3/
export PATH=$HERITRIX_HOME/bin:$PATH
• Vérifiez avec :
mbb@mbb-laptop:~$ echo $HERITRIX_HOME
/home/mbb/heritrix-1.14.3/
3. • Donnez ensuite le droit d'exécution des fichier Heritrix à votre utilisateur:
% cd $HERITRIX_HOME
% chmod u+x $HERITRIX_HOME/bin/heritrix
• Testez ensuite Heritrix avec:
% $HERITRIX_HOME/bin/heritrix help
Usage: heritrix --help
Usage: heritrix --nowui ORDER.XML
Usage: heritrix [--port=#] [--run] [--bind=IP,IP...] --admin=LOGIN:PASSWORD
[ORDER.XML]
Usage: heritrix [--port=#] --selftest[=TESTNAME]
Version: @VERSION@
Options:
-b,--bind Comma-separated list of IP addresses or hostnames for web
server to listen on. Set to / to listen on all available
network interfaces. Default is 127.0.0.1.
-a,--admin Login and password for web user interface administration.
Required (unless passed via the 'heritrix.cmdline.admin'
system property). Pass value of the form 'LOGIN:PASSWORD'.
-h,--help Prints this message and exits.
-n,--nowui Put heritrix into run mode and begin crawl using ORDER.XML.Do
not put up web user interface.
-p,--port Port to run web user interface on. Default: 8080.
-r,--run Put heritrix into run mode. If ORDER.XML begin crawl.
-s,--selftest Run the integrated selftests. Pass test name to test it only
(Case sensitive: E.g. pass 'Charset' to run charset selftest)
Arguments:
ORDER.XML Crawl order to run.
• Lancez ensuite Heritrix avec un utilisateur et son mot de passe:
% $HERITRIX_HOME/bin/heritrix --admin=LOGIN:PASSWORD
[b116-dyn-60 619] heritrix-0.4.0 > ./bin/heritrix
Tue Feb 10 17:03:01 PST 2004 Starting heritrix...
Tue Feb 10 17:03:05 PST 2004 Heritrix 0.4.0 is running.
Web UI is at: http://b116-dyn-60.archive.org:8080/admin
Login and password: admin/admin
• Nous passons maintenant à la configuration et le création d'un Job avec Heritrix, pour cela
rendez vous à l'adresse http://localhost:8080/ :
a) Pour cela allez à la Job, et choisissez la création d'un job avec les paramètres par défaut
(With defaults), dans le champ « seeds » donner la liste des sites à crawler (un site par ligne).
b) Allez ensuite à la configuration d'un profil pour ce job: (Jobs > Settings): par défaut, il
existe un profil prédéfini, donc nous allons le modifier pour qu'il puisse être opérationnel,
pour cela cherchez le paramètre http-headers et modifier ces propriétés:
user-agent: Mozilla/5.0 (compatible; heritrix/1.14.3 + http://mbubuntu.freehostia.com)
from: b.bouzid.mohamed@gmail.com
c) Dans Jobs > Modules allez vers le paramètre Select Crawl Scope et modifiez le pour
qu'il puisse faire seulement le crawling seulement dans les domaines des hyperliens fournis
dans le job (choisir la valeur org.archive.crawler.scope.DomainScope), n'oubliez pas surtout
d'enregistrer.
4. d) Avant, de lancer le crawling des Jobs créés, assurez vous que la configuration à était
bien saisie (ce n'est pas toujours le cas), allez vers le dossier ~/heritrix-1.14.3/jobs/ et
choisissez le job que vous avez créé, dans ce répertoire ouvrez le fichier de configuration du
Job order.xml vérifiez maintenant que la configuration est bien celle que vous avez saisi, en
particulier la ligne de configuration du domaine de recherche du crawling : <newObject
name="scope" class="org.archive.crawler.scope.DomainScope"> puis le fichier seeds.txt
qui contient la liste des sites à crawler.
e) Voilà, maintenant que le job est bien configuré, il ne vous reste plus qu'allez à Console
et démarrer votre Job (pensez à rafraichir la fenêtre pour vérifier que votre job est en cour de
fonctionnement).
5. INSTALLATION DE KLAMAV
ClamAV est un antivirus Open Source (Licence GPL) Gratuit et très puissant, il est
disponible sur les systèmes GNU/Linux mais également sur Windows (ClamWin) et Mac OS X
(ClamXav). Il peut tout aussi bien être utilisé sur des serveurs que sur des postes de travail.
ClamAV est principalement utilisé pour détecter les virus attaquant les systèmes Windows
qui sont de loin les plus menacés, les systèmes GNU/Linux l’étant peu. En décembre 2008,
ClamAV possède dans sa base de données plus de 450 000 logiciels malveillants reconnus1.
Il est très utilisé dans le domaine professionnel par plusieurs sociétés comme « NGX VPN-1
Edge Embedded », « Barracuda Network », « Netasq » et « Sysun Secure ».
Dans notre projet, ClamAV nous sert à scanner tout les fichiers téléchargés pat Heritrix pour
détecter tous les malwares cachés dans les sites internet. Son installation est très facile via apt, en
effet, il fait partie des dépôts de Ubuntu, pour cela, il suffit de taper dans un terminal:
$ sudo apt-get install clamav
si ClamAV ne se trouve pas par défaut dans la liste des miroirs de Ubuntu, dans le menu
général de Ubuntu, allez à Système>Administration>Sources de mise à jour et crochez la case des
dépôts multiverse, puis recharger la liste, et réessayez la commande apt.
1 Source : http://fr.wikipedia.org/wiki/ClamTk
http://www.clamav.net/
http://doc.ubuntu-fr.org/clamav
5. 6. INSTALLATION ET CONFIGURATION DE POSTGRESQL
Initié par Michael Stonebraker en 1985, PostgreSQL est un gestionnaire de base de données
relationnel et d'objet très puissant sous licence BSD dont les performances sont comparables à
Oracle ou SQL server de Microsoft. Très riche en fonctionnalités et facile à utiliser, il reste le
SGBD le plus rapide et le plus utilisé en entreprise de nos jours2
PostgreSQL est disponible dans les dépôts de ubuntu, donc pour l'installer, il suffit de taper
dans un terminal :
$ sudo apt-get install postgresql
Nous passons ensuite à sa configuration, et nous commençons par activer l'utilisateur par
défaut postgres :
$ sudo -s -u postgres
Password:
vérifier ensuite que PostgreSQL fonctionne parfaitement avec la commande psql
Maintenant, nous allons ajouter un utilisateur-administrateur (avec une méthode très
sécurisée pour que l'utilisateur ait un mot de passe crypté), donc éditez le fichier suivant :
sudo gedit /etc/postgresql/8.3/main/pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# Database administrative login by UNIX sockets
local all postgres md5
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
On peut ensuite créer notre utilisateur :
$ sudo -s -u postgres
$ createuser admin
Le nouvel rôle est-il superutilisateur ? (o/n) n
Le nouvel rôle est-il autorisé à créer des bases de données ?(o/n) o
Le nouvel rôle est-il autorisé à créer de nouveaux rôles ? (o/n) n
$ psql -d template1 -c "alter user admin with password 'admin'"
$ sudo /etc/init.d/postgresql-8.3 restart
Enfin selon votre choix, on vous invite à installer l'un de ces outils de gestion graphique de
PostgreSQL:
$ sudo apt-get install pgadmin3
ou
$ sudo apt-get install phppgadmin
2 Source : http://www.postgresql.org/
http://fr.wikipedia.org/wiki/PostgreSQL
http://doc.ubuntu-fr.org/postgresql
6. Nous passons maintenant à la création une base de données qui sera utiliser par la suite avec
Monkey-Spider pour stoquer toutes les informations relatives aux malwares trouvés, pour cela,
rendez-vous à la page http://localhost/phppgadmin/ (nous supposons que phppgadmin est le client
graphique choisi et installé) et connectez vous avec le compte utilisateur créé précédemment, créez
ensuite une nouvelle base de données malwaredb et exécutez le code SQL déjà récupéré du fichier
monkey-spider-0.2/examples/mw-db-scheme.sql
Autre méthode avec les lignes de commande (dans le dossier ~/monkey-spider-
0.2/examples/) :
psql -f mw-db-scheme.sql malwaredb
voilà, maintenant que notre base de données est configurée, nous passons à l'installation et la
configuration de Monkey-Spider
7. INSTALLATION ET CONFIGURATION DE MONKEY-SPIDER
Nous commençons par télécharger l'archive de Monkey-Spider à partir du site :
http://sourceforge.net/project/showfiles.php?group_id=211520 puis décompressez le dans votre
dossier Home.
Ensuite, nous devons installer les plugins manquants de Python et nécessaires pour que
Monkey-Spider puisse fonctionner :
$ sudo apt-get install python-pYsearch
$ sudo apt-get install python-soappy
Enfin, rendez vous au dossier de Monkey-Spider et lancez le script install.sh:
sudo ~/monkey-spider-0.2/install.sh
Nous passons maintenant à la configuration de Monkey-Spider pour qu'il puisse
communiquer avec PostgreSQL, pour cela éditez le fichier de configuration :
sudo gedit /etc/monkey-spider.conf
#$Id: monkey-spider.conf 40 2009-02-26 13:23:29Z riker2000 $
# Configuration file for the Monkey-Spider system
[ms-database]
# Database configuration
hostname=localhost
databasename=malwaredbusername=admin
password=admin
[ms-scanner]
# where the found malware should be stored
mwattic=../found-malware
username=admin
password=admin
[ms-scanner]
# where the found malware should be stored
mwattic=../found-malware
7. Maintenant que Monkey-Spider est configuré pour qu'il puisse communiquer avec
PostgreSQL, et que Heritrix a déjà commencé à faire des Jobs, nous passons à l'analyse des
fichiers .arc.gz par l'anti-virus pour cela, il suffit de lancer le script ms-processfolder de Monkey-
Spider :
sudo /usr/bin/ms-processfolder.py ~/heritrix-1.14.3/jobs/<FolderARC>/arcs
Et voilà, les virus trouvés seront mis dans un dossier ../found-malware et des informations
relatives à ces virus seront ajoutés automatiquement à la base de données malwaredb.