Представляю вашему вниманию очередную часть перевода OWASP Testing Guide. В данной статье речь пойдет о сохранении паролей.

Предыдущие статьи

  1. Тестирование: введение и задачи
  2. Сбор информации с помощью поисковых систем
  3. Определение веб-сервера
  4. Поиск информации в метафайлах веб-сервера
  5. Определение веб-приложений на сервере
  6. Поиск утечек информации в комментариях и метаданных
  7. Определение точек входа веб-приложения
  8. Составление карты веб-приложения
  9. Определение фреймворка веб-приложения
  10. Определение веб-приложения
  11. Составление карты архитектуры веб-приложения
  12. Тестирование конфигурации инфраструктуры веб-приложения
  13. Изучение расширений файлов
  14. Поиск страрых версий веб-приложения, скрытых файлов и резервных копий
  15. Поиск административных интерфейсов
  16. Тестирование HTTP методов
  17. Тестирование HSTS
  18. Тестирование кросс-доменной политики
  19. Изучение ролей пользователей
  20. Тестирование процесса регистрации
  21. Предоставление учетных записей
  22. Определение имен пользователей
  23. Обход аутентификации


Резюме

Браузеры иногда предлагают пользователям сохранить пароль, который только что был введен. Браузер сохранит пароль и в дальнейшем будет автоматически вводить его при посещении соответствующей формы аутентификации. Это удобно для пользователей. Кроме того некоторые веб-сайты предлагают функцию «запомнить меня», которая полволяет оставаться авторизованным на данном веб-сайте.

Сохранение браузером паролей удобно не только для пользователей, но и для атакующих. Если атакующий получит доступ к браузеры жертвы (например, с помощью XSS или совместно используемый компьютер), то он получит и сохраненные пароли. Довольно часто пароли, сохраненные браузером, являются легкодоступными, но даже если браузер сохраняет пароли в зашифрованном виде, используя мастер пароль, то никто не запретит атакующему посетить форму аутентификации целевого веб-приложения, ввести имя пользователя и позволить браузеру ввести пароль.

Кроме того главной слабостью функции «запомнить меня» является то, как токен сохраняется на клиентском ПК (например, использовать закодированные в base64 логин/пароль пользователя в качестве токена), что может привести к утрате пользователем контроля над своей учетной записью. С начала 2014 года большинство основных браузеров будут отменять любое использование autocomplete = «off» в отношении форм паролей, и в результате предыдущие проверки для этого не требуются, и рекомендации по отключению этой функции обычно не предоставляются. Однако это может быть применимо к таким вещам, как вторичные секреты, которые могут быть случайно сохранены в браузере.

Как тестировать

    • Ищите пароли, сохраняемые в куки. Изучите куки, сохраняемые веб-приложением. Убедитесь в том, что учетные данные не сохраняются в открытом виде, а хешируются.
    • Изучите механизм хеширования, если используется популярный алгоритм, то проверьте его надежность. Если используются самописные хеш-функции, то используйте различные имена пользователя и пароли, чтобы определить является ли данная функция предсказуемой.
    • Убедитесь в том, что учетные данные отправляются только в момент авторизации, а не с каждым запросом к веб-приложению.
    • Учитывайте также и другие чувствительные данные (например, ответ на секретный вопрос при восстановлении пароля или разблокировке учетной записи).

Противодействие

Убедитесь в том, что никакие учетные данные не сохраняются в открытом виде и не могут быть легко извлечены в закодированном или захешированном виде из куки.