Weaknesses of type CWE-385

43 results

Canal de tempo encoberto

É quando um atacante consegue extrair informações sensíveis observando o tempo que uma operação leva para ser executada. O código vaza dados através de variações no tempo de resposta — por exemplo, validar uma senha comparando caractere por caractere faz a resposta demorar diferente dependendo de quantos caracteres estão corretos, permitindo que o atacante adivinhe a senha testando tempos.

Example

Um serviço de autenticação compara duas strings com um loop que para no primeiro caractere diferente. Se a senha correta é 'senha123' e o atacante testa 'aaaaaa', a comparação falha rápido; se testa 'senhas00', falha mais lentamente. Repetindo esse padrão, o atacante descobre a senha caractere por caractere medindo latência.

How to mitigate

Use funções de comparação que levam tempo constante (constant-time comparison), independente do conteúdo — em Java use `MessageDigest.isEqual()`, em Python use `hmac.compare_digest()`. Também implemente rate limiting e monitore padrões anormais de tentativas de acesso.