V2.5.1 Credential Recovery
Requirement:#
Verify that a system generated initial activation or recovery secret is not sent in clear text to the user. (C6)
Explanation:#
Программное обеспечение содержит механизм, с помощью которого пользователи могут восстановить или изменить свои пароли, не зная исходного пароля, но этот механизм слаб.
Приложение обычно имеет механизм, который предоставляет пользователю возможность получить доступ к своей учетной записи в случае, если он забудет свой пароль. Очень часто механизм восстановления пароля слаб, что повышает вероятность того, что лицо, не являющееся законным пользователем системы, сможет получить доступ к учетной записи этого пользователя. Слабые схемы восстановления пароля полностью подрывают надежную схему аутентификации по паролю.
Эта слабость может заключаться в том, что контрольный вопрос слишком легко угадать или найти ответ на него (например, потому что вопрос слишком распространен или ответы можно найти в социальных сетях). Или может быть уязвимость реализации в коде механизма восстановления пароля, которая может, например, обманом заставить систему отправить новый пароль по электронной почте на учетную запись электронной почты, отличную от учетной записи пользователя. Частота сбросов паролей может не регулироваться, поэтому злоумышленник может отказать в обслуживании законному пользователю, если злоумышленник попытается восстановить свой пароль в быстрой последовательности. Система может отправить исходный пароль пользователю, а не создавать новый временный пароль. Таким образом, функция восстановления пароля, если она не будет тщательно спроектирована и внедрена, часто может стать системной.
Remediation:#
Чтобы убедиться, что сгенерированный системой начальный секрет активации или восстановления не отправляется пользователю в виде открытого текста, можно выполнить следующие действия:
- Мониторинг передачи секрета: Контролируйте передачу секрета с сервера пользователю, чтобы убедиться, что он передается безопасно. Это можно сделать с помощью инструментов мониторинга сети или просмотрев файлы журналов.
- Проверьте методы шифрования: убедитесь, что передача секрета зашифрована с использованием безопасного метода шифрования, такого как SSL/TLS. Это можно проверить, просмотрев сертификаты шифрования, используемые во время передачи.
- Проверьте хранение секрета: проверьте, как секрет хранится на сервере и в учетной записи пользователя, чтобы убедиться, что он хранится надежно и зашифрован.
- Проведите тестирование на проникновение: проведите тестирование на проникновение, чтобы проверить наличие уязвимостей в системе и убедиться, что секрет не передается в открытом виде.
- Просмотрите системную документацию: просмотрите системную документацию, чтобы убедиться, что безопасная передача и хранение секрета четко задокументированы и что приняты все меры безопасности.
Выполняя эти шаги, вы можете гарантировать, что сгенерированный системой начальный секрет активации или восстановления не будет отправлен пользователю в открытом виде и защищен от несанкционированного доступа.