Уязвимости, связанные с аутентификацией, ранее известные как “Broken Authentication”, стали значительной проблемой. В эту категорию теперь входят слабые места в процессе идентификации. Примечательными уязвимостями в этой области являются CWE-297, CWE-287 и CWE-384.
Правильное подтверждение личности пользователя, управление аутентификацией и сеансами являются важными мерами для защиты от атак. Приложения могут иметь уязвимости в аутентификации, если они:
- Разрешают автоматические атаки, такие как stuffing учетных данных, когда злоумышленник использует список действительных имен пользователей и паролей.
- Разрешают атаки перебором паролей или аналогичные автоматические атаки.
- Используют стандартные, слабые или легко угадываемые пароли, такие как “Password1” или “admin/admin”.
- Используют недостаточно надежные процессы восстановления пароля или забытого пароля, основанные на небезопасных “знании на основе ответов”.
- Хранят пароли в открытом виде, зашифрованные или в слабохешированных форматах (см. A02:2021 – Ошибки в криптографии).
- Отсутствуют или имеют неэффективные механизмы аутентификации с несколькими факторами.
- Отображают идентификаторы сеансов в URL-адресах.
- Повторно используют идентификаторы сеансов после успешного входа в систему.
- Не правильно отменяют идентификаторы сеансов, что приводит к неаутентифицированному доступу.
Для снижения этих рисков:
- Внедрите многофакторную аутентификацию при возможности, чтобы предотвратить автоматические атаки и повторное использование учетных данных.
- Избегайте развертывания приложений со стандартными учетными данными, особенно для административных пользователей.
- Применяйте проверку паролей на использование распространенных слабых паролей.
- Соблюдайте политику по длине, сложности и периодической смене паролей в соответствии с рекомендациями NIST 800-63b.
- Укрепите регистрацию, восстановление учетных данных и API-маршруты от атак перечисления аккаунтов.
- Ограничьте неудачные попытки входа, контролируя возможность подбора учетных данных или атак перебора.
- Используйте безопасный серверный менеджер сеансов, который генерирует случайные идентификаторы сеансов и не сохраняет их в URL-адресах. После выхода из системы, простоя или истечения времени сеанса отмените идентификаторы.
Примеры атак:
Наполнение учетными данными: Если приложение не защищено от автоматических угроз, злоумышленники могут использовать его как “парольный оракул” для проверки учетных данных.
Переоснова на паролях: Использование только паролей в качестве факторов аутентификации приводит к уязвимостям. Рекомендуется внедрение многофакторной аутентификации и отказ от устаревших практик смены паролей.
Некорректные времена сеансов: Неправильно установленные времена сеансов могут позволить злоумышленнику получить доступ к приложению после ухода пользователя, подчеркивая необходимость правильной конфигурации времен ожидания.
Для дальнейшего усиления безопасности вашего приложения, мы рекомендуем воспользоваться специализированными услугами, такими как INFRA (www.infrascan.net) и check.website. Эти доверенные платформы предлагают комплексные оценки безопасности, выявляют уязвимости в ваших процессах аутентификации и предоставляют ценное руководство по улучшению ваших механизмов защиты.