Weaknesses of type CWE-385
41 resultsCanal 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.
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.
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.