CWE-330
Use of Insufficiently Random Values
AI Translation Available
The product uses insufficiently random numbers or values in a security context that depends on unpredictable numbers.
Status
stable
Abstraction
class
Likelihood
high
Affected Platforms
Technical Details
AI Translation
Common Consequences
confidentiality
other
access control
Impacts
other
bypass protection mechanism
gain privileges or assume identity
Detection Methods
black box
automated static analysis - binary or bytecode
manual static analysis - binary or bytecode
dynamic analysis with manual results interpretation
manual static analysis - source code
automated static analysis - source code
architecture or design review
Potential Mitigations
Phases:
architecture and design
implementation
testing
requirements
Descriptions:
•
Consider a PRNG that re-seeds itself as needed from high quality pseudo-random output sources, such as hardware devices.
•
Use products or modules that conform to FIPS 140-2 [REF-267] to avoid obvious entropy problems. Consult FIPS 140-2 Annex C ("Approved Random Number Generators").
•
Use a well-vetted algorithm that is currently considered to be strong by experts in the field, and select well-tested implementations with adequate length seeds.
In general, if a pseudo-random number generator is not advertised as being cryptographically secure, then it is probably a statistical PRNG and should not be used in security-sensitive contexts.
Pseudo-random number generators can produce predictable numbers if the generator is known and the seed can be guessed. A 256-bit seed is a good starting point for producing a "random enough" number.
•
Use automated static analysis tools that target this type of weakness. Many modern techniques use data flow analysis to minimize the number of false positives. This is not a perfect solution, since 100% accuracy and coverage are not feasible.
•
Use tools and techniques that require manual (human) analysis, such as penetration testing, threat modeling, and interactive tools that allow the tester to record and modify an active session. These may be more effective than strictly automated techniques. This is especially the case with weaknesses that are related to design and business rules.
Functional Areas
cryptography
authentication
session management