« LINUX:Wazuh-Statistiques » : différence entre les versions

Page créée avec « __FORCETOC__ ---- ''→ retour à Wazuh: HIDS'' ---- =But= Au fur et à mesure, les attaques se diversifient et s'accumulent. A partir des adresse… »
 
Aucun résumé des modifications
 
(9 versions intermédiaires par le même utilisateur non affichées)
Ligne 7 : Ligne 7 :




=Script de regroupement et de détection du pays d'origine=
=Script de regroupement et de localisation du pays d'origine=
La première étape consiste à repérer dans le fichier "/var/ossec/logs/active-responses.log", les adresses IP bloquées. On les regroupe au fur et à mesure du temps en ne gardant qu'une occurrence.
La première étape consiste à repérer dans le fichier "/var/ossec/logs/active-responses.log", les adresses IP bloquées. On les regroupe au fur et à mesure du temps en ne gardant qu'une occurrence.


Ligne 36 : Ligne 36 :
  listeip=`/usr/bin/cat listeip.txt`
  listeip=`/usr/bin/cat listeip.txt`
  # récupérer la liste des adresses IP déjà traitées
  # récupérer la liste des adresses IP déjà traitées
  listens=`/usr/bin/cat ns.lis | /usr/bin/awk '{printf("%s ",$1)}'`
  listens=`/usr/bin/cat ns.lis | /usr/bin/awk '{printf("I%sI",$1)}'`
  # bouclage sur chaque adresse IP
  # bouclage sur chaque adresse IP
  for ip in $listeip
  for ip in $listeip
  do
  do
   liste1=`echo ${listens} | grep "${ip}"`
  ip1="I"$ip"I"
   liste1=`echo ${listens} | grep "${ip1}"`
   if [ "$liste1" = "" ]
   if [ "$liste1" = "" ]
   then
   then
Ligne 87 : Ligne 88 :
  /usr/bin/rm -f listeip.txt
  /usr/bin/rm -f listeip.txt
----
----
Un fichier est créé "ns.lis" qu'il ne faut pas détruire. Au fur et à mesure du temps, les adresses IP et leur localisation vont s'y accumuler. Un second fichier "nss.lis" est le résultat trié par pays du premier fichier; ce second fichier peut être effacé.
Un fichier est créé "ns.lis" qu'il ne faut pas détruire. Au fur et à mesure du temps, les adresses IP et leur localisation vont s'y accumuler. Ce fichier comprend 4 colonnes: l'adresse IP, le code du pays, le nom du pays et, s'il est disponible, le nom de la machine.


Un second fichier "nss.lis" est le résultat trié par pays du premier fichier; ce second fichier peut être effacé.


Remarque: Faites attention, quelques fois les noms de certains pays changent d'orthographe. Il faut corriger directement ceux-ci dans le fichier "ns.lis" avec un éditeur de texte pour avoir un résultat correct.
=CRON=
Ce script est à exécuter régulièrement avant effacement du fichier "/var/ossec/logs/active-responses.log". On peut automatiser cette procédure par exemple une fois par jour ou toutes les heures via le service CRON.
On peut ajouter une ligne dans le fichier "/etc/crontab":
----
10  *  *  *  *  root /manager/wazuh/stat/nslookup.bat  >  /manager/wazuh/stat/nslookup.log
----
Dans cet exemple, il s'exécute tous les heures sous une session de l'utilisateur "root".
=Script de statistiques=
Sur base du fichier "ns.lis", on peut faire passer un script qui effectue le comptage par pays.
Voici un script simple nommé "compter.bat":
----
#!/bin/bash
# Statistiques par pays des adresses IP
cd /manager/wazuh/stat
# récupérer les noms du pays
/usr/bin/awk -F'\t' '{printf("%s\n",$3)}' ns.lis > ns3.1
# effacer les espaces en fin de ligne et remplacer les espaces intérieurs par un souligné puis tri unique
/usr/bin/sed -i 's/[ ]*$//' ns3.1
/usr/bin/sed -i 's/ /_/g' ns3.1
/usr/bin/sort -u ns3.1 > ns3.2
# comptage par pays
liste=`/usr/bin/cat ns3.2`
echo -e "Pays\tnbs" > nscompte.lis
echo  "=====================" >> nscompte.lis
for pays in $liste
do
  echo -n -e "$pays\t" >> nscompte.lis
  /usr/bin/grep $pays ns3.1 | /usr/bin/wc -l >> nscompte.lis
done
# effacer les soulignés
/usr/bin/sed -i 's/_/ /g' nscompte.lis
# nettoyage
/usr/bin/rm -f ns3.1
/usr/bin/rm -f ns3.2
----
Le résultat se retrouve dans le fichier "nscompte.lis".
=Exemple de résultats=
Les résultats ont été mis dans un tableur. Un histogramme présente les 20 plus grands. Il faut attendre quelques mois pour voir une stabilisation.
[[FILE:LINUX:Wazuh.pays.png|600px|center]]