V3.4.4 Cookie-based Session Management
Requirement:#
Verify that cookie-based session tokens use the "__Host-" prefix so cookies are only sent to the host that initially set the cookie.
Explanation:#
Префикс "__Host-" - это элемент безопасности, который помогает предотвратить некоторые атаки cookie-based, ограничивая область действия cookie-файлов хостом, на котором они были изначально установлены.
The "__Host-" Prefix:
Префикс "__Host-" - это специальный префикс, который может применяться к файлам cookie. Когда cookie имеет префикс "__Host-", его действие ограничивается хостом, на котором он был изначально создан. Это означает, что cookie отправляется только в домен веб-приложения, которое его создало, без включения в какие-либо поддомены или другие связанные домены.
Preventing Subdomain Cookie Leakage:
Одним из основных преимуществ использования префикса "__Host-" с точки зрения безопасности является предотвращение утечки файлов cookie, известной как "subdomain cookie leakage". Без префикса "__Host-" файл cookie, установленный на основном домене (например, example.com), будет отправлен также на все поддомены (например, app.example.com, api.example.com). Такое поведение может привести к риску безопасности, особенно если один из поддоменов окажется скомпрометированным или контролируемым злоумышленниками.
Domain vs. Host Prefix:
Префикс "__Host-" отличается от обычного атрибута "Domain" в файлах cookie. Атрибут "Domain" может установить область действия cookie на определенный домен и его поддомены (например, ".example.com"), но он имеет ограничения по предотвращению утечки cookie из поддоменов. Префикс "__Host-", однако, является гораздо более ограничительным и предотвращает отправку cookie на поддомены.
Cookies with "__Host-" Prefix:
Файлы cookie с префиксом "__Host-" должны соответствовать следующим правилам:
- Они должны иметь атрибут "Secure", то есть передаваться только с использованием HTTPS соединения.
- Они должны быть снабжены атрибутом "HttpOnly", предотвращающим доступ к cookie со стороны клиентского скрипта.
Example:
Если сессионный cookie задан с префиксом "__Host-", например, "__Host-session-token", то он будет отправлен только на запросы, сделанные на "example.com", а не на любой из его поддоменов, например, "app.example.com" или "api.example.com".
Remediation:#
Check for '__Host-' Prefixed Cookies:
Просмотрите кодовую базу и конфигурацию приложения, чтобы выявить все случаи установки cookie-файлов для управления сеансами или хранения других конфиденциальных данных. Ищите файлы cookie с именами, начинающимися с префикса "__Host-".
Verify Cookie Attributes:
Для всех найденных cookies с префиксом "__Host-" убедитесь, что у них установлены следующие атрибуты:
- Secure: Этот атрибут гарантирует, что cookie будет отправляться только по защищенным (HTTPS) соединениям.
- HttpOnly: Этот атрибут предотвращает доступ сценариев на стороне клиента к cookie, что повышает его безопасность.
Update Cookie Settings:
Если вы обнаружили файлы cookie, используемые для управления сессиями или хранения конфиденциальных данных, без префикса "__Host-", измените свой код таким образом, чтобы добавить префикс к этим файлам cookie. Кроме того, убедитесь, что для этих файлов установлены атрибуты 'Secure' и 'HttpOnly'.
Use "__Host-" Prefix with Caution:
Следует помнить, что использование префикса "__Host-" подходит не для всех файлов cookie. Он предназначен, в частности, для файлов cookie, используемых для управления сессиями, или файлов cookie, содержащих конфиденциальные данные. Если у вас есть другие файлы cookie, предназначенные для других целей (например, предпочтения, аналитика), префикс "__Host-" для них использовать не следует.
Security Review:
Проведите анализ безопасности вашего приложения, включая тестирование на безопасность (например, тестирование на проникновение), чтобы убедиться, что cookie с префиксом "__Host-" эффективно предотвращают утечку cookie с поддоменов и помогают защититься от cookie-based атак.
Пример установки сессионного cookie с префиксом "__Host-"
В этом примере / устанавливает сессионный cookie с именем "__Host-session-token" и значением, указанным в cookie_value. Префикс "__Host-" добавляется к имени cookie, чтобы ограничить область его действия хостом, на котором он был изначально установлен. Для повышения безопасности cookie также устанавливаются атрибуты 'Secure' и 'HttpOnly'.
Следует помнить, что использование префикса "__Host-" целесообразно только для файлов cookie, используемых для управления сеансом работы или содержащих конфиденциальные данные. Для других файлов cookie, имеющих иное назначение (например, предпочтения, аналитика), использование префикса "__Host-" необязательно.
Additional: