Forum Linux.général Nginx : trapper des logs "bizarres".

Posté par (page perso) . Licence CC by-sa
Tags :
2
31
oct.
2014

Hello,

J'ai beaucoup de lignes avec ce genre de cochonneries dans ma log Nginx :

113.248.xxx.xxx www.pentakonix.fr - [31/Oct/2014:13:50:16 +0100] "H~*\xE3PA\xF7\xC8\xFA\x12\xAE\xEE\xDFS\xC1\xBE\xDCX`\xBA\xF2\xC5\xC2\xE0\x9D\x19\x9C\xFA\xB7\xE8\x88\xC7\xF2\x19\x83ijh\xCEd?" 400 166 "-" "-" - 0.589
59.174.xxx.xxx www.pentakonix.fr - [31/Oct/2014:13:50:20 +0100] "84n\x16\x92ty\x89\xA4d\xCE\xAB2\x98av\xE9\x98{\x09\x98\xAESct\xB3\xFA;\xE1]\xB4\x031\x9A=\xF7Xvq;\xE5f\x1Dq\x13\xCC\xB3\xE4]\xB8\x9B0,7\xE7\x906\xAD\x07z\xE1\xDC\xBF'z\xCE\x8C\x16\x1Es\xA0\x1B\x103\xF3\xC1\x8A5F\xC9SD\xE2L\xA8\x0C\xFF\xD8`\x0C\xC1[ad\xCAZ\xB2V\xEE\xCFH\x8Ei\xD7\xC1\xDB\x98\xCA\x10]\x93b \xF5.G\x01\xAC\x9E\xDF\xB7`;\x98C\x84\xF1t\xD9`D\xA1\xED,x.\x87\x8Fx\x96k\x0Bx\x8A\x7F\xA5P\xFFQn\xDE\x87\xCD\x98\x9E\x8F\x1C\x10\x04uo\xC6\x16\xDB\xF1\x8D" 400 166 "-" "-" - 0.456

Je ne suis pas dupe j'imagine qu'il s'agit de scan http ou de tentatives d'exploit.

J'aimerais pouvoir trapper ce genre de "choses" en analysant la log et coller un gros blacklist dans la tronche à l'IP, jusque là tout va bien rien d'anormal.

Le hic c'est que je ne sais pas trop comment m'y prendre pour traper ça, enfin je saurai pondre une regex mais reste à savoir quel pattern attraper !

Les caractères m'ont l'air d'être du genre aléatoires, et je ne sais pas si c'est affiché ainsi parce que j'avais un problème de charset ISO/UTF ou s'il s'agit bien de ce qu'envoie l'attaquant.

Nginx était jusque là configuré en UTF8, je viens de bien faire le ménage et de tout mettre en fr_FR.ISO8859-1 pour mes variables d'environnement et ISO8859-1 pour Nginx également, FreeBSD n'aimant pas trop l'UTF apparemment.

Jusqu’à attendre d'autres tentatives de hack de ce genre et identifier s'ils sont toujours sous la même forme je ne vois pas trop comment faire pour trapper ça …

Quelqu'un a t il ce genre de choses dans ses logs de son côté ou est-ce bien un problème de charset ?

Des idées ?

  • # Bon j'ai utilisé une solution de contournement ...

    Posté par (page perso) . Évalué à 3.

    … retour à l'ancienne méthode, qui ne me plait guère mais bon.
    J'ai tout simplement blacklisté la moitié de l'Asie directement en entrée sur mon firewall.

    Bizarrement c'est beaucoup moins verbose pour le coup :-)

    • [^] # Re: Bon j'ai utilisé une solution de contournement ...

      Posté par . Évalué à 3. Dernière modification le 01/11/14 à 13:52.

      Si c'est des scans, fail2ban devrait pouvoir détecter ça et blacklister l'IP tout seul comme un grand. Le ban de toute l'Asie peut effectivement être une solution selon l'audience internationale ou non de ton site.

  • # utf8 et FreeBSD

    Posté par (page perso) . Évalué à 1. Dernière modification le 03/11/14 à 12:58.

    Ola,

    FreeBSD n'est aucunement fâché avec l'utf8, ce n'est simplement pas configuré par défaut. Certains diront que c'est un défaut, d'autres que c'est simple à configurer.

    Normalement un simple changement dans /etc/login.conf si mes souvenirs sont bons, charset=UTF-8 dzns la classe par défaut, regen du fichier /etc/login.db (plus sûr du tout là) via une commande oubliée et terminé.

    Pour ton problème, essaye de capturer des backslashes, si tu sais que tu n'en auras pas dans tes url, peut etre que ca fonctionnera.

    Tu peux aussi essayer de décoder la "vraie" valeur utilisable pour savoir ce qui se cache derrière. Vu le format, python ou ruby devraient savoir y faire, et je pense que perl aussi.

    Love – bépo

  • # je capturerai les \x

    Posté par . Évalué à 4.

    en gros une ligne qui valide (\x.*){10} se prends un ban, rien que la première ligne en a plus de 20, la deuxième j'en parle pas ;)

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

  • # ignorer sans bloquer

    Posté par (page perso) . Évalué à 2.

    Si tu commences à bloquer par IP tout client qui envoit des requètes « bizarres » ça devient fort facile de faire bannir le site depuis toute bibliothèque, bureau ou autre endroit derrière du NAT. S'il n'y a pas une bonne raison pour faire ce genre de filtrage (« ça fait plein de lignes bizarres dans mes logs » n'est pas une bonne raison), ça ne me semble pas une super idée.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.