Fallos del tipo CWE-339
2 resultadosEspaço pequeno de sementes em gerador pseudo-aleatório
A fraqueza ocorre quando um gerador de números pseudo-aleatórios (PRNG) é inicializado com um conjunto muito pequeno de possíveis sementes, reduzindo drasticamente a entropia inicial. Um atacante que conhece ou consegue adivinhar a semente pode prever toda a sequência de números 'aleatórios' gerados, comprometendo criptografia, tokens de sessão, IDs únicos ou qualquer mecanismo que dependa dessa aleatoriedade.
Um sistema de autenticação usa um PRNG inicializado apenas com a hora do sistema em segundos como semente para gerar tokens de reset de senha. Como existem apenas ~86.400 valores possíveis por dia, um atacante consegue testar todas as sementes viáveis em poucos segundos e forjar tokens válidos.
Use uma fonte de entropia de alta qualidade para inicializar o PRNG, como /dev/urandom no Linux, funções criptográficas do SO (Windows BCRYPT), ou bibliotecas modernas (Java SecureRandom, Python secrets). Combine múltiplas fontes de incerteza (tempo do sistema, estados internos, dados do SO) ao invés de uma única sembiante fraca.