Installation et Configuration de Snoge
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.
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 :
Merci à Flavian pour cet article.