Falhas do tipo CWE-335

21 resultados

Uso incorreto de sementes em gerador de números pseudoaleatórios

Ocorre quando a aplicação inicializa um PRNG com uma semente previsível, fraca ou reutilizada, comprometendo a aleatoriedade dos números gerados. Isso expõe operações criptográficas, tokens de sessão e sorteios a predição ou reprodução por atacantes.

Exemplo

Um sistema gera tokens de sessão usando srand(time(NULL)) como semente: como time() avança apenas a cada segundo, um atacante próximo consegue adivinhar ou reproduzir o token. Ou um PRNG inicializado sempre com a mesma semente fixa gera a mesma sequência de números em cada execução.

Como mitigar

Use /dev/urandom, arc4random() ou APIs criptográficas do SO (CryptGenRandom no Windows, getrandom() no Linux) para semear o PRNG. Nunca use time(), PID ou dados previsíveis como semente; sempre reutilize a semente de uma única operação de entropia do sistema operacional.