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

[spoiler title=’Предыдущие статьи’]

  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. Обход аутентификации

[/spoiler]

Резюме

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

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

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

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

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

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

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