Стандартная программа отбора использует предсказуемый seed, делающий предсказуемый выход
Этот дефект происходит, когда вы используете случайные стандартные функции с непостоянным, но предсказуемым seed. Примерами предсказуемых генераторов seed является time
, gettimeofday
, и getpid
.
Когда вы используете предсказуемые значения seed в генерации случайных чисел, ваши случайные числа также предсказуемы. Хакер может разрушить вашу программу, если они знают, как ваша программа ведет себя.
Можно использовать различную функцию, чтобы сгенерировать менее предсказуемые seed.
Можно также использовать различный генератор случайных чисел, который не требует seed. Например, API-функция Windows® rand_s
отбирает себя по умолчанию. Это использует информацию от целой системы, например, системное время, идентификаторы потока, системный счетчик и кластеры памяти. Эта информация более случайна, и пользователь не может получить доступ к этой информации.
Некоторые стандартные случайные стандартные программы по сути криптографически слабы, и не должны использоваться в целях безопасности.
Группа: безопасность |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки: RAND_SEED_PREDICTABLE |
Удар: носитель |
ID CWE: 330, 337 |
Deterministic random output from constant seed
| Find defects (-checkers)
| Unsafe standard encryption function
| Vulnerable pseudo-random number generator