Scanner ReDoS para regex

Verifica regex quanto a backtracking catastrofico, simula entradas maliciosas e sugere reescritas mais seguras

Cole um regex por linha e ajuste flags, tamanho maximo da entrada maliciosa e numero de simulacoes. O scanner combina heuristicas estaticas e benchmarking de near-miss inputs.

Exemplos de resultados

1 Exemplos

Verificar se um regex de login sofre backtracking catastrofico

Pontua quantificadores aninhados, simula entradas maliciosas e sugere reescritas.

{
  "summary": {
    "patterns": 2,
    "critical": 1
  },
  "results": [
    {
      "pattern": "(a+)+$",
      "riskLevel": "critical"
    }
  ]
}
Ver parâmetros de entrada
{ "regexList": "(a+)+$\n^(\\w+\\s?)*$", "flags": "", "maxEvilInputLength": 32, "simulationRuns": 200 }

Fatos principais

Categoria
Segurança e validação
Tipos de entrada
textarea, text, number
Tipo de saída
json
Cobertura de amostras
4
API disponível
Yes

Visão geral

O Scanner ReDoS para regex é uma ferramenta de segurança projetada para analisar expressões regulares e identificar riscos de backtracking catastrófico. Ao combinar heurísticas estáticas com simulações de entradas maliciosas (near-miss inputs), ele avalia a vulnerabilidade do seu código a ataques de Negação de Serviço por Expressão Regular (ReDoS) e sugere reescritas mais seguras para otimizar o desempenho e a estabilidade da sua aplicação.

Quando usar

  • Durante revisões de código de segurança para validar expressões regulares antes de enviá-las para o ambiente de produção.
  • Ao auditar bibliotecas de terceiros ou códigos legados em busca de vulnerabilidades ocultas de ReDoS.
  • Para testar e otimizar padrões complexos de regex que processam entradas não confiáveis fornecidas por usuários.

Como funciona

  • Cole uma ou mais expressões regulares na área de texto principal, inserindo um padrão por linha sem as barras delimitadoras.
  • Opcionalmente, defina as flags (como 'i' ou 'm'), o tamanho máximo da entrada maliciosa e o número de execuções da simulação.
  • A ferramenta executa uma análise estática para encontrar antipadrões e realiza um benchmark simulando entradas quase correspondentes.
  • O resultado é gerado em formato JSON, detalhando o nível de risco, o tempo de execução no pior cenário e sugestões de reescrita.

Casos de uso

Validação de formulários web onde expressões regulares complexas processam dados do usuário, como e-mails ou senhas.
Filtros de segurança em firewalls de aplicação (WAF) que dependem de regex para bloquear cargas úteis maliciosas.
Processamento de logs e extração de dados em servidores backend, garantindo que strings longas não travem o serviço.

Exemplos

1. Auditoria de Regex de Validação de E-mail

Engenheiro de Segurança
Contexto
A equipe de desenvolvimento criou um regex complexo para validar e-mails, mas há suspeitas de que ele possa causar lentidão no servidor se receber entradas maliciosas.
Problema
Verificar se o regex de e-mail possui quantificadores aninhados vulneráveis a ReDoS.
Como usar
Insira o regex de e-mail no campo 'Lista de regex', defina o tamanho da entrada maliciosa para 64 e execute a simulação.
Configuração de exemplo
{
  "regexList": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$",
  "maxEvilInputLength": 64,
  "simulationRuns": 500
}
Resultado
O scanner identifica o nível de risco e sugere a remoção de agrupamentos redundantes para evitar backtracking excessivo.

2. Teste de Regex de Login Legado

Desenvolvedor Backend
Contexto
Um sistema antigo usa um regex com múltiplos quantificadores '+' e '*' para validar nomes de usuário com espaços.
Problema
Identificar se o padrão de login pode travar a API de autenticação sob ataque.
Como usar
Cole o padrão na lista, adicione a flag 'i' e mantenha as configurações padrão de 32 caracteres e 200 simulações.
Configuração de exemplo
{
  "regexList": "^(\\w+\\s?)*$",
  "flags": "i",
  "maxEvilInputLength": 32,
  "simulationRuns": 200
}
Resultado
O relatório JSON classifica o risco como 'crítico', mostrando o tempo de execução exponencial e sugerindo uma alternativa segura sem quantificadores aninhados.

Testar com amostras

regex

FAQ

O que é ReDoS?

ReDoS (Regular Expression Denial of Service) é um ataque onde uma expressão regular mal construída consome recursos excessivos da CPU ao tentar processar uma entrada específica, causando lentidão ou travamento do sistema.

Como a ferramenta detecta o backtracking catastrófico?

Ela utiliza uma combinação de análise estática para identificar quantificadores aninhados e simulações dinâmicas com entradas maliciosas geradas para medir o tempo de execução no pior cenário.

Posso testar várias expressões regulares de uma vez?

Sim, basta colar uma expressão regular por linha no campo 'Lista de regex' para que a ferramenta analise todas em lote.

O que significa o tamanho máximo da entrada maliciosa?

É o limite de caracteres da string de ataque gerada pela ferramenta para testar o desempenho do seu regex. O valor padrão é 32, podendo chegar a 256.

A ferramenta corrige o meu regex automaticamente?

Ela não altera seu código diretamente, mas o relatório JSON de saída inclui sugestões de reescrita mais seguras para mitigar o risco encontrado.

Documentação da API

Ponto final da solicitação

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

Parâmetros da solicitação

Nome do parâmetro Tipo Requerido Descrição
regexList textarea Sim -
flags text Não -
maxEvilInputLength number Não -
simulationRuns number Não -

Formato de resposta

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

Documentação de MCP

Adicione este ferramenta à sua configuração de servidor MCP:

{
  "mcpServers": {
    "elysiatools-redos-regex-scanner": {
      "name": "redos-regex-scanner",
      "description": "Verifica regex quanto a backtracking catastrofico, simula entradas maliciosas e sugere reescritas mais seguras",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=redos-regex-scanner",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Você pode encadear várias ferramentas, ex: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, máx 20 ferramentas.

Se você encontrar algum problema, por favor, entre em contato conosco em [email protected]