LINUX:Wazuh-Statistiques

De WIKI sur Linux (ADB)
Révision datée du 6 mars 2022 à 18:23 par Adebast (discussion | contributions) (Page créée avec « __FORCETOC__ ---- ''→ retour à Wazuh: HIDS'' ---- =But= Au fur et à mesure, les attaques se diversifient et s'accumulent. A partir des adresse… »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

retour à Wazuh: HIDS


But

Au fur et à mesure, les attaques se diversifient et s'accumulent. A partir des adresses IP, on peut connaitre le pays d'origine et de là établir des statistiques.


Script de regroupement et de détection 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 seconde étape consiste à localiser le pays où se situe chaque adresse IP. Il faut avoir installé et configuré cette fonctionnalité décrite dans l'article Géolocalisation IP.

Dans le répertoire "/manager/wazuh/stat" nous créons le script "nslookup.bat":


#!/bin/bash
# Regroupement des adresses IP bloquées et localisation du pays d'origine de celle-ci
cd /manager/wazuh/stat
# lister ceux bloqués par wazuh
# décomposer la ligne JSON en une ligne par paramètre
/usr/bin/cat /var/ossec/logs/active-responses.log* | /usr/bin/grep "firewall-drop" | /usr/bin/grep '"command":"add"' > listeip.json.txt
/usr/bin/sed -i 's/{/\n{\n/g'   listeip.json.txt
/usr/bin/sed -i 's/}/\n}\n/g'   listeip.json.txt
/usr/bin/sed -i 's/","/",\n"/g' listeip.json.txt
/usr/bin/sed -i 's/,"/,\n"/g'   listeip.json.txt
# rechercher les adresses IP sources
/usr/bin/grep '"srcip":' listeip.json.txt | /usr/bin/awk -F ":" '{printf("%s\n",$2)}' | /usr/bin/sort -u > listeip.srcip.txt
/usr/bin/sed -i 's/\"//g' listeip.srcip.txt
/usr/bin/sed -i 's/\,//g' listeip.srcip.txt
# fusion - tri - unicité
/usr/bin/sort -u listeip.srcip.txt > listeip.txt
# nettoyage
/usr/bin/rm -f listeip.srcip.txt
/usr/bin/rm -f listeip.json.txt
# récupérer la liste des adresses IP
listeip=`/usr/bin/cat listeip.txt`
# récupérer la liste des adresses IP déjà traitées
listens=`/usr/bin/cat ns.lis | /usr/bin/awk '{printf("%s ",$1)}'`
# bouclage sur chaque adresse IP
for ip in $listeip
do
 liste1=`echo ${listens} | grep "${ip}"`
 if [ "$liste1" = "" ]
 then
  echo -n "IP $ip "
# IP
  IP=`/usr/bin/printf "%-15s" $ip`
# NsLookup
  /usr/bin/nslookup $ip 195.238.2.21 > ns.tmp
  echo -n DNS
  /usr/bin/sed -i '/^$/d' ns.tmp
  /usr/bin/grep -v "server can't find" ns.tmp | /usr/bin/grep -v "no servers could be reached" | /usr/bin/grep -v Authoritative > ns1.tmp
  NSL=`/usr/bin/cat ns1.tmp | /usr/bin/awk '{printf("%s",$4)}'`
# GeoIP2
# code pays
  /usr/bin/mmdblookup --ip $ip --file /usr/share/GeoIP/GeoLite2-Country.mmdb country iso_code > ns21.tmp
  echo -n GEO1
  /usr/bin/sed -i '/^$/d' ns21.tmp
  /usr/bin/sed -i 's/<utf8_string>/ /g' ns21.tmp
  /usr/bin/sed -i 's/"/ /g' ns21.tmp
  NSG1=`/usr/bin/cat ns21.tmp | /usr/bin/awk '{printf("%s",$1)}'`
# nom du pays
  /usr/bin/mmdblookup --ip $ip --file /usr/share/GeoIP/GeoLite2-Country.mmdb country names fr > ns22.tmp
  echo GEO2
  /usr/bin/sed -i '/^$/d' ns22.tmp
  /usr/bin/sed -i 's/<utf8_string>/ /g' ns22.tmp
  /usr/bin/sed -i 's/"/ /g' ns22.tmp
  /usr/bin/sed -i 's/ /_/g' ns22.tmp
  /usr/bin/sed -i 's/__/=/g' ns22.tmp
  /usr/bin/sed -i 's/=_/ /g' ns22.tmp
  NSG2=`/usr/bin/cat ns22.tmp`
  /usr/bin/printf "%-25s" $NSG2 > ns23.tmp
  /usr/bin/sed -i 's/_/ /g' ns23.tmp
  NSG2=`/usr/bin/cat ns23.tmp`
# impression
  /usr/bin/echo -e "${IP}\t${NSG1}\t${NSG2}\t${NSL}" >> ns.lis
 fi
done
# tri par code pays
/usr/bin/sort -k 2 ns.lis -o nss.lis
# nettoyage
/usr/bin/rm -f ns.tmp
/usr/bin/rm -f ns1.tmp
/usr/bin/rm -f ns21.tmp
/usr/bin/rm -f ns22.tmp
/usr/bin/rm -f ns23.tmp
/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é.





retour à Wazuh: HIDS