CWE一覧に戻る
CWE-330

不十分なランダム値の使用

Use of Insufficiently Random Values
脆弱性 確定版
JA

予測不可能な数値に依存するセキュリティ・コンテキストにおいて、製品が不十分な乱数または値を使用している。

EN

The product uses insufficiently random numbers or values in a security context that depends on unpredictable numbers.

Scope: Confidentiality, Other / Impact: Other
Scope: Access Control, Other / Impact: Bypass Protection Mechanism; Other
Scope: Access Control / Impact: Bypass Protection Mechanism; Gain Privileges or Assume Identity
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.
Consider a PRNG that re-seeds itself as needed from high quality pseudo-random output sources, such as hardware devices.
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 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 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.
MITRE公式ページ — CWE-330