cisec : détecte et bannit les scanners de vulnérabilités

Les scanners de vulnérabilité de site web sont des logiciels qui analysent les pages d’un site web (“crawling”), puis effectuent des requêtes HTTP en ajoutant des codes malicieux dans l’URL (ainsi que dans les variables POST, etc.) et analysent le contenu de la page obtenue pour détecter si le code malicieux a été filtré ou non.

L’utilisation de scanners est intéressante dans le cadre de l’audit de sécurité d’un site (à noter que l’usage non autorisé d’un de ces logiciels sur un site est susceptible de relever de l’article 323 du code pénal).

En revanche, ces scanners de vulnérabilité sont dangereux lorsque ce sont des pirates qui les utilisent.

Par ailleurs, certains scanners sollicitent fortement le serveur (exemple : 2 millions de requêtes en 15 heures de scan). Enfin, les variations d’URL, effectuées par les scanners de vulnérabilité, remplissent inutilement le cache de SPIP (exemple : 59 900 fichiers ajoutés dans le cache de second niveau SPIP au bout d’une heure de scan).

Les objectifs de ce plugin sont les suivants :

  • Ne pas donner les véritables pages au scanner de vulnérabilité, afin de l’empêcher de conduire ses recherches de vulnérabilité.
  • Réduire le temps de traitement des pages demandées par le scanner de vulnérabilité (une fois détecté).
  • Diminuer l’impact, sur le cache de SPIP, des variations d’URL envoyées par le scanner de vulnérabilité.

Le bannissement est temporaire, afin de limiter l’impact d’éventuels faux positifs. Une réponse compréhensible avec un décompte de temps est affichée en cas de bannissement.

Différentes mesures effectuées, montrent que les gains obtenus avec le plugin CISEC, lors d’un scan de vulnérabilité, sont conséquents (cf. documentation ci-jointe).

Le périmètre porte sur le site public uniquement. Le périmètre ne porte pas sur les attaques de type spam (un plugin pour SPIP existe déjà sur ce sujet), ni sur les attaques de type déni de service ou déni de service distribué.

Pour plus de détails, se reporter à la documentation ci-jointe.

Version 1.2 du plugin CISEC

  • Ajout de la raison du bannissement dans le courriel, qui est automatiquement envoyé, ainsi que dans le fichier de log "cisec_detail.log".
  • Si la constante _CISEC_EMAIL est définie dans un fichier d’options, avec comme valeur une adresse email avec une syntaxe valide, le courriel sera envoyé à cette adresse email (et non pas à l’adresse du webmestre qui figure dans le menu configuration de SPIP).
    Exemple : define(’_CISEC_EMAIL’,’assistance@test.fr’) ;
  • Possibilité d’augmenter les seuils (mais pas de les diminuer) via deux constantes dans un fichier d’options :
    -  Au moins N POST d’une même adresse IP pendant une seconde.
    -  Au moins M POST d’une même adresse IP pendant 10 secondes.
    Exemple :
    define(’_CISEC_MAX_POST_EN_1_S’,5) ;
    define(’_CISEC_MAX_POST_EN_10_S’,15) ;

Version 1.3 du plugin CISEC

Ajout d’une règle qui rejette les tentatives d’injection qui utilisent dans l’URL une double occurrence de page=recherche

Version 1.5 du plugin CISEC

Apporte la compatibilité avec PHP 8.0 et 8.1, ainsi que la compatibilité avec SPIP 4.1.

Version 1.6 du plugin CISEC

Apporte la compatibilité avec SPIP 4.2.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom