Falhas do tipo CWE-385
41 resultadosCanal de Tempo Encoberto
É quando um atacante consegue extrair informações sensíveis observando o tempo que uma operação leva para completar. O código vaza dados através de diferenças mensuráveis de latência — por exemplo, validar senha caractere por caractere toma mais tempo se o primeiro caractere estiver correto, revelando a senha bit a bit.
Um servidor compara uma senha fornecida com a armazenada usando loop simples: se primeiro caractere falha, para imediatamente; se acerta, continua. Um atacante mede o tempo de resposta e deduz qual caractere está certo observando quando a requisição demora mais — vazando a senha sem nunca vê-la diretamente.
Use comparação de tempo constante para dados sensíveis (funções tipo `crypto.timingSafeEqual` em Node.js ou equivalentes). Implemente mascaramento de tempo: adicione delays aleatórios ou normalize o tempo de processamento independente do resultado para impedir que diferenças mensuráveis apareçam.