Si vous sécurisez Nginx avec Mod Security, vous aimeriez que l’ensemble de règles de base (CRS) de l’OWASP soit activé pour vous protéger contre les menaces suivantes.

  • Protection contre les violations du protocole HTTP
  • Attaques web courantes
  • Protection contre les robots, les robots d’indexation et les activités malveillantes
  • Protection contre les chevaux de Troie
  • Protection contre les fuites d’informations
  • Attaques de type “Cross Site Scripting
  • Attaques par injection SQL

Êtes-vous d’accord?

Dans mon article précédent, j’ai expliqué comment installer Nginx et Mod Security et comme promis voici comment vous pouvez les configurer avec OWASP CRS pour une meilleure sécurité.

ModSecurity est un pare-feu d’application Web(WAF) open source, et par défaut, il est configuré pour détecter seulement. Cela signifie que vous devez activer la configuration nécessaire(comme suit) pour commencer à protéger vos sites web.

Téléchargez ModSecurity CRS

  • Téléchargez le dernier fichier zip CRS à partir du lien suivant et transférez-le sur le serveur

https://github.com/SpiderLabs/owasp-modsecurity-crs/zipball/master

  • décompressez le fichier
unzip SpiderLabs-owasp-modsecurity-crs-2.2.9-26-gf16e0b1.zip
  • Copiez ce qui suit dans le dossier conf de nginx
modsecurity_crs_10_setup.conf.example
base_rules

Configurer Nginx pour intégrer OWASP ModSecurity CRS

Puisque vous avez décidé d’utiliser le CRS OWASP, vous devez fusionner le fichier conf inclus dans le CRS OWASP de SpiderLabs, que vous venez de copier (modsecurity_crs_10_setup.conf.example ) dans le dossier nginx.

Nginx ne supporte pas plusieurs directives ModSecurityConfig comme Apache, vous devez donc rassembler toutes les règles conf dans un seul fichier.

C’est ce que nous allons faire..

  • Ajoutez base_rules & modsecurity_crs_10_setup.conf.example au fichier modsecurity.conf
cat modsecurity_crs_10_setup.conf.example base_rules/*.conf >>/usr/local/nginx/conf/modsecurity.conf

Vous devez également copier tous les fichiers *.data dans le dossier conf de nginx

cp base_rules/*.data /usr/local/nginx/conf/

Vérification rapide :

Assurez-vous d’avoir ajouté les directives ModSecurityEnabled et ModSecurityConfig dans le fichier nginx.conf sous location. Si ce n’est pas le cas, ajoutez-les comme ci-dessous.

location / {
ModSecurityEnabled on ;
ModSecurityConfig modsecurity.conf ;
}
  • Redémarrez Nginx

En faisant tout ce qui précède, vous avez réussi à intégrer OWASP CRS dans Mod Security sur Nginx. Il est temps de faire les petites retouches essentielles.

Configurer l’ensemble de règles OWASP Core pour commencer à protéger

Dans cette section, toutes les modifications seront effectuées dans le fichier modsecurity.conf, n’oubliez donc pas de faire une sauvegarde.

Première chose

Activez la journalisation d’audit

Il est essentiel de générer des journaux, afin que vous sachiez ce qui est bloqué. Ajoutez la directive SecAuditLog si elle n’existe pas.

SecAuditLog /usr/local/nginx/logs/modsec_audit.log

Redémarrez Nginx, et vous verrez le fichier journal généré

-rw-r----- 1 root root 0 May 22 07:54 /usr/local/nginx/logs/modsec_audit.log

Activez le moteur de règles de sécurité

Commencez la protection de Mod Security en activant le moteur de règles comme suit

SecRuleEngine On

Activer l’action par défaut comme Deny

Configurez l’action par défaut en tant que “blocage” pour toute demande correspondant aux règles.

SecDefaultAction "phase:1,deny,log"

Les trois configurations ci-dessus sont essentielles et ModSecurity est maintenant prêt à exécuter l’action et à protéger.

Voici une autre configuration qui pourrait vous intéresser.

Changez la bannière d’en-tête du serveur

La configuration par défaut de Nginx expose les informations du serveur avec sa version, ce qui est fortement recommandé de les masquer si vous travaillez dans un environnement PCI-DSS.

Vous pouvez également le faire sans Mod Security comme expliqué ici.

En-tête par défaut :

nginx-default-header

Vous pouvez le faire rapidement en ajoutant une ligne.

SecServerSignature GeekFlare

Et maintenant, cela ressemble à :

nginx-modsecurity-header

J’espère que les instructions ci-dessus vous aideront à intégrer l’OWASP Core Rule Set au serveur web Nginx pour une meilleure protection.