Анализатор обнаружил использование случайных чисел, созданных небезопасным генератором, в контексте потенциально чувствительных данных.
Уязвимость такого типа относится к следующим категориям OWASP Top 10:
Рассмотрим пример:
Random random = new Random();
long token = random.nextLong() & Long.MAX_VALUE;
HttpCookie cookie = new HttpCookie("token", Long.toString(token)); // <=
В примере генерируется токен, который может быть использован для сохранения и восстановления сессии пользователя. Для его создания используется обычный генератор псевдослучайных чисел, который работает предсказуемым способом. Если сервер использует токен как ключ доступа к определённому ресурсу или действию, злоумышленник может проанализировать получаемые токены и предопределить следующее значение, тем самым получая доступ к сессии и правам другого пользователя.
Потенциальную уязвимость можно исправить, используя криптографически стойкий генератор случайных чисел:
SecureRandom secureRandom = new SecureRandom();
long token = secureRandom.nextLong() & Long.MAX_VALUE;
HttpCookie cookie = new HttpCookie("token", Long.toString(token));
Также следует применять встроенные механизмы используемых фреймворков, которые исключают необходимость генерировать такие токены вручную.
Диагностическое правило классифицируется как:
|
Была ли полезна эта страница документации?
Мы ответим вам на:
Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок: