Qu'est ce qu'un honeypot?
Un honeypot (pot de miel) est un programme,
une machine ou un système volontairement vulnérable qui est destiné à attirer
et à piéger les pirates.
Cet appât fait croire aux intrus qu’ils se trouvent sur une machine de
production normale, alors qu'ils évoluent dans un leurre.
Le but est d’observer les attaques, de les enregistrer, mais aussi de
simplement faire perdre du temps aux pirates.
Les pots de miel retournent des informations très instructives qui sont plus
faciles à interpréter que celles récoltées par les IDS.
Honeyd
Honeyd est un démon qui crée des hôtes
virtuels sur un réseau. Ces hôtes peuvent être configurés pour héberger des
services arbitraires, et leur personnalité peut être adaptée pour apparaître
sous certains OS.
Honeyd est un logiciel open source, sous
licence GPL disponible a l'adresse http://www.honeyd.org/
Installation :
Pré requis :
- libevent :
bibliothèque
d’événements non synchrones
- libdnet :
interface
bas niveau pour les routines de réseau
- libpcap :
bibliotheque
de capture de paquets
- arpd :
démon
arp.
Arpd permet de
gérer les adresses IP non attribuées et il redirige les
attaques vers
Honeyd.
Les installations se font
plus ou moins simplement, via les commandes habituelles :
# ./configure [-without-python] le cas échéant
# make
#
make install
Utilisation :
Fichier de configuration de honeyd :
On peut créer autant d’hôtes
virtuels que l’ont veut, grâce au fichier de configuration.
Pour cela on utilise
l'option :
"-l honeydcont"
Pour simuler des IDS sur le
réseau, nous avons donc créé 2 hôtes semblables au IDS réels, à savoir un
FreeBSD 5.2 et une Debian (Linux 2.4.18).
Les faux IDS ont les ports 22
et 25 ouverts pour le non-secure, le port 22 pour le secure, avec des scripts
perls qui répondent aux tentatives de connections.
Pour simuler les machines d’administration,
nous avons instancié un FreeBSD 5.2 et un Linux
2.4.18, dont les ports 22, 25, et 80 sont ouverts.
Nous avons aussi insèré une machine sous Windows XP, qui serait infectée par
un virus de type Mydoom.
Pour cela, nous avons
installé le script mydoom.pl, disponible librement sur le site "http://www.honeynet.org.br/tools/".
Enfin, nous avons crée un
tarpit sous MacOS X. Un tarpit est un host virtuel qui ralenti les connections
de l attaquant. Il est notamment utilise pour ralentir
la progression des vers.
Ce fichier de configuration
"honeydconf" est le suivant.
### FreeBSD
computers <==> IDS SECURE
create freebsd
add freebsd tcp
port 22 "sh scripts/test.sh $ipsrc $dport"
add freebsd tcp
port 25 "perl scripts/smtp.pl"
set freebsd
default tcp action block
set freebsd
default udp action reset
set freebsd
personality "FreeBSD 5.2-CURRENT (Jan 2004) on X86"
bind 192.168.0.6
freebsd
### Linux
<==> IDS NON SECURE
create linux
add linux tcp
port 22 "sh scripts/test.sh $ipsrc $dport"
add linux tcp
port 25 "perl scripts/smtp.pl"
set linux default
tcp action block
set linux default
udp action reset
set linux
personality "Linux 2.4.18"
bind 192.168.0.7
linux
## Server FreeBSD
admin secure
create server
set server
personality "FreeBSD 4.9 - 5.1"
add server tcp
port 80 "sh scripts/web.sh"
add server tcp
port 22 "sh scripts/test.sh $ipsrc $dport"
add server tcp
port 25 "perl scripts/unix/general/snmp/fake-snmp.pl"
set server
default tcp action block
set server
default udp action reset
bind 192.168.0.8
server
# Server admin
no-secure
create admnosec
add admnosec tcp
port 22 "sh scripts/test.sh $ipsrc $dport"
add admnosec tcp
port 25 "perl scripts/smtp.pl"
set admnosec
default tcp action block
set admnosec
default udp action reset
set admnosec
personality "Linux 2.4.18"
bind 192.168.0.9
admnosec
### Tarpit
Template
### Insecure and open
Mac box designed to tarpit worms/autorooters
create sticky
set sticky
personality "Apple Mac OS X Server 10.1.2 (ppc)"
set sticky
default tcp action tarpit open
set sticky
default udp action block
bind 192.168.0.10
sticky
### MyDoom Faker
create mydoom
set mydoom personality "Microsoft Windows XP
Professional"
set mydoom default tcp action reset
set mydoom
default udp action reset
set mydoom
default icmp action open
set mydoom uid
32767 gid 32767
add mydoom tcp
port 1080 "scripts/mydoom.pl -l
scripts/mydoom"
add mydoom tcp
port 3127 "scripts/mydoom.pl -l
scripts/mydoom"
add mydoom tcp
port 3128 "scripts/mydoom.pl -l
scripts/mydoom"
add mydoom tcp
port 10080 "scripts/mydoom.pl -l scripts/mydoom"
bind 192.168.0.11 mydoom
- Fichier de signature :
Les hotes créés doivent
faire correspondre "leur personnalité" avec les personnalités testées
par nmap.
Ainsi, honeyd se sert du
fichier fingerprint de nmap.
Nous avons donc intègre la
dernière version du fingerprint de nmap, grâce à l option :
"-p nmap-os-fingerprint"
- Le fichier de log :
Honeyd permet de générer des
logs, dans le un fichier de notre choix, grâce à l’option :
"-l logname"
Cependant, il faut que le
fichier existe :
# touch /var/honeyd/log
et qu’il ait les droits en
écriture
# chmod 733 /var/honeyd/log
- La rangée d’hôtes :
Il faut spécifié a honeyd les IPs pour lesquels il doit répondre.
La range d'ip est spécifie a
la fin de la ligne de commande par :
"192.168.0.x-192.168.0.y"
avec y >= x
Le ligne de commande pour lancer
honeyd ressemble donc a :
#
honed -p nmap-os-prints -c honeyd.conf -l /var/hobeyd/log
192.168.0.6-192.168.0.10
Le honeypot est en place,
les attaquants voient 5 hôtes, qui sont virtuels.
Des qu’une attaque sera
lancée sur 1 de ces hôtes, le honeypot sauvera les
log dans /var/hobeyd/log.
Malheureusement, ces logs ne sont pas appréhendables tels quels, nous avons donc
cherché une solution pour les analyser.
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Honeysum:
Honeysum est un outil écrit
en perl qui a pour but de condenser les fichiers de log de honeyd, afin qu'ils
deviennent compréhensibles.
Il est librement
téléchargeable a l adresse "http://www.honeynet.org.br/tools/".
Pour le faire marcher, il
faut que l’extension netmask pour perl soit installée.
Il prend en argument le
fichier de configuration de honeyd et le fichier de log.
On le lance ainsi :
#
perl honeysum.pl –c honeyd.conf honeyd.log
On obtient ainsi :
qui récapitule les attaques
et tentatives de connexions.