Blog geekesque... ou presque

Aller au contenu | Aller au menu | Aller à la recherche

fail2ban pour lutter contre les injections SQL

Si vous ne connaissez pas fail2ban, c'est un excellent utilitaire pour protéger vos serveurs des différentes attaques.

Il fonctionne à partir de filtres (des expressions régulières) qui sont appliqués aux fichiers logs et appliquer des sanctions aux petits malins qui tenteraient d'exploiter des failles.

Il existe beaucoup de filtres officiels contre les attaques les plus courantes, mais pas contre les tentatives d'injections SQL. Heureusement, TrogloGeek a créé un filtre, que j'ai un peu modifié pour le rendre plus fonctionnel et utilisable avec Apache et Nginx

# Fail2Ban configuration file
#
# Author: TrogloGeek (Damien VERON)
#
# $Revision: 1 $
#
 
[Definition]
sqlfragments_generic = select.*from|delete.*from|update.*set|insert.*into|replace.*(value|set)
sqlfragments_havij = and(\+|%%20)ascii%%28substring|and(\+|%%20)Length|union(\+|%%20)all(\+|%%20)select|and(\+|%%20)1%%3C1|and(\+|%%20)1%%3D1|and(\+|%%20)1%%3E1|and(\+|%%20)%%27.%%27%%3D%%27|%%2F\*%%21[0-9]+((\+|%%20)[0-9]*)?\*%%2F
 
# Option:  failregex
# Notes.:  Regex to try to detect SQL injection trials
# Values:  TEXT
#
failregex = (?i)<HOST> -.*"(GET|POST).*(?:%(sqlfragments_generic)s|%(sqlfragments_havij)s)[^"]*HTTP[^"]*".*
 
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Dans la partie Definition, vous trouvez les bouts de SQL les plus communs utilisés pour une tentative d'injection, séparés en deux parties: les génériques (requêtes de bases) et ceux qui sont clairement des signatures de tentatives de hack.

L'expression régulière est plus ou moins celle de base pour les logs apache et nginx, notez tout de même la présence de (?i) au début qui la rend insensible à la casse.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : https://www.g33k-zone.org/index.php?trackback/105

Fil des commentaires de ce billet