System-Linux

Aller au contenu | Aller au menu | Aller à la recherche

Installation et Configuration de Snoge

snoge jpg

Snoge est un logiciel opensource qui permet de représenter dans un Google Earth en "quasi temps réel" d'où proviennent les IP attaquantes relevées par Snort : SnoGe = Snort + Google Earth.

snoge2 jpg

Comme on peut le voir sur l'image, un histogramme bleu représente le nombre d'attaque provenant d'un même FAI. Un histogramme Vert représente le nombre d'alerte par pays. Les lignes montrent les dernières attaques détectées. Plus le lien est foncé, plus l'attaque est récente.

Principe de fonctionnement :

Lorsque qu'une attaque est détectée, Snort écrit l'alerte dans un fichier de log (au format unifié)

Le daemon Snoge :

Examine périodiquement les fichiers de logs de Snort

Relève les dernières alertes

Effectue une géo localisation des IP source

Met à jour un fichier kml (Fichier Google Earth, proche du xml).

Votre Google Earth interroge périodiquement votre serveur Web, afin de récupérer ce fichier kml, et affiche les attaques sur carte mondiale.

Procédure d'installation :

Prérequis :

  • Snort installé et fonctionnel
  • Un serveur Web
  • Google Earth

Télécharger Snoge :

cd /opt
wget http://snoge.googlecode.com/files/snoge-1.8.tgz
tar -zxvf snoge-1.8.tgz
cd snoge-1.8/

Installer les modules PERL :

perl -MCPAN -e shell
	install Module::Load
 	install Geo::IP::PurePerl
 	install NetPacket::Ethernet
 	quit

Installation du module SnortUnified :

wget http://snort-unified-perl.googlecode.com/files/SnortUnified_Perl.20100308.tgz
tar -zxvf SnortUnified_Perl.20100308.tgz

Copier les modules SnortUnified dans les lib perl. Dans mon cas :

cp -a SnortUnified/SnortUnified* /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
mkdir /usr/local/share/GeoIP
cp GeoLiteCity.dat /usr/local/share/GeoIP/

Configuration :

Tout d'abord assurons-nous que Snort log bien les alertes dans le format Unified. (Format utilisé lorsque l'on utilise barnyard pour intégrer les alertes à une BDD).

Éditer le fichier de configuration de snort :

vi /etc/snort/snort.conf

Et vérifier qu'il contient une ligne de ce type :

output unified2: filename snort.log

Créer un répertoire accessible où sera stocké le fichier KML, et rendez-le visible sur le Net :

mkdir /web/www/snoge
mkdir /web/www/snogeimages
vi /etc/httpd/conf/httpd.conf
	Alias /snoge "/web/www/snoge"

Nous allons maintenant configurer SnoGE :

Il y a un problème avec le fichier conf fourni. En effet, toutes les variables sont entourées de double-quotes ce qui provoque une erreur lorsque que l'on lance SnoGE.

mv snoge.conf snoge.conf.orig
cat snoge.conf.orig | sed -e 's/"//g' > snoge.conf

Éditons maintenant le fichier snoge.conf :

vi snoge.conf
	mode unified

# On rentre ici l'adresse de la machine où snort est installé
	 sensors=@IP	# Répertoire où se trouve les logs de snort suivi du préfix des logs unifiés (snorg.log). Dans cet exemple, les logs de snort sont du type /var/log/snort/snort.log.1284341561, /var/log/snort/snort.log.1284372313, ...
	 basefilename=/var/log/snort/snort.log 
	classification=/etc/snort/classification.config
	ignoresids=

# L'url contenant les images qui apparaitront dans GE
	 imageurl=http://@IP/snogeimages/

# L'image qui désignera les attaquants
	 eventicon=warning.png 
	 waldo=/dev/null
	 sid-msg=/etc/snort/sid-msg.map
	 gen-msg=/etc/snort/gen-msg.map
	 ignoresource=
	 ignoredestination=
	 maxplacemarks=50

# Pour chaque nouvelle alerte SnoGE recréera un fichier KML, si votre sensor détecte beaucoup d'alertes, il est conseillé d'augmenter ce paramètre.
	 updateinterval=0
	 maxstats=4000

# Lorsque Snoge n'arrive pas a déterminer la provenance de l'@IP, il placera l'événement à l'emplacement par défaut:
	defaultlongitude=0
	 defaultlatitude=0
	 defaultlocation=rm-rf.co.uk
	 updateurl=http://@IP/snoge/snoge.kml
	 banner=snort-ge-banner.png
	 refreshsecs=5

Attention, pensez à protéger l'accès à votre fichier snoge.kml, afin de ne pas rendre vos données public, par exemple, avec un htpasswd.

Lancement de SnoGE :

./snoge -c snoge.conf -v –r

Si tout ce passe bien vous devriez voir des logs de ce genre :

CONFIG: Input mode is        : unified
CONFIG: sid-msg file is      : /etc/snort/sid-msg.map
CONFIG: gen-msg file is      : /etc/snort/gen-msg.map
CONFIG: Base filename is     : /var/log/snort/snort.log
CONFIG: Ignoring Source      : 
CONFIG: Ignoring Destination : 
CONFIG: Ignoring SIDs        : 
CONFIG: Updateinterval       : 0 events 
CONFIG: Maxplacemarks        : 50 
CONFIG: Maximum Statistics   : 4000 
CONFIG: Default location     : rm-rf.co.uk 
CONFIG: KMLOutputfile        : /web/www/snoge/snoge.kml 
CONFIG: Server Refresh       : 5 
CONFIG: waldo                : /dev/null 
CONFIG: Event Icon           : warning.png 
CONFIG: Sensor Icon          : snorty.gif 
CONFIG: Banner               : snort-ge-banner.png 
CONFIG: UpdateURL            : http://@IP/snoge/snoge.kml 
CONFIG: Defense Center       : 192.168.222.20 
CONFIG: Estreamer Port       : 8302
CONFIG: Certfile             : ./certfile.txt
CONFIG: Sensors              : @IP
CONFIG: Image URL            : http://@IP/snogeimages/
CONFIG: classification file  : /etc/snort/classification.config
- Default Latitude set to 53.9667 
- Default Longitude set to -1.08330000000001 
- Defailt City - > York United Kingdom
- Unified mode * Importing functions:
- Adding sensor @IP in Paris, France 
- Now processing unified file(s).....
Working on unified file /var/log/snort/snort.log.1284372313
Working on new file, resetting last record to 0
----------------------------------------------------

Configuration de Google Earth :

Sous Google Earth, allez dans Ajouter/Lien Réseau

  • Nom : snoge
  • Lien : http://@IP/snoge/snoge.kml?
  • Dans l’onglet Actualisation :
  • Fonction de l’heure : Périodiquement, 30s
  • Fonction de la vue : Après l’arrêt de la caméra : 30s

Si vous souhaitez avoir plus d’informations sur SnoGE, n’hésitez pas à consulter la doc en ligne :

http://leonward.wordpress.com/snoge/

Ou le webcast :

http://www.snort.org/docs

Merci à Flavian pour cet article.

Par GanGan | le mardi, septembre 14 2010 07:00

Commentaires

1. Pierre-Yves

mardi, septembre 14 2010 | 08:41

Bien le bonjour,
Sympa l'article ;) On voit que les vacances sont terminées ;)
C'est normal que ton article ne soit pas sur le planète libre ?
Bonne journée
Pierre-Yves

2. GanGan

mardi, septembre 14 2010 | 13:13

Oubli du tag ! merci à toi :)