Представляю вашему вниманию очередную часть перевода OWASP Testing Guide. В данной статье речь пойдет о HSTS.
- Тестирование: введение и задачи
- Сбор информации с помощью поисковых систем
- Определение веб-сервера
- Поиск информации в метафайлах веб-сервера
- Определение веб-приложений на сервере
- Поиск утечек информации в комментариях и метаданных
- Определение точек входа веб-приложения
- Составление карты веб-приложения
- Определение фреймворка веб-приложения
- Определение веб-приложения
- Составление карты архитектуры веб-приложения
- Тестирование конфигурации инфраструктуры веб-приложения
- Изучение расширений файлов
- Поиск страрых версий веб-приложения, скрытых файлов и резервных копий
- Поиск административных интерфейсов
- Тестирование HTTP методов
Резюме
HSTS (сокр. от англ. HTTP Strict Transport Security) — механизм, активирующий форсированное защищённое соединение через протокол HTTPS. Данная политика безопасности позволяет сразу же устанавливать безопасное соединение, вместо использования HTTP-протокола. Механизм использует особый заголовок Strict-Transport-Security для принудительного использования браузером протокола HTTPS даже в случае перехода по ссылкам с явным указанием протокола HTTP (http://). Данный механизм является крайне важным и потому обязатеьно нужно убедиться в том, что он используется тестируемым веб-приложением.
Заголовок HSTS использует две директивы:
- max-age — указывает время за которое браузер должен автоматически преобразовать все HTTP запросы в HTTPS, время указывается в секундах.
- includeSubDomains — указывает, что все поддомены веб-приложения должны испоьзовать HTTPS.
Ниже приведен пример заголовка HSTS:
Strict-Transport-Security: max-age=60000; includeSubDomains
Если используется заголовок HSTS, то нужно убедится могут ли быть произведены следующие атаки:
- Прослушивание всего траффика в сети и получение доступа к данным, передаваемым через незашифрованные каналы.
- Может быть проведен MITM, так как принимаются недоверенные сертификаты.
- Пользователь случайно вводит адрес в браузере используя HTTP вместо HTTPS или же кликает на ссылку, использующую HTTP.
Как тестировать
Проверить наличие заголовка HSTS можно с помощью перехватывающего прокси или curl следующим образом:
$ curl -s -D- https://domain.com/ | grep Strict
Ожидаемый результат:
Strict-Transport-Security: max-age=...
Справочные материалы:
- OWASP HTTP Strict Transport Security — https://www.owasp.org/index.php/HTTP_Strict_Transport_Security
- OWASP Appsec Tutorial Series — Episode 4: Strict Transport Security — http://www.youtube.com/watch?v=zEV3HOuM_Vw
- HSTS Specification: http://tools.ietf.org/html/rfc6797