Fallos del tipo CWE-335

21 resultados

Uso incorreto de seeds em gerador de números pseudoaleatórios (PRNG)

Ocorre quando a aplicação inicializa um PRNG com um seed previsível ou insuficientemente aleatório (ex: timestamp, PID do processo, ou valor fixo), em vez de usar uma fonte de entropia criptográfica. Isso torna a sequência de números gerados previsível, comprometendo qualquer mecanismo que dependa dessa aleatoriedade, como tokens de sessão, chaves criptográficas ou sorteios.

Ejemplo

Um aplicativo gera tokens de redefinição de senha usando srand(time(NULL)) seguido de rand(). Um atacante consegue prever o token porque sabe o horário aproximado em que foi gerado e pode testar poucos valores.

Cómo mitigar

Use sempre /dev/urandom (Linux/Unix), getrandom() ou equivalentes do SO para obter entropia real; em código criptográfico, utilize bibliotecas específicas (como OpenSSL, Java SecureRandom, Python secrets). Nunca use time(), PIDs ou valores fixos como seed em contextos de segurança.