Стандартная программа отбора использует постоянный seed, делающий детерминированный выход
Этот дефект происходит, когда вы используете стандартные функции генератора случайных чисел, которые имеют детерминированный выход, учитывая постоянный seed.
Средство проверки обнаруживает эту проблему со следующими функциями генератора случайных чисел:
C Стандартные Библиотечные функции, такие как srand
, srandom
и initstate
OpenSSL функционирует, такие как RAND_seed
и RAND_add
Библиотечные функции Стандарта C++, такие как std::linear_congruential_engine<>::seed()
и std::mersenne_twister_engine<>::seed()
(и также конструкторы этих шаблонов классов)
С постоянными seed функции генератора случайных чисел производят тот же выход каждый раз, когда ваша программа запущена. Хакер может разрушить вашу программу, если они знают, как ваша программа ведет себя.
Используйте различную случайную стандартную функцию или используйте непостоянный seed.
Некоторые стандартные случайные стандартные программы по сути криптографически слабы, и не должны использоваться для целей безопасности.
Группа: безопасность |
Язык: C | C++ |
Значение по умолчанию: Off |
Синтаксис командной строки: RAND_SEED_CONSTANT |
Удар: Средняя |
ID CWE: 330, 336 |
Find defects (-checkers)
| Predictable random output from predictable seed
| Unsafe standard encryption function
| Vulnerable pseudo-random number generator