Релиз Chrome 102
Компания Google представила релиз web-браузера Chrome 102. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 103 запланирован на 21 июня.
Основные изменения в Chrome 102:
Для блокирования эксплуатации уязвимостей, вызванных обращением к уже освобождённым блокам памяти (use-after-free), вместо обычных указателей началось применение типа MiraclePtr (raw_ptr). MiraclePtr предоставляет обвязку над указателями, выполняющую дополнительные проверки обращения к освобождённым областям памяти и аварийно завершающую работу в случае обнаружения подобных обращений. Влияние нового метода защиты на производительность и потребление памяти оценивается как незначительное. Механизм MiraclePtr применим не во всех процессах, в частности не используется в процессах отрисовки, но может существенно усилить безопасность. Например, в текущем выпуске из 32 исправленных уязвимостей, 12 было вызвано проблемами класса use-after-free.
Изменено оформление интерфейса с информацией о загрузках. Вместо нижней строки с данными о ходе загрузки в панель с адресной строкой добавлен новый индикатор, при клике на который показывается прогресс загрузки файлов и история со списком уже загруженных файлов. В отличие от нижней панели, кнопка постоянно показывается на панели и позволяет быстро обратиться к истории загрузок. Новый интерфейс пока предложен по умолчанию только части пользователей и будет распространён на всех в случае отсутствия проблем. Для возвращения старого интерфейса или включения нового предусмотрена настройка «chrome://flags#download-bubble».
При поиске изображений через контекстное меню («Search image with Google Lens» или «Найти через Google Объектив») результаты теперь показываются не на отдельной странице, а в боковой панели рядом с содержимым исходной страницы (в одном окне одновременно можно видеть как содержимое страницы, так и результат обращения к поисковой системе).
В настройках в секции «Конфиденциальность и безопасность» добавлен раздел «Руководство по конфиденциальности» («Privacy Guide»), в котором предложен общий обзор основных настроек, влияющих на конфиденциальность с подробными пояснениями о влиянии каждой настройки. Например, в секции можно определить политику отправки данных в сервисы Google, управлять синхронизацией, обработкой Cookie и сохранением истории. Функция предложена части пользователей, для активации можно использовать настройку «chrome://flags#privacy-guide».
Обеспечено структурирование истории поиска и просмотренных страниц. При попытке повторного поиска в адресной строке выводится подсказка «Продолжить поиск в истории» («Resume your journey»), позволяющая продолжить поиск с места, на котором он был прерван в прошлый раз.
В каталоге Chrome Web Store предложена страница «Extensions Starter Kit» с начальной подборкой рекомендуемых дополнений.
В тестовом режиме включена отправка на сервер основного сайта запроса подтверждения полномочий CORS (Cross-Origin Resource Sharing) с заголовком «Access-Control-Request-Private-Network: true», в случае обращения со страницы к ресурсу во внутренней сети (192.168.x.x, 10.x.x.x, 172.16.x.x) или к localhost (128.x.x.x). При подтверждении операции в ответ на данный запрос сервер должен вернуть заголовок «Access-Control-Allow-Private-Network: true». В версии Chrome 102 результат подтверждения ещё не влияет на обработку запроса — в случае отсутствия подтверждения в web-консоли отображается предупреждение, но сам запрос субресурса не блокируется. Включение блокировки при отсутствии подтверждения от сервера ожидается не раньше, чем в выпуске Chrome 105. Для включения блокировки в более ранних выпусках можно активировать настройку «chrome://flags/#private-network-access-respect-preflight-results».
Подтверждение полномочий сервером введено для усиления защиты от атак, связанных с обращением к ресурсам в локальной сети или на компьютере пользователя (localhost) из скриптов, загружаемых при открытии сайта. Подобные запросы используются злоумышленниками для осуществления CSRF-атак на маршрутизаторы, точки доступа, принтеры, корпоративные web-интерфейсы и другие устройства и сервисы, принимающие запросы только из локальной сети. Для защиты от подобных атак в случае обращения к любым субресурсам во внутренней сети, браузер будет отправлять явный запрос полномочия загрузки этих субресурсов.
При открытии ссылок в режиме инкогнито через контекстное меню обеспечено автоматическое удаление из URL некоторых параметров, влияющих на конфиденциальность.
Изменена стратегия доставки обновлений для Windows и Android. Для более полного сравнения поведения нового и старого выпуска для загрузки теперь формируется несколько сборок новой версии.
Стабилизирована технология сегментирования сети для защиты от методов отслеживания перемещений пользователя между сайтами, основанных на хранении идентификаторов в областях, не предназначенных для постоянного хранения информации («Supercookies»). Так как ресурсы в кэше хранятся в общем пространстве имён, независимо от исходного домена, один сайт может определить загрузку ресурсов с другого сайта через проверку наличия этого ресурса в кэше. Защита основана на применении сегментирования сети (Network Partitioning), суть которого в добавлении в совместно используемые кэши дополнительной привязки записей к домену, с которого открыта основная страница, что ограничивает область охвата кэша для скриптов отслеживания перемещений только текущим сайтом (скрипт из iframe не сможет проверить загружался ли ресурс с другого сайта). Разделение состояния охватывает сетевые соединения (HTTP/1, HTTP/2, HTTP/3, websocket), кэш DNS, данные ALPN/HTTP2, TLS/HTTP3, конфигурацию, загрузки и информацию в заголовке Expect-CT.
Для устанавливаемых обособленных web-приложений (PWA, Progressive Web App) предоставлена возможность изменения оформления области заголовка окна при помощи компонентов Window Controls Overlay, расширяющих экранную область web-приложения на всё окно. Web-приложение может управлять отрисовкой и обработкой ввода во всём окне, за исключением наложенного блока со штатными кнопками управления окном (закрытие, сворачивание, развёртывание), для придания web-приложению формы обычного настольного приложения.
В системе автозаполения форм добавлена поддержка генерации виртуальных номеров кредитных карт в полях с реквизитами оплаты товара в интернет-магазинах. Использование виртуальной карты, номер которой генерируется для каждой оплаты, позволяет не передавать данные о реальной кредитной карте, но требует предоставление необходимого сервиса банком. В настоящее время функция может использоваться лишь клиентами некоторых банков из США. Для управления включением функции предложена настройка «chrome://flags/#autofill-enable-virtual-card».
Активирован по умолчанию механизм «Capture Handle», позволяющий передавать информацию приложениям, осуществляющим захват видео. API даёт возможность организовать взаимодействие приложений, чьё содержимое записывается, и приложений, которые осуществляют запись. Например, приложение для ведения видеоконференций, осуществляющее захват видео для трансляции презентации, может получить сведения об элементах управления презентацией и вывести их в окне с видео.
Включена по умолчанию поддержка спекулятивных правил (Speculation rules), предоставляющих гибкий синтаксис для определения возможности упреждающей загрузки связанных со ссылкой данных, производимой на этапе до перехода пользователя по ссылке.
Стабилизирован механизм упаковки ресурсов в пакеты в формате Web Bundle, позволяющий увеличить эффективность загрузки большого числа сопутствующих файлов (CSS-стили, JavaScript, изображения, iframe). В отличие от пакетов в формате Webpack, формат Web Bundle обладает следующими достоинствами: в HTTP-кэше оседает не сам пакет, а его составные части; компиляция и выполнение JavaScript начинается не дожидаясь полной загрузки пакета; допускается включение дополнительных ресурсов, таких как CSS и изображения, которые в webpack должны были кодироваться в форме JavaScript-строк.
Предоставлена возможность определения PWA-приложения в качестве обработчика определённых MIME-типов и расширений файлов. После определения привязки через поле file_handlers в манифесте, приложение получит специальное событие при попытке пользователя открыть файл, ассоциированный с приложением.
Добавлен новый атрибут inert, позволяющий пометить часть дерева DOM как «бездействующую». Для узлов DOM в данном состоянии отключаются обработчики выделения текста и наведения указателя, т.е. CSS-свойства pointer-events и user-select всегда выставлены в значение 'none'. Если узел допускал редактирование, то в режиме inert он становится нередактируемым.
Добавлен API Navigation, позволяющий web-приложениям перехватывать операции навигации в окне, инициировать переход и анализировать историю действий с приложением. API предоставляет альтернативу свойствам window.history и window.location, оптимизированную для одностраничных web-приложений.
Для атрибута «hidden» предложен новый флаг «until-found», который делает элемент доступным для поиска на странице и прокрутки по текстовой маске. Например, можно добавить на страницу скрытый текст, содержимое которого будет находиться при локальном поиске.
В API WebHID, предназначенный для низкоуровневого доступа к HID-устройствам (Human interface device, клавиатуры, мыши, геймпады, сенсорные панели) и организации работы без наличия в системе специфичных драйверов, в объект requestDevice () добавлено свойство exclusionFilters, позволяющее исключать определённые устройства при показе браузером списка доступных устройств. Например, можно исключить идентификаторы устройств, в которых имеются известные проблемы.
Запрещён вывод формы платежа через вызов PaymentRequest.show () без явного действия пользователя, например, клика на элементе, связанном с обработчиком.
Прекращена поддержка альтернативной реализации протокола SDP (Session Description Protocol), применяющегося для установки сеанса в WebRTC. В Chrome предлагалось два варианта SDP — унифицированный с другими браузерами и специфичный для Chrome. Отныне оставлен только переносимый вариант.
Внесены улучшения в инструменты для web-разработчиков. В панели Styles добавлены кнопки для симуляции применения тёмной и светлой темы оформления. Усилена защита вкладки Preview в режиме инспектирования сети (включено применение Content Security Policy). В отладчике реализовано завершение выполнения скрипта для перезагрузке точек останова. Предложена предварительная реализация новой панели «Performance insights», позволяющей проанализировать производительность выполнения определённых операций на странице.
Кроме нововведений и исправления ошибок в новой версии устранено 32 уязвимости. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одной из проблем (CVE-2022–1853) присвоен критический уровень опасности, который подразумевает возможность обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. Детали по данной уязвимости пока не разглашаются, известно только, что она вызвана обращением к освобождённому блоку памяти (use-after-free) в реализации API Indexed DB.
В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 24 премии на сумму 65600 долларов США (одна премия $10000, одна премия $7500, две премии $7000, три премии $5000, четыре премии $3000, две премии $2000, две премии $1000 и две премии $500). Размер 7 вознаграждений пока не определён.
Источник: http://www.opennet.ru/opennews/art.shtml? num=57247
© OpenNet