Pare-feu web
Comment le pare-feu web d'InfraFence note chaque visiteur à partir des journaux d'accès - types d'attaque et points, décroissance, niveaux d'action, règles de fréquence, règles personnalisées et provenance des journaux.
Dernière mise à jour:
Le pare-feu web lit les journaux d'accès de vos serveurs web, attribue un score à chaque adresse de visiteur et bannit l'adresse au niveau du pare-feu quand le score devient assez élevé. Il fonctionne avec tout serveur web qui écrit un journal d'accès, ne demande aucune modification de sa configuration et n'ajoute aucune latence aux requêtes.
D'où viennent les journaux
L'agent trouve les journaux d'accès de lui-même, dans cet ordre :
WEB_LOG_PATH, s'il est défini (il remplace alors la détection) ;- la configuration de nginx et d'Apache (
access_log,CustomLog), les hôtes virtuels OpenLiteSpeed, les domlogs de cPanel ; - les conteneurs web de l'hôte (voir Docker) ;
- les journaux par domaine de Plesk, ISPConfig, DirectAdmin, CyberPanel et d'autres, et les chemins habituels de nginx, Apache, LiteSpeed et Caddy.
Il recherche à nouveau toutes les 5 minutes, ce qui lui permet de prendre en compte les nouveaux sites. Les requêtes de fichiers statiques (CSS, JavaScript, images, polices) ne sont pas notées, et les adresses privées sont ignorées.
Types d'attaque et points
| Type d'attaque | Points |
|---|---|
| Exécution de code à distance, web shell, Shellshock, user agent de scanner | 50 |
| Injection SQL, SSRF, exploit web, honeypot | 40 |
| Path traversal, injection d'en-têtes, force brute WordPress ou CMS | 30 |
XSS, sonde .env, abus de XML-RPC |
25 |
| Sondage de fichiers de configuration | 20 |
| Rafale de 404 | 15 |
Les user agents de scanners comprennent sqlmap, nikto, nmap, masscan, wpscan, gobuster, nuclei, acunetix et nessus. Le catalogue intégré complet, 109 motifs, est publié avec chaque version sous le nom waf-catalog.json, et la page Pare-feu web liste chaque motif que l'agent applique.
Règles de fréquence
Certaines attaques sont une question de volume. Ces règles ajoutent leurs points quand une adresse dépasse le seuil dans la fenêtre de temps :
| Règle | Seuil par défaut | Fenêtre |
|---|---|---|
| Connexion WordPress | 10 | 2 minutes |
admin-ajax.php de WordPress sans session |
10 | 30 secondes |
| XML-RPC | 5 | 1 minute |
| Connexion Drupal, connexion Joomla | 5 | 30 secondes |
| Recherche de plugins | 5 | 5 minutes |
| Rafale de 404 | 15 | 5 minutes |
Score et actions
Les scores diminuent de 5 points par minute, si bien qu'une requête isolée un peu étrange finit par s'effacer. Le score détermine le niveau :
| Score | Niveau | Ce qui se passe |
|---|---|---|
| 30 | observer | Signalé comme événement d'information. |
| 60 | ralentir | Signalé comme avertissement. |
| 80 | bloquer | Banni au niveau du pare-feu, signalé comme critique. |
| 100 | bannir au pare-feu | Banni au niveau du pare-feu, signalé comme critique. |
Un bannissement dure ce qu'indique Paramètres › Agent › Durée des bannissements, comme un bannissement SSH. Une adresse que ModSecurity a déjà signalée n'est pas notée une seconde fois.
Modifier les règles
Sur la page Pare-feu web (propriétaires et admins ; les membres peuvent la consulter) :
- par type d'attaque : les Points, un Seuil pour les règles de fréquence, et le mode : Actif, Détecter seulement (signalé, jamais banni) ou Désactivé ;
- Schémas intégrés : désactivez individuellement les motifs qui provoquent des faux positifs ;
- Règles personnalisées : un motif en texte simple ou en expression régulière, comparé à l'URL, au User-Agent ou au Referer, et noté comme le type d'attaque de votre choix. Un chemin leurre noté comme honeypot piège les scanners. Les expressions régulières utilisent la syntaxe RE2, sans distinction de casse, et le champ Tester avec essaie un motif avant que vous ne l'enregistriez.
Enregistrer les réglages WAF envoie les modifications ; les serveurs les appliquent en quelques secondes.
Mode surveillance
Avec le Mode surveillance activé, tous les types sont en détection seule : les scores et les événements continuent, rien n'est banni.
Pour bloquer à l'intérieur du serveur web, dès la première requête, voir ModSecurity.
