{{tag>système sécurité}} ---- ====== Picviz ====== Picviz est un applicatif qui, à partir de fichiers log générés par des sources diverses telles que Apache, Netfilter, ... va concevoir des graphiques au format png permettant une vue plus synthétique et plus compréhensible des données contenues dans ces fichiers log (erreurs, anomalies, ...) Picviz permet de générer des graphiques type coordonnées parallèles. Les coordonnées parallèles sont une technique permettant de visualiser un nombre important d'informations de façon non ambiguë ([[wpfr>Coordonnées_parallèles|voir wikipedia]]). ===== Pré-requis ===== * Disposer des [[:sudo|droits d'administration]]. * Disposer d'une connexion à Internet configurée et activée. * Dépôt //universe// activé (sinon voir [[:depots]]). ===== Installation ===== Installation des paquetages prérequis (dont [[python]] et [[gcc]]) apt-get install flex bison python-dev python-qt4 cmake cairo-dock gcc libpcre3 libpcre3-dbg libpcre3-dev Installation de libpicviz (c'est la library de picviz développée en python) l'archive est disponible [[http://trac.wallinfire.net/picviz/wiki/ReleasesDownload|ici]] cd .. wget http://pkgs.fedoraproject.org/repo/pkgs/picviz/libpicviz-0.6.tar.gz/bd2cd1dd250dc5df362b1d3a5edea3cd/libpicviz-0.6.tar.gz tar xvf libpicviz-0.6.1.tar.gz cd libpicviz-0.6.1 make sudo make install cd src/bindings/python sudo python setup.py install Installation de picviz-cli (picviz en interface texte) l'archive est disponible [[http://trac.wallinfire.net/picviz/wiki/ReleasesDownload|ici]] cd .. wget http://pkgs.fedoraproject.org/repo/pkgs/picviz/picviz-cli-0.6.tar.gz/4ef5edbb77811de3ac608af28d02dce6/picviz-cli-0.6.tar.gz tar xvf picviz-cli-0.6.tar.gz cd picviz-cli-0.6/src make sudo make install Installation de picviz-Gui (picviz en interface graphique) l'archive est disponible [[http://trac.wallinfire.net/picviz/wiki/ReleasesDownload|ici]] cd ../.. wget http://www.wallinfire.net/files/picviz/picviz-gui-0.7.tar.gz tar xvf picviz-gui-0.7.tar.gz cd picviz-gui-0.7 sudo ./setup.py install sudo ldconfig ===== Configuration===== ==== > picviz-gui ==== Intégrer picviz-gui au menu **Application** : Clic droit sur **Application**-> **Éditer les menus** -> **Accessoires** -> **Nouvel élément** -> le nom **Picviz**, la commande **picviz-gui** ===== Utilisation===== Picviz reçoit en entrée des fichiers au format PCV. Avant d'utiliser le logiciel Picviz, il faut utiliser un script qui permet de convertir le fichier log en un fichier PCV par l'utilisation du langage PGDL ([[http://trac.wallinfire.net/picviz/wiki/PcvLanguage|plus d'information]]). Sources (Syslog, [[:iptables|Netfilter]], [[apache2|Apache]]) -> Génération par le langage PGDL (utilisation de [[http://trac.wallinfire.net/picviz/wiki/PerlPcv|script]]) -> fichier PCV -> Conception du graphique (par utilisation picviz) -> Graphique png ==== > picviz-cli ==== pcv -Tpngcairo -Rheatline -rrrrrrrra access-wallinfire.net.pcv > access.png * Tpngcairo : format png * Rheatline -Avirus : couleur * rrrrrrrr : permet une haute résolution * a : permet afficher du texte Génération automatique de graphiques : Nous pouvons, à partir [[cron]], créer un script qui permet de générer des images périodiques. Le script syslog2picviz.pl est disponible [[http://trac.wallinfire.net/picviz/browser/picviz-parsers/syslog2picviz.pl?rev=385|ici]] #!/bin/sh ./syslog2picviz.pl syslogemu.log > syslogemu.pcv pcv -Tpngcairo -Rheatline -rrrrrrrra syslogemu.pcv > syslogemu.png echo "" | mutt -x -s "Picviz" root -a syslogemu.png rm syslogemu.pcv rm syslogemu.png Un envoi de mail se fait automatiquement par utilisation d'un [[serveurs_messagerie|serveur mail]] ==== > picviz-gui ==== {{ http://www.picviz.com/images/montage/picviz-ss1.png?439x169|Screenshot de picviz}} picviz-gui apporte un plus à la ligne de commande, mais comme celle-ci est écrite en python. Elle est relativement moins fluide et fine que [[ggobi]]. ==== > Exemple d'utilisation ==== === La source === On récupère un log, dans mon cas syslogemu.log log de parfeu. Extrait du fichier log Mar 3 09:38:46 debian DINPUT IN=eth0 OUT= MAC=00:0c:30:db:0c:32:00:0c:30:b1:d9:e2:09:00 SRC=192.168.1.205 DST=192.168.1.240 LEN=44 TOS=00 PREC=0x00 TTL=55 ID=53647 CE PROTO=TCP SPT=48040 DPT=23 SEQ=2989621591 ACK=0 WINDOW=4096 SYN URGP=0 Mar 3 09:38:46 debian DINPUT IN=eth0 OUT= MAC=00:0c:30:db:0c:32:00:0c:30:b1:d9:e2:09:00 SRC=192.168.1.205 DST=192.168.1.240 LEN=44 TOS=00 PREC=0x00 TTL=40 ID=7426 PROTO=TCP SPT=48040 DPT=113 SEQ=2989621591 ACK=0 WINDOW=1024 SYN URGP=0 Mar 3 09:38:46 debian DINPUT IN=eth0 OUT= MAC=00:0c:30:db:0c:32:00:0c:30:b1:d9:e2:09:00 SRC=192.168.1.205 DST=192.168.1.240 LEN=44 TOS=00 PREC=0x00 TTL=56 ID=40787 CE PROTO=TCP SPT=48040 DPT=21 SEQ=2989621591 ACK=0 WINDOW=1024 SYN URGP=0 ... === Conversion === On convertit le log du parfeu en format PCV à l'aide de script. Le script syslog2picviz.pl est disponible [[http://trac.wallinfire.net/picviz/browser/picviz-parsers/syslog2picviz.pl?rev=385|ici]], On peut le modifier selon la situation. ./syslog2picviz.pl syslogemu.log > syslogemu.pcv Extrait du fichier pcv header { title = "Syslog picviz analysis"; } axes { ipv4 SRC [label="Ip source"]; ipv4 DST [label="IP destination"]; port SPT [label="Port source"]; port DPT [label="Port destination"]; } data { PortIN="",SRC="192.168.1.205",DST="192.168.1.240",SPT="48040",DPT="23"; PortIN="",SRC="192.168.1.205",DST="192.168.1.240",SPT="48040",DPT="113"; PortIN="",SRC="192.168.1.205",DST="192.168.1.240",SPT="48040",DPT="21"; ... } === Création de l'image === On utilise la commande pcv pour convertir syslogemu.pcv en syslogemu.png. A partir de là, nous pouvons débuter l'analyse de l'image. pcv -Tpngcairo -Rheatline -rrrrrrrra syslogemu.pcv > syslogemu.png ===== Voir aussi ===== * **(en)** [[http://www.wallinfire.net/picviz/|Site officiel du logiciel Picviz]] * **(en)** [[https://www.honeynet.org/files/KYT-Picviz_v1_0.pdf|Manuel d'utilisation du logiciel Picviz]] * **(en)** [[http://www.ggobi.org/docs/parallel-coordinates/|Site officiel du logiciel GGobi]]