Ce module permet d'augmenter le niveau de sécurité d'un serveur web Apache ou d'autres serveurs si on l'utilise avec Apache en mode proxy. Modsecurity agit comme un parefeu applicatif embarqué dans Apache. Il permet ainsi de protéger des applications web contre des attaques classiques (injection SQL, Cross Site Scripting, ...)
La version 2.0 de ModSecurity est composée de trois projets :
- ModSecurity for Apache ;
- ModSecurity Core Rules ;
- ModSecurity Console.
Le premier est le moteur, c'est-à-dire le module Apache. Le second est un ensemble de règle de filtrage (un peu comme les règles pour Snort) et le troisième une console permettant de surveiller le filtrage effectué. Concernant le moteur, il est intéressant de noter que les règles peuvent s'appliquer aussi bien sur les requêtes que sur les réponses. Par exemple, si vous regardez dans le fichier modsecurity_crs_50_outbound.conf (du second projet), la dernière règle filtre la réponse d'un serveur SQL qui a crashé (afin d'éviter de divulguer des informations sur la base de données, par exemple suite à une injection SQL).
Les développeurs du projet sont assez actifs. On peut ainsi espérer avoir une solution à un problème de configuration ou d'installation dans les 24h (chiffre issu de mon expérience personnelle)
Il est par exemple aussi possible d'utiliser ce module avec Apache configuré en mode proxy. Toutes les requêtes entrantes vers un ou plusieurs serveurs HTTP passe par le service Apache et le module ModSecurity et sont ensuite relayées vers les serveurs HTTP internes (non directement accessibles depuis Internet). Cette configuration apporte normalement une sécurité accrue comparée à la mise en place d'un serveur directement sur Internet, et permet d'être plus flexible (changement de serveur grandement facilité en ne modifiant que la redirection).
Pour les utilisateurs Ubuntu breezy avec Apache 2.0.54, la compilation du ModSecurity est très simple, il suffit d'installer les dépendances nécessaires (disponibles depuis les dépôts officiels breezy) et d'activer le module mod_unique_id qui est indispensable pour le fonctionnement de ModSecurity.
Aller plus loin
- Modsecurity.org (19 clics)
- Un article de HSC sur modsecurity (version précédente) (8 clics)
# Son compagnon
Posté par herodiade . Évalué à 10.
J'en profite pour signaler un bon compagnon pour mod_security, à savoir mod_evasive (http://www.zdziarski.com/projects/mod_evasive/ ). Ce module permet de restreindre le nombre d'accès par seconde (globale/pour tous, et pour une IP/client donné) sur un objet apache (un repertoire, un cgi, un script php, ...). C'est une protection utile pour se prémunir des attaques par dictionnaire (en protégeant les pages d'authentification, par exemple) ou les DoS involontaires (en restreignant le nombre d'accès sur les scripts dont l'execution est lourde et lente).
Dans un autre registre, mais aussi très utile pour protéger les serveurs webs utilisant PHP, on peut citer le patch Hardened-PHP (http://www.hardened-php.net/ ).
# Précision
Posté par herodiade . Évalué à 5.
Et même avec Apache 2.x, certaines de ces directives sur le filtrage des réponses / flux sortants n'est possible que sous condition (par exemple le filtrage sur OUTPUT - le contenu complet de la réponse - n'est possible que si l'output buffering n'est pas activé).
# Mise à jour
Posté par Matthieu . Évalué à 2.
# modsecurity-apache_2.0.2.tar.gz
# modsecurity-core-rules_2.0-1.1.1.zip
Corrige des problèmes de mutex et de règles qui affichait des warnings intempestifs (donc généraient des logs)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.