Falhas do tipo CWE-332

5 resultados

Entropia insuficiente em gerador de números pseudo-aleatórios

Um gerador de números pseudo-aleatórios (PRNG) usa uma seed (semente) com pouca entropia — dados aleatórios insuficientes para inicializar o algoritmo. Isso torna a sequência de números previsível, comprometendo funções críticas como geração de tokens, chaves criptográficas e IDs de sessão.

Exemplo

Uma aplicação usa apenas o timestamp do sistema como seed para gerar tokens de autenticação. Como o relógio tem baixa resolução e o atacante conhece o horário aproximado, consegue enumerar todos os tokens possíveis e assumir contas de outros usuários.

Como mitigar

Use PRNGs criptograficamente seguros (como `os.urandom()` em Python ou `SecureRandom` em Java) e inicialize-os com fontes de entropia do sistema operacional (`/dev/urandom` no Linux). Nunca use timestamp, PIDs ou valores previsíveis como seed.