[ English | English (United Kingdom) | Deutsch | русский ]

Заголовки безопасности

Заголовки безопасности — это HTTP-заголовки, которые можно использовать для повышения безопасности веб-приложения путем ограничения того, что современные браузеры могут запускать.

В OpenStack-Ansible заголовки безопасности реализованы в HAProxy, поскольку все публичные точки доступа находятся за ним.

Следующие заголовки включены по умолчанию на всех интерфейсах HAProxy, которые реализуют TLS, но только для службы Horizon. Заголовки безопасности могут быть реализованы на других службах HAProxy, но только службы, используемые браузерами, будут использовать заголовки.

HTTP Strict Transport Security

` Гид по безопасности OpenStack TLS`_ советует всем окружениям в промышленном использовании использовать HTTP Strict Transport Security (HSTS).

По замыслу этот заголовок трудно отключить после установки. Рекомендуется во время тестирования установить короткое время в 1 день, а после тестирования увеличить время до 1 года.

Чтобы изменить максимальный возраст по умолчанию на 1 день, переопределите переменную haproxy_security_headers_max_age в файле /etc/openstack_deploy/user_variables.yml:

haproxy_security_headers_max_age: 86400

Если вы хотите, чтобы ваш домен был включен в список предварительной загрузки HSTS, встроенный в браузеры, перед отправкой запроса на добавление в список предварительной загрузки HSTS вы должны добавить токен preload в заголовок ответа. Токен preload указывает тем, кто поддерживает список предварительной загрузки HSTS, что вы согласны включить туда свой сайт.

- "http-response set-header Strict-Transport-Security \"max-age={{ haproxy_security_headers_max_age }}; includeSubDomains; preload;\""

X-Content-Type-Options

Заголовок X-Content-Type-Options предотвращает перехват типа MIME.

Эту функциональность можно изменить, переопределив список заголовков в переменной haproxy_security_headers в файле /etc/openstack_deploy/user_variables.yml.

Referrer политика

Заголовок Referrer-Policy контролирует, сколько информации о реферере отправляется с запросами. По умолчанию он равен same-origin, что не отправляет путь источника для запросов кросс-источника.

Эту функциональность можно изменить, переопределив список заголовков в переменной haproxy_security_headers в файле /etc/openstack_deploy/user_variables.yml.

Политика предоставления разрешений

Заголовок Permissions-Policy позволяет выборочно включать, отключать или изменять использование функций браузера и API, ранее известный как Feature Policy.

По умолчанию этот заголовок настроен на блокировку доступа ко всем функциям, за исключением следующих из того же источника: полноэкранный режим, чтение буфера обмена, запись буфера обмена и пространственная навигация.

Эту функциональность можно изменить, переопределив список заголовков в переменной haproxy_security_headers в файле /etc/openstack_deploy/user_variables.yml.

Content Security Policy (CSP)

Заголовок Content-Security-Policy позволяет контролировать, какие ресурсы браузеру разрешено загружать для определенной страницы, что помогает снизить риски, связанные с межсайтовым скриптингом (XSS) и атаками с внедрением данных.

По умолчанию политика безопасности контента (CSP) включает минимальный набор ресурсов, позволяющий Horizon работать, включая доступ к консоли Nova. Если вам требуется доступ к другим ресурсам, их можно задать, переопределив переменную haproxy_security_headers_csp в файле /etc/openstack_deploy/user_variables.yml.

Report Only

Реализация CSP может привести к повреждению контента, если браузеру будет заблокирован доступ к определенным ресурсам, поэтому при тестировании CSP рекомендуется использовать заголовок Content-Security-Policy-Report-Only вместо Content-Security-Policy. Это сообщает о нарушениях CSP в консоль браузера, но не обеспечивает соблюдение политики.

Чтобы настроить политику CSP на создание отчетов только путем переопределения переменной haproxy_security_headers_csp_report_only на True в файле /etc/openstack_deploy/user_variables.yml:

haproxy_security_headers_csp_report_only: True

Сообщение о нарушениях

Рекомендуется отслеживать попытки нарушения CSP в рабочей среде. Это достигается путем установки токенов report-uri и report-to.

Федеративный вход

При использовании федеративного входа вам потребуется переопределить политику безопасности контента по умолчанию, чтобы разрешить доступ к вашему серверу авторизации, переопределив переменную haproxy_horizon_csp в файле /etc/openstack_deploy/user_variables.yml:

haproxy_horizon_csp: >
  http-response set-header Content-Security-Policy "
  default-src 'self';
  frame-ancestors 'self';
  form-action 'self' {{ external_lb_vip_address }}:5000 <YOUR-AUTHORISATION-SERVER-ORIGIN>;
  upgrade-insecure-requests;
  style-src 'self' 'unsafe-inline';
  script-src 'self' 'unsafe-inline' 'unsafe-eval';
  child-src 'self' {{ external_lb_vip_address }}:{{ nova_spice_html5proxy_base_port }} {{ external_lb_vip_address }}:{{ nova_novncproxy_port }} {{ external_lb_vip_address }}:{{ nova_serialconsoleproxy_port }};
  frame-src 'self' {{ external_lb_vip_address }}:{{ nova_spice_html5proxy_base_port }} {{ external_lb_vip_address }}:{{ nova_novncproxy_port }} {{ external_lb_vip_address }}:{{ nova_serialconsoleproxy_port }};
  "

Также можно установить специальные заголовки безопасности для Skyline.

haproxy_skyline_csp: ...