ModSecurity

Fiche logiciel validé
  • Création ou MAJ importante : 05/03/12
  • Correction mineure : 05/03/12
Mots-clés

ModSecurity : module Apache pour sécuriser les sites web

Description
Fonctionnalités générales

ModSecurity est un module du serveur Apache qui assure les fonctions de pare-feu applicatif. Il protège les sites Web et vos applications des différents types d’attaques connues sur le Web. Il travaille sur le protocole http au niveau de la couche application.

ModSecurity intervient à chaque phase de la transaction initiée entre un client Web et le serveur Apache. Il analyse tour à tour l’entête ou le corps des requêtes http et des réponses. Grâce à un corpus de règles de base certifiées, dès son installation, il est capable d’intercepter de nombreux types d’attaques depuis la validation des requêtes http émises par les clients web jusqu’à la détection des attaques sur les applications web les plus populaires. Il protège également contre la fuite d’informations en interdisant l’accès à des portes dérobées installés par des chevaux de Troie et en interceptant des messages d’erreur trop explicites renvoyés par le serveur (ex : erreurs SQL ou PHP).

ModSecurity est conçu autour de deux composants :

  1. un moteur de détection d’intrusion et de protection contre les fuites d’informations ;
  2. un jeu de règles de filtrage (ModSecurity Core Rule Set) et de signatures basés sur une approche de type « liste noire » fourni en standard.

Cette architecture modulaire permet de mettre à jour les règles de base (ModSecurity CRS) sans être obligé de réinstaller le module de détection.

Autres fonctionnalités

Voici quelques exemples de types de menaces qui peuvent être détectées par ModSecurity :

  1. violations des règles du protocole HTTP (ex : encodage d’une requête forgée) ;
  2. tentatives d'accès à des fichiers systèmes comme "/etc/passwd";
  3. anomalies sur le protocole HTTP (ex : interrogation du site en utilisant une adresse numérique, motifs absents indiquant la présence d’une possible attaque automatisée, etc.) ;
  4. protection contre les attaques de type buffer overflow ou des requêtes http manipulant les paramètres (ex : fichier trop volumineux, nombre d’arguments fantaisiste, etc.) ;
  5. blocage de certaines méthodes, interdiction de requêtes en direction de fichiers sensibles (ex : .ini, .key, .old) ;
  6. détection de scanners de recherche de failles de sécurité ;
  7. mise en place de règles contre des attaques connues : protection de sessions, injections SQL, attaques de type Cross Site Scripting, injections de commandes ;
  8. accès à des portes dérobées installées par des troyens ;
  9. interception de messages d’erreur trop explicites renvoyés par le serveur (ex : erreurs SQL ou PHP);
  10. journalisation des transactions initiées par les moteurs de recherche ;

Il est également possible de créer ses propres règles de détection grâce au langage fourni par ModSecurity conçu pour faciliter l’analyse des transactions http. Nous disposons de variables et fonctions prédéfinies capables de décoder les flux chiffrés ou compressés pour normaliser les données avant leur traitement par les filtres. Il est possible d’attribuer un score à chaque anomalie ou de collecter des données de manière persistante (variables d’état) pour corréler les événements initiés depuis certaines adresses distantes et adopter la réponse appropriée.

Interopérabilité

ModSecurity fonctionne avec le serveur Web Apache.

Contexte d'utilisation dans mon laboratoire/service

ModSecurity est installé sur le serveur Web de notre laboratoire et protège le serveur des attaques les plus courantes... L'inspection des logs généré par le module permet de voir combien il est sollicité et stoppe un grand nombre de transactions illicites.

Limitations, difficultés, fonctionnalités importantes non couvertes

Après son installation, il requiert un minimum de travail d’adaptation pour personnaliser les règles de base, dont certaines peuvent éventuellement bloquer le fonctionnement d’applications.

Un système de liste blanche permet d'échapper au règles de modsecurity pour certains sites de confiance ou pour certaines parties d'un site Web (par exemple, calendrier ou interface d'administration d'un CMS).

On peut noter quelques cas de faux positifs, mais dans ce cas on dispose de fichiers de logs très détaillés permettant de distinguer les adresses IP incriminées, le nom du champ, le fichier de règles utilisé, la ligne et numéro de la règle qui ont "matché", et le motif détecté.

Dans certains cas, l’analyse des transactions http peut surcharger le serveur selon le dimensionnement initial. Aussi, par exemple, une utilisation avec une application de type reverse proxy sur une machine dédiée en entrée de site préviendra les risques de surcharge du serveur et permettra de protéger simultanément plusieurs sites Web.
Gardez toujours à l’esprit que ModSecurity n’est pas un produit infaillible : les règles de base sont accessibles à tous, y compris les personnes malintentionnées. Elles peuvent donc les étudier à loisir pour tenter de les contourner.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

ModSecurity est disponible sous la forme de paquet Debian depuis la version Squeeze (Debian 6.0.x). Attention, car les règles de sécurité fournies par défaut doivent être mises à jour : un script dédié est fourni dans le paquet.
ModSecurity est aussi disponible sous forme de paquetage pour Fedora.

Plates-formes

ModSecurity est disponible pour ces systèmes d’exploitation : Linux, Windows, Solaris, FreeBSD, OpenBSD, NetBSD, AIX, Mac OS X, and HP-UX.

Logiciels connexes

Apache

Environnement de développement
Type de structure associée au développement

ModSecurity est développé par Trustwave's SpiderLabs

Eléments de pérennité

Bénéficiant du soutien d’une communauté d’utilisateurs très efficace, le module ModSecurity a fini par supplanter certaines solutions commerciales.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)