Limitação de taxa (Open Source)

O DefectDojo inclui limitação de taxa (rate limiting) na página de login para proteger contra ataques de força bruta, com tecnologia do Django Ratelimit.

Configuração

A limitação de taxa é configurada por meio das seguintes definições (veja Configuration para saber como aplicá-las):

DD_RATE_LIMITER_ENABLED=(bool, True),
DD_RATE_LIMITER_RATE=(str, '5/m'),
DD_RATE_LIMITER_BLOCK=(bool, True),
DD_RATE_LIMITER_ACCOUNT_LOCKOUT=(bool, True),

Rate Limit (DD_RATE_LIMITER_RATE)

Define a frequência com que as requisições serão limitadas. Unidades suportadas:

  • Segundos: 1s
  • Minutos: 5m
  • Horas: 100h
  • Dias: 2400d

Consulte a documentação de taxas do Django Ratelimit para opções de configuração estendidas.

Block Requests (DD_RATE_LIMITER_BLOCK)

Por padrão, a limitação de taxa registra as ocorrências, mas não bloqueia as requisições. Definir DD_RATE_LIMITER_BLOCK como True bloqueará ativamente todas as requisições recebidas assim que a taxa configurada for excedida.

Account Lockout (DD_RATE_LIMITER_ACCOUNT_LOCKOUT)

Quando habilitado, um usuário cujas tentativas de login acionarem o limite de taxa precisará redefinir sua senha antes de conseguir fazer login novamente. Isso reduz o risco de comprometimento de credenciais durante um ataque de força bruta.

Comportamento com múltiplos processos

Ao executar com múltiplos processos uwsgi, o pacote de limitação de taxa usa um cache baseado em memória, local a cada processo. Os contadores de limite de taxa não são compartilhados entre processos nessa configuração padrão.