Scanner ReDoS pour regex

Analyse des regex pour le risque de backtracking catastrophique, simule des entrees malveillantes et propose des remplacements plus surs

Collez une expression reguliere par ligne et ajustez les flags, la longueur maximale d entree malveillante et le nombre de simulations. L outil combine heuristiques statiques et simulation de near-miss inputs.

Exemples de résultats

1 Exemples

Verifier si un regex de login souffre de backtracking catastrophique

Note les motifs a quantificateurs imbriques et propose un remplacement plus sur.

{
  "summary": {
    "patterns": 2,
    "critical": 1
  },
  "results": [
    {
      "pattern": "(a+)+$",
      "riskLevel": "critical"
    }
  ]
}
Voir paramètres d'entrée
{ "regexList": "(a+)+$\n^(\\w+\\s?)*$", "flags": "", "maxEvilInputLength": 32, "simulationRuns": 200 }

Points clés

Catégorie
Sécurité et validation
Types d’entrée
textarea, text, number
Type de sortie
json
Couverture des échantillons
4
API disponible
Yes

Vue d’ensemble

Le Scanner ReDoS pour regex est un outil de sécurité conçu pour analyser vos expressions régulières et détecter les risques de backtracking catastrophique. En combinant des heuristiques statiques et la simulation d'entrées malveillantes (near-miss inputs), il évalue la vulnérabilité de vos motifs et vous propose des alternatives plus sûres pour protéger vos applications contre les attaques par déni de service (ReDoS).

Quand l’utiliser

  • Lors de l'audit de sécurité du code source pour identifier les expressions régulières vulnérables avant le déploiement en production.
  • Lors de l'acceptation d'expressions régulières fournies par les utilisateurs ou de la validation de champs de saisie complexes.
  • Pour optimiser les performances des regex existantes en vérifiant leur temps d'exécution face à des chaînes de caractères malveillantes.

Comment ça marche

  • Collez une ou plusieurs expressions régulières dans le champ principal, à raison d'une par ligne, sans les barres obliques (slashes) d'encadrement.
  • Définissez les options facultatives telles que les drapeaux (flags), la longueur maximale de l'entrée malveillante et le nombre de tours de simulation.
  • L'outil exécute une analyse statique et génère des chaînes de test spécifiques pour mesurer le temps d'exécution et détecter les boucles infinies.
  • Consultez le rapport JSON généré pour découvrir le niveau de risque de chaque regex et obtenir des suggestions de réécriture sécurisées.

Cas d’usage

Validation de la sécurité des formulaires d'inscription (emails, mots de passe, numéros de téléphone) dans les applications web.
Analyse des règles de routage ou de filtrage basées sur des regex dans les pare-feu applicatifs (WAF) ou les proxys.
Intégration dans les processus de revue de code (code review) pour s'assurer que les nouvelles regex n'introduisent pas de failles de performance.

Exemples

1. Audit d'une regex de validation de login

Développeur Backend
Contexte
Un développeur souhaite s'assurer que la regex utilisée pour valider les identifiants des utilisateurs ne peut pas être exploitée pour faire tomber le serveur d'authentification.
Problème
Vérifier si une regex contenant des groupes répétés est vulnérable au backtracking catastrophique.
Comment l’utiliser
Collez la regex `^(\w+\s?)*$` dans la liste, laissez les drapeaux vides, et lancez l'analyse avec 200 tours de simulation.
Configuration d’exemple
regexList: "^(\w+\s?)*$"
maxEvilInputLength: 32
simulationRuns: 200
Résultat
Le rapport JSON identifie la regex comme ayant un niveau de risque 'critical' en raison de quantificateurs imbriqués et propose une alternative sécurisée.

2. Vérification d'un lot de regex de filtrage

Ingénieur Sécurité
Contexte
L'équipe de sécurité doit auditer une liste d'expressions régulières utilisées dans le pare-feu applicatif pour bloquer les requêtes malveillantes.
Problème
Évaluer rapidement plusieurs regex pour s'assurer qu'aucune d'entre elles ne ralentit le traitement des requêtes légitimes.
Comment l’utiliser
Collez toutes les regex dans le champ principal (une par ligne), définissez la longueur maximale d'entrée malveillante sur 64 pour des tests plus poussés, et exécutez le scan.
Configuration d’exemple
regexList: "(a+)+$\n^[0-9]+[a-z]+$"
maxEvilInputLength: 64
simulationRuns: 500
Résultat
L'outil génère un résumé indiquant quelles regex sont sûres et lesquelles présentent un risque de ReDoS, permettant à l'ingénieur de cibler ses corrections.

Tester avec des échantillons

regex

FAQ

Qu'est-ce qu'une attaque ReDoS ?

Une attaque ReDoS (Regular Expression Denial of Service) exploite des expressions régulières mal conçues en leur fournissant des chaînes spécifiques qui provoquent un temps de traitement exponentiel, bloquant ainsi le serveur.

Comment l'outil détecte-t-il le backtracking catastrophique ?

Il utilise une combinaison d'analyse statique pour repérer les quantificateurs imbriqués et de tests dynamiques en simulant des entrées malveillantes (near-miss) pour mesurer les temps d'exécution.

Puis-je tester plusieurs regex en même temps ?

Oui, vous pouvez coller une liste d'expressions régulières dans le champ principal, en veillant à n'en mettre qu'une seule par ligne.

À quoi sert le paramètre de longueur maximale d'entrée malveillante ?

Il définit la taille maximale de la chaîne de caractères générée pour tester la regex. Une chaîne plus longue permet de mieux mettre en évidence les ralentissements exponentiels.

L'outil corrige-t-il automatiquement mes regex ?

L'outil ne modifie pas votre code directement, mais il fournit des suggestions de réécriture plus sûres dans le rapport JSON pour vous aider à corriger les vulnérabilités.

Documentation de l'API

Point de terminaison de la requête

POST /fr/api/tools/redos-regex-scanner

Paramètres de la requête

Nom du paramètre Type Requis Description
regexList textarea Oui -
flags text Non -
maxEvilInputLength number Non -
simulationRuns number Non -

Format de réponse

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
Données JSON: Données JSON

Documentation de MCP

Ajoutez cet outil à votre configuration de serveur MCP:

{
  "mcpServers": {
    "elysiatools-redos-regex-scanner": {
      "name": "redos-regex-scanner",
      "description": "Analyse des regex pour le risque de backtracking catastrophique, simule des entrees malveillantes et propose des remplacements plus surs",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=redos-regex-scanner",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Vous pouvez chaîner plusieurs outils, par ex.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, max 20 outils.

Si vous rencontrez des problèmes, veuillez nous contacter à [email protected]