· 

Безопасные настройки файлов Cookie для браузеров с защищенными соединениями

Google. Файлы Cookie 2020 года

В мае 2019 года Google анонсировал безопасную модель нового веб-браузера Chrome с акцентом на улучшенную защиту персональных данных посредством использования обновленной системы классификации файлов Cookie. Данная инициатива входит в постоянную работу Google по улучшению конфиденциальности и безопасности в сети Интернете.

Chrome планирует внедрить по умолчанию новую защиту пользователей от передачи сторонних Cookie и скрытой идентификации во все версии браузеров Chrome 80 и выше начиная с февраля 2020 года. Mozilla и Microsoft также заявили о намерении внедрить новую модель в браузеры Firefox и Edge в сроки, установленные самостоятельно.

 

 

В чём разница межсайтовой и внутрисайтовой связи для файлов Cookie

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

 

Менее очевидные случаи межсайтового использования включают ситуации, когда объект, который владеет несколькими веб-сайтами, использует файлы Cookie с настроенными араметрами. Несмотря на то, что один и тот же объект владеет файлами Cookie и веб-сайтами, это однозначно считается межсайтовой (сторонней) связью, если домен с файлами Cookie не соответствует сайтам, с которых осуществляется доступ к файлам Cookie.

 


 

Когда внешний ресурс на веб-странице получает доступ к файлу Cookie, который не соответствует домену сайта — это межсайтовый или «сторонний» контекст. Напротив, доступ к файлам Cookie в контексте одного и того же сайта (или «первого лица») происходит, когда домен файла Cookie совпадает с доменом сайта в адресной строке пользователя. Файлы Cookie одного сайта обычно используются для того, чтобы когда пользователи заходили на отдельные сайты, запоминались индивидуальные предпочтения и поддерживалась аналитика сайта. Когда ресурс на веб-странице получает доступ к файлу Cookie, который соответствует сайту и который посещает пользователь — это контекст того же сайта или «первого лица».

 

 

Новая защита сделает файлы Cookie более безопасными и прозрачными

Атрибут SameSite позволяет определить допустимость передачи файлов Cookie, если со стороннего веб-ресурса поступил запрос. Чаще всего файлы Cookie передаются по любому запросу, даже если запрос поступает с другого сайта при помощи загрузки изображения или iframe.

 

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

 

Параметры атрибута «SameSite» позволяют управлять действиями браузера при отправке файлов Cookie. Например, отправлять Cookie только на те запросы, которые получены первоначально с другого сайта.

 

Атрибут имеет три значения:

  • «Strict» — полный запрет на отправку Cookie.
  • «Lax» — блокируются некоторые Cookie для запросов между сайтами (изображения или iframe). 
  • «None» — ограничения на файлы Cookie отсутствуют.

 

В настоящее время для предотвращения внешнего доступа файл Cookie может иметь только два параметра: «SameSite = Lax» или «SameSite = Strict». Тем не менее только немногие разработчики придерживаются этой практики. В результате для значительного числа файлов Cookie сайты могут подвергаться атакам через подделку межсайтовых запросов (Cross Site Request Forgery).

 

Чтобы защитить пользователей и сайты, новая модель безопасности по умолчанию защищает все файлы Cookie от внешнего доступа, если не указаны иные параметры. Чтобы назначить файлы Cookie для межсайтового доступа, разработчики должны сделать настройку файлов Cookie и добавить запись «SameSite = None».

 

При наличии атрибута «SameSite = None» следует использовать дополнительный атрибут Secure, чтобы межсайтовые файлы Cookie были доступны только для HTTPS-соединений. Это поможет защитить от сетевых атак, обеспечит большую прозрачность и у пользователей появится возможность для выбора. Например, в браузерах будут детализированные элементы для раздельного управления разными типами файлов Cookie (доступ только с одного сайта или с нескольких сайтов).

 

Другие варианты запрещают обработку файлов Cookie для сторонних сайтов по http-протоколу. В перспективе пользователи будут защищены от скрытой идентификации при помощи уникального отпечатка браузера (технология «Browser Fingerprinting»).

 

В новой версии Chrome у обработчика кнопки Back появится защита от записей, связанных с автоматическими пробросами и манипуляциями с историей посещений, когда возникают искусственные трудности при возвращении пользователей с просматриваемого сайта на исходную (домашнюю) страницу.

 

Технология Flash будет отключена по умолчанию в настройках «Расширенные — Приватность и безопасность — Свойства сайтов». С 2020 года поддержка Flash будет полностью отключена.

 

 

Chrome Enforcement будет действовать с февраля 2020 года

В рамках развития стратегии Google по информационной безопасности в последующих версиях браузера Chrome 80+ изменится технология обработки файлов Cookie и поддержке атрибута SameSite.

  • По умолчанию будет включена опция «Same-site-by-default-Cookies».
  • Если в заголовке не будет атрибута «SameSite», браузер Chrome без участия пользователей самостоятельно установит значение «SameSite=Lax», что поможет ограничить отправку файлов Cookie для вставок со сторонних сайтов.
  • Чтобы снять автоматическое ограничение, владельцы сайтов могут самостоятельно установить значение параметра «SameSite=None».\
  • Безопасные настройки будут доступны для внешнего доступа, если они доступны из защищенных соединений. Средства отслеживания состояния платформы Chrome для «SameSite = None» и Secure будут по-прежнему обновляться с использованием последней информации о запуске. 
  • Mozilla подтвердила свою поддержку новой модели классификации файлов Cookie, намереваясь реализовать атрибут «SameSite = None». 
  • Microsoft также объявила о планах начать реализацию модели, начиная с браузера Microsoft Edge 80.

 

 

Как приготовиться к новым настройкам и преодолеть трудности

Если вы управляете межсайтовыми файлами Cookie, для безопасной настройки файлов Cookie вам необходимо применять атрибут «SameSite = None». Внедрение не должно представлять трудности для большинства разработчиков. Но Гугл настоятельно рекомендует приступить к тестированию без промедления, чтобы заранее выявить сложности и особые случаи. Например, такие как:

  • Не все языки и библиотеки поддерживают значение None, что требует от разработчиков непосредственной установки заголовка файлов Cookie. Этот репозиторий Github содержит инструкции по реализации атрибута безопасной настройки «SameSite = None» на разных языках, в библиотеках и фреймворках.
  • Некоторые браузеры, включая отдельные версии Chrome, Safari и UC Browser, могут непреднамеренно обрабатывать значение None и это требует от разработчиков кодирования исключений для этих клиентов. Например, для Android WebViews на основе более старых версий Chrome. Вот список известных несовместимых клиентов.
  • Разработчикам приложений рекомендуется раскрывать соответствующие настройки файлов Cookie SameSite для веб-приложений Android на основе версий Chrome, которые совместимы со значением None, как для файлов Cookie, доступ к которым осуществляется через заголовки HTTP (S), так и через API-интерфейс Cookie Manager Android WebView. Однако новая модель не будет позже применяться на Android WebView.
  • Корпоративным ИТ-администраторам могут потребоваться специальные политики для временного возврата браузера Chrome к прежним настройкам, если некоторые службы, такие как единый вход или внутренние приложения, неготовы к запуску новой модели в феврале 2020 года.
  • Если у вас есть файлы Cookie, к которым вы получаете доступ как в первом, так и в стороннем контексте, вы можете рассмотреть возможность использования отдельных файлов Cookie для получения преимуществ безопасности SameSite = Lax в контексте первого лица.

 

В разъяснениях к SameSite Cookie предлагаются конкретные рекомендации для решения вышеописанных ситуаций, а также каналы для обратной связи. Чтобы проверить влияние новой версии Chrome на ваш сайт или управляемые вами файлы Cookie, вы можете обратиться к настройке «chrome: // flags» в браузере Chrome 76+ и включить опцию «SameSite by default Cookies» и «Cookies without SameSite must be secure».

 

Кроме того, эти опции будут автоматически включены для некоторых пользователей бета-версии браузера Chrome 79. Некоторые пользователи бета-версии с включенными экспериментальными опциями могут столкнуться с проблемами несовместимости со службами, которые еще не поддерживают новую модель. В этом случае пользователи могут отказаться от данных опций в бета-версии, отключив с помощью настройки «chrome: // flags».

  • Если вы управляете файлами Cookie, доступ к которым осуществляется только в пределах одного и того же сайта (файлы Cookie для единственного сайта), с вашей стороны не требуется никаких действий. Новый браузер Chrome автоматически предотвращает доступ к этим файлам Cookie со стороны внешних объектов, даже если атрибут SameSite отсутствует или его значение не задано. 
  • Однако Google настоятельно рекомендует использовать соответствующее значение SameSite (Lax или Strict) и советует не полагаться на поведение браузера по умолчанию. Поскольку не все браузеры могут по умолчанию защищать файлы Cookie для одного сайта.
  • Если вы решили узнать о готовности поставщиков и других лиц, предоставляющих услуги вашему веб-сайту, вы можете проверить наличие предупреждений в инструментах разработчика Developer Tools в Chrome 77+, если на странице содержатся межсайтовые файлы Cookie, в которых отсутствуют необходимые параметры:

 

Проверка настройки межсайтов файлов межсайтовые файлы Cookie в инструментах разработчика Developer Tools

 

 

 

© WaterMillSky 2012-2020