Перейти к содержанию

Краб

Рекомендуемые сообщения

В Chrome экспериментируют с поддержкой RSS, чисткой User-Agent и автосменой паролей

Спойлер

Компания Google объявила о добавлении в Chrome экспериментальной возможности "Follow" с реализацией встроенного RSS-клиента. Пользователи смогут подписываться на RSS-ленты интересующих их сайтов через кнопку Follow в меню и отслеживать появление новых публикаций в секции Following на странице открытия новой вкладки. Тестирование новой возможности начнётся в ближайшие недели и будет ограничено некоторым пользователям Chrome для Android, живущими в США и пользующимися экспериментальной веткой Canary.

0_1621490040.png

Компания Google также опубликовала план урезания содержимого HTTP-заголовка User-Agent. Реформирование поддержки User-Agent изначально планировалось провести год назад, но из-за пандемии COVID-19 внедрение связанных с User-Agent изменений было отложено. Отмечается, что Safari и Firefox уже убрали детализацию версии ОС из User-Agent.

В Chrome 89 по умолчанию был включён механизм User-Agent Client Hints, развиваемый в качестве замены User-Agent, и теперь Google намерен перейти к экспериментам по урезанию функциональности, связанной с User-Agent. User-Agent Client Hints позволяет организовать выборочную отдачу данных о конкретных параметрах браузера и системы (версия, платформа и т.д.) только после запроса сервером. Пользователь, в свою очередь, может определить какую информацию можно предоставить владельцам сайтов.

При использовании User-Agent Client Hints идентификатор не передаётся по умолчанию без явного запроса, а по умолчанию указывается лишь базовые параметры, что затрудняет проведение пассивной идентификации. Для сайтов, которым необходимо получить подробные данные о браузере в первом запросе, разработаны расширения "Client Hints Reliability", включающие отдаваемый сервером HTTP-заголовок Critical-CH, информирующий о том, что для формирования содержимого сайту требуется передать параметры "Client Hint" в отдельном запросе, и расширение ACCEPT_CH в HTTP/2 и HTTP/3, на уровне соединения передающее информацию о параметрах "Client Hint", которые необходимо получить серверу.

До завершения миграции на механизм Client Hints компания Google не намерена изменять поведение User-Agent в стабильных выпусках. По крайней мере в 2021 году никакие изменения в User-Agent вносится не будут. Но в тестовых ветках Chrome начнутся эксперименты с урезанием информации в заголовке User-Agent и JavaScript параметрах navigator.userAgent, navigator.appVersion и navigator.platform. После проведения чистки сохранится возможность узнать из строки User-Agent название браузера, значительную версию браузера, платформу и тип устройства (мобильный телефон, ПК, планшет). Для получения дополнительных данных нужно будет использовать API User Agent Client Hints.

Определено 7 стадий постепенного урезания User-Agent:

  • В Chrome 92 во вкладке DevTools Issues начнёт показываться предупреждение об устаревании navigator.userAgent, navigator.appVersion и navigator.platform.
  • В режиме Origin Trial сайтам будет предоставлена возможность включить режим передачи урезанного User-Agent. Тестирование в данном режиме продлится как минимум 6 месяцев. На основании отзывов участников тестирования и сообщества будет принято решение о целесообразности выполнения следующих стадий.
  • Сайтам, которые не успели мигрировать на API Client Hints, будет предоставлен обратный Origin Trial, дающий возможность как минимум в течение 6 месяцев вернуть прежнее поведение.
  • Номер версии Chrome в User-Agent будет сокращён до формы MINOR.BUILD.PATCH (например, вместо 90.0.4430.93 будет указываться 90.0.0).
  • Информация о версии будет урезана в API navigator.userAgent, navigator.appVersion и navigator.platform для настольных систем.
  • Будет сокращена передача сведений о мобильной платформе в Chrome для Android (сейчас передаётся версия Android и кодовое имя модели устройства).
  • Будет прекращена поддержка обратного Origin Trial и для всех страниц будет отдаваться только сокращённый User-Agent.

В заключение можно отметить инициативу Google по реализации во встроенном в Chrome менеджере паролей функции автоматизации смены паролей, в случае выявления фактов их компрометации. В частности, если во время проверки выяснится, что учётная запись скомпрометирована в результате утечки базы паролей сайта, пользователю будет предложена кнопка для быстрой смены пароля на сайте.

Для поддерживаемых сайтов процесс смены пароля будет автоматизирован - браузер сам заполнит и отправит необходимые формы. Каждый этап смены пароля будет демонстрироваться пользователю, который сможет в любой момент вмешаться и перейти в ручной режим. Для автоматизации взаимодействия с формами смены пароля на разных сайтах используется система машинного обучения Duplex, которая также применяется в Google Assistant. Новая возможность будет постепенно доводиться до пользователей, начиная с Chrome для Android из США.

 

Ссылка на комментарий
Поделиться на другие сайты

Релиз Chrome 91

Спойлер

Компания Google представила релиз web-браузера Chrome 91. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 92 запланирован на 20 июля.

 

Основные изменения в Chrome 91:

  • Реализована возможность остановки выполнения JavaScript в свёрнутой группе вкладок. В Chrome 85 появилась поддержка объединения вкладок в группы, которые могут быть связаны с определённым цветом и меткой. При клике на метке группы связанные с ней вкладки сворачиваются и вместо них остаётся одна метка (повторный клик на метке раскрывает группу). В новом выпуске с целью снижения нагрузки на CPU и экономии энергии реализована приостановка активности в свёрнутых вкладках. Исключение сделано только для вкладок, в которых воспроизводится звук, используется API Web Locks или IndexedDB, выполнено соединение к USB-устройству, ведётся захват видео, звука или содержимого окон. Изменение будет внедряться постепенно, начиная с небольшого процента пользователей.
  • Включена поддержка метода согласования ключей, стойкого к подбору на квантовых компьютерах. Квантовые компьютеры кардинально быстрее решают задачу разложения натурального числа на простые множители, которая лежит в основе современных асимметричных алгоритмов шифрования и эффективно не решаема на классических процессорах. Для использования в TLSv1.3 предоставлен плагин CECPQ2 (Combined Elliptic-Curve and Post-Quantum 2), комбинирующий классический механизм обмена ключами X25519 со схемой HRSS, основанной на алгоритме NTRU Prime, разработанной для постквантовых криптосистем.
  • Полностью прекращена поддержка протоколов TLS 1.0 и TLS 1.1, которые переведены комитетом IETF (Internet Engineering Task Force) в разряд устаревших. В том числе убрана возможность возвращения TLS 1.0/1.1 через изменение политики SSLVersionMin.
  • В сборках для платформы Linux включено использование режима "DNS поверх HTTPS" (DoH, DNS over HTTPS), который ранее был доведён до пользователей Windows, macOS, ChromeOS и Android. DNS-over-HTTPS будет автоматически активирован для пользователей, в настройках которых указаны DNS-провайдеры, поддерживающие данную технологию (для DNS-over-HTTPS используется тот же провайдер, который применялся для DNS). Например, если у пользователя в системных настройках указан DNS 8.8.8.8, то в Chrome будет активирован DNS-over-HTTPS сервис Google ("https://dns.google.com/dns-query"), если DNS - 1.1.1.1, то DNS-over-HTTPS сервис Cloudflare ("https://cloudflare-dns.com/dns-query") и т.п.
  • В число запрещённых сетевых портов добавлен порт 10080, который используется в Amanda backup и VMWare vCenter. Ранее уже были заблокированы порты 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 и 6566. Для портов в чёрном списке блокируется отправка HTTP, HTTPS и FTP-запросов с целью защиты от атаки NAT slipstreaming, позволяющей при открытии специально подготовленной атакующим web-страницы в браузере установить сетевое соединение с сервера атакующего к любому UDP или TCP порту на системе пользователя, несмотря на применение внутреннего диапазона адресов (192.168.x.x, 10.x.x.x).
  • Предоставлена возможность настройки автоматического запуска обособленных web-приложений (PWA - Progressive Web Apps) при входе пользователя в систему (Windows и macOS). Автозапуск настраивается на странице chrome://apps. Функциональность пока тестируется на небольшом проценте пользователей, а для остальных требует активации настройки "chrome://flags/#enable-desktop-pwas-run-on-os-login".
  • В рамках работы по переводу браузера на применение инклюзивной терминологии файл "master_preferences" переименован в "initial_preferences". Для сохранения совместимости поддержка "master_preferences" некоторое время ещё сохранится в браузере. Ранее браузер уже избавился от использования слов "whitelist", "blacklist" и "native".
  • В расширенный режим защиты от опасных сайтов (Enhanced Safe Browsing), в котором активируются дополнительные проверки для защиты от фишинга, вредоносной активности и прочих угроз в Web, реализована возможность отправки загружаемых файлов для проверки на стороне Google. Кроме того, в Enhanced Safe Browsing реализован учёт токенов, привязанных к учётной записи в Google, при выявлении попыток фишинга, а также отправка на сервера Google значений заголовка Referrer для проверки проброса с вредоносного сайта.
  • В редакции для платформы Android улучшено оформление элементов web-форм, которые были оптимизированы для использования на сенсорных экранах и системах для людей с ограниченными возможностями (для настольных систем оформление было переделано в Chrome 83). Целью переработки стала унификация оформления элементов форм и устранение несоответствия стилей - ранее часть элементов форм была спроектирована в соответствии с элементами интерфейса операционных систем, а часть - в соответствии с наиболее популярными стилями. Из-за этого разные элементы по разному подходили для сенсорных экранов и систем для людей с ограниченными возможностями.
    0_1590006712.png0_1590006749.png
  • Добавлен опрос мнения пользователей, показываемый при открытии настроек Privacy Sandbox (chrome://settings/privacySandbox).
  • При запуске Android-версии Chrome на планшетных ПК с большим экраном обеспечен запрос десктоп-версии сайта, а не редакции для мобильных устройств. Изменить поведение можно при помощи настройки "chrome://flags/#request-desktop-site-for-tablets".
  • Переделан код для отрисовки таблиц, что позволило решить проблемы с несоответствием поведения при выводе таблиц в Chrome и в Firefox/Safari.
  • Прекращена обработка серверных сертификатов испанского удостоверяющего центра Camerfirma из-за повторяющихся с 2017 года инцидентов, связанных с нарушениями при выдаче сертификатов. Поддержка клиентских сертификатов сохранена, блокировка применяется только для сертификатов, используемых на сайтах для HTTPS.
  • Продолжена реализация поддержки сегментирования сети для защиты от методов отслеживания перемещений пользователя между сайтами, основанных на хранении идентификаторов в областях, не предназначенных для постоянного хранения информации ("Supercookies"). Так как ресурсы в кэше хранятся в общем пространстве имён, независимо от исходного домена, один сайт может определить загрузку ресурсов с другого сайта через проверку наличия этого ресурса в кэше. Защита основана на применении сегментирования сети (Network Partitioning), суть которого в добавлении в совместно используемые кэши дополнительной привязки записей к домену, с которого открыта основная страница, что ограничивает область охвата кэша для скриптов отслеживания перемещений только текущим сайтом (скрипт из iframe не сможет проверить загружался ли ресурс с другого сайта).

    Ценой сегментирования является снижение эффективности кэширования, приводящее к незначительному увеличению времени загрузки страницы (максимум на 1.32%, но для 80% сайтов на 0.09-0.75%). Для тестирования режима сегментирования можно запустить браузер с опцией "--enable-features=PartitionConnectionsByNetworkIsolationKey, PartitionExpectCTStateByNetworkIsolationKey, PartitionHttpServerPropertiesByNetworkIsolationKey, PartitionNelAndReportingByNetworkIsolationKey, PartitionSSLSessionsByNetworkIsolationKey, SplitHostCacheByNetworkIsolationKey".

     

  • Добавлен внешний REST API VersionHistory (https://versionhistory.googleapis.com/v1/chrome), через который можно получить сведения о версиях Chrome в привязке к платформам и веткам, а также истории обновления браузера.
  • В iframe, загруженных с доменов, отличных от домена базовой страницы, запрещён вывод JavaScript-диалогов alert(), confirm() и prompt(), что позволит защитить пользователей от попытки вывода сторонним скриптом сообщений под видом, что уведомление выведено основным сайтом.
  • Стабилизирован и предложен по умолчанию API WebAssembly SIMD для использования векторных SIMD-инструкций в приложениях в формате WebAssembly. Для обеспечения платформонезависимости предлагаются новый 128-разрядный тип, который может представлять разные типы упакованных данных, и несколько базовых векторных операций для обработки упакованных данных. SIMD позволяет повысить производительность за счёт распараллеливания обработки данных и будет полезным при компиляции нативного кода в WebAssembly.
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • WebTransport - протокол и сопутствующий JavaScript API для отправки и приёма данных между браузером и сервером. Канал связи организуется поверх HTTP/3 с использованием в качестве транспорта протокола QUIC, который, в свою очередь, представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS/SSL.

      WebTransport может использоваться вместо механизмов WebSockets и RTCDataChannel, предлагая такие дополнительные возможности, как организация передачи в несколько потоков, однонаправленные потоки, доставка без учёта порядка отправки пакетов (out-of-order), надёжный и ненадёжный режимы доставки. Кроме того, WebTransport может применяться вместо механизма Server Push, от использования которого в Chrome отказалась компания Google.

    • Декларативный интерфейс для определения ссылок на обособленные web-приложения (PWA), включаемый при помощи параметра capture_links в манифесте web-приложения и позволяющий сайтам автоматически открывать новое PWA-окно при клике на ссылке приложения или переходить в однооконный режим по аналогии с мобильными приложениями.
    • Добавлен API WebXR Plane Detection, предоставляющий сведения о плоских поверхностях в виртуальном 3D-окружении. Указанный API даёт возможность обойтись без ресурсоёмкой обработки данных, полученных через вызов MediaDevices.getUserMedia(), с использованием собственных реализаций алгоритмов машинного зрения. Напомним, что API WebXR позволяет унифицировать работу с различными классами устройств виртуальной реальности, от стационарных 3D-шлемов до решений на базе мобильных устройств.
  • Реализована поддержка работы с WebSockets поверх HTTP/2 (RFC 8441), которая действует только для защищённых запросов к WebSockets и при наличии уже установленного с сервером соединения HTTP/2, в котором анонсирована поддержка расширения "WebSockets over HTTP/2".
  • Ограничения точности значений таймера, выдаваемых вызовом performance.now(), унифицированы для всех поддерживаемых платформ и адаптированы с учётом возможной изоляции обработчиков в отдельных процессах. Например, на десктоп-системах точность при обработке в не изолированных контекстах сокращена с 5 до 100 микросекунд.
  • В сборках для настольных систем реализована возможность чтения файлов из буфера обмена (запись файлов в буфер обмена по-прежнему запрещена).
    
    
  • В CSS реализовано правило @counter-style, позволяющее определять собственный стиль счётчиков и меток в нумерованных списках.
  • В CSS псевдо-классы ":host()" и ":host-context()" добавлена возможность передачи единичных значений составных селекторов (<compound-selector>) в дополнение к спискам селекторов (<compound-selector-list>).
  • Добавлен интерфейс GravitySensor для определения объёмных (по трём осям координат) данных с датчика гравитации.
  • В API File System Access предоставлена возможность определения рекомендаций выбора имени файла и каталога, предлагаемым в диалоге создания или открытия файла.
  • В загруженных с других доменов iframe разрешено обращение к API WebOTP при предоставлении пользователем соответствующих полномочий. WebOTP позволяет читать одноразовые коды подтверждения, присылаемые через SMS.
  • Разрешено предоставление совместного доступа к учётным данным для сайтов, связанных при помощи механизма DAL (Digital Asset Links), позволяющего ассоциировать Android-приложения с сайтами для упрощения входа.
  • В Service worker разрешено использование модулей JavaScript. При указании типа 'module' во время вызова конструктора указанные скрипты будут загружены в форме модулей и доступны для импортирования в контексте worker-а. Поддержка модулей упрощает совместное использование кода на web-страницах и в Service worker-ах.
  • В JavaScript предоставлена возможность проверки существования закрытых полей в объекте, используя синтаксис "#foo in obj".
    
    
  • В JavaScript по умолчанию разрешено использование ключевого слова await в модулях на верхнем уровне, что позволяет более мягко интегрировать асинхронные вызовы в процесс загрузки модулей и обойтись без упаковки в "async function". Например, вместо
    
    
    теперь можно писать
    
    
  • В JavaScript-движке V8 повышена эффективность кэширования шаблонов, что позволило на 4.5% повысить скорость прохождения теста Speedometer2-FlightJS.
  • Внесена большая порция улучшений в инструменты для web-разработчиков. Добавлен новый режим инспектирования памяти (Memory inspector), предоставляющий средства для изучения данных ArrayBuffer и памяти Wasm.
    0_1622030414.png

    В панели Performance добавлен сводный индикатор производительности, позволяющий судить о том, требует сайт оптимизации или нет.

    0_1622030206.png

    При предпросмотре изображений в панели Elements и в панели анализа сетевых запросов предоставлена информация о соотношении сторон изображения, параметрах визуализации и размере файла.

    0_1622030627.png

    В панели инспектирования сети появилась возможность изменения принимаемых значений заголовка Content-Encoding.

    0_1622030737.png

    В панели работы со стилями появилась возможность быстрого просмотра вычисленного значения при навигации по параметрам CSS, выбрав в контекстном меню "View computed value".

    0_1622030902.png

Кроме нововведений и исправления ошибок в новой версии устранено 32 уязвимости. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 21 премию на сумму 92000 долларов США (одна премия $20000, одна премия $15000, четыре премии $7500, три премии $5000, три премии $3000, две премии $1000 и две премии $500). Размер 5 вознаграждений пока не определён.

 

Ссылка на комментарий
Поделиться на другие сайты

  • 2 weeks later...

 Обновление Chrome 91.0.4472.101 с устранением 0-day уязвимости

Спойлер

Компания Google сформировала обновление Chrome 91.0.4472.101, в котором исправлены 14 уязвимостей, в том числе проблема CVE-2021-30551, уже применяемая злоумышленниками в эксплоитах (0-day). Детали пока не раскрываются, известно лишь, что уязвимость вызвана неправильной обработкой типов (Type Confusion) в JavaScript-движке V8.

В новой версии также устранена ещё одна опасная уязвимость CVE-2021-30544, вызванная обращением к памяти после её освобождения (use-after-free) в кэше перехода (BFCache, Back-forward cache), применяемом для мгновенного перехода при использовании кнопок "Назад" и "Вперёд" или при навигации по ранее просмотренным страницам текущего сайта. Проблеме присвоен критический уровень опасности, т.е. обозначено, что уязвимость позволяет обойти все уровни защиты браузера и её достаточно чтобы выполнить код в системе за пределами sandbox-окружения.

 

Ссылка на комментарий
Поделиться на другие сайты

  • 1 month later...

Релиз Chrome 92

Спойлер

Компания Google представила релиз web-браузера Chrome 92. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 93 запланирован на 31 августа.

 

Основные изменения в Chrome 92:

  • В настройки добавлены средства для управления включением компонентов Privacy Sandbox. Пользователю предоставлена возможность отключения технологии FLoC (Federated Learning of Cohorts), развиваемой компанией Google для замены отслеживающих перемещения Cookie на "когорты", позволяющие выделять пользователей со сходными интересами, не идентифицируя отдельных лиц. Когорты вычисляются на стороне браузера через применение алгоритмов машинного обучения к данным истории посещений и содержимому, которое открывается в браузере.
    0_1626864860.png
  • Для пользователей десктоп-систем по умолчанию включён кэш перехода (Back-forward cache), обеспечивающий мгновенный переход при использовании кнопок "Назад" и "Вперёд" или при навигации по ранее просмотренным страницам текущего сайта. Ранее кэш перехода был доступен только в сборках для платформы Android.
  • Усилена изоляция сайтов и дополнений в разных процессах. Если раньше механизм Site Isolation обеспечивал изоляцию сайтов друг от друга в разных процессах, а также отделял все дополнения в отдельный процесс, то в новом выпуске реализовано разделение браузерных дополнений между собой через вынос каждого дополнения в отдельный процесс, что позволило создать ещё один барьер для защиты от вредоносных дополнений.
  • Значительно увеличена производительность и эффективность определения фишинга. Скорость выявления фишинга на основе локального анализа изображений в половине случаев возросла до 50 раз, а в 99% случаев оказалась быстрее как минимум в 2.5 раза. В среднем время классификации фишинга по изображению снизилось с 1.8 секунд до 100 мс. В общем нагрузка на CPU, создаваемая всеми процессами отрисовки, снизилась на 1.2%.
  • В число запрещённых сетевых портов добавлены порты 989 (ftps-data) и 990 (ftps). Ранее уже были заблокированы порты 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061, 6566 и 10080. Для портов в чёрном списке блокируется отправка HTTP, HTTPS и FTP-запросов с целью защиты от атаки NAT slipstreaming, позволяющей при открытии специально подготовленной атакующим web-страницы в браузере установить сетевое соединение с сервера атакующего к любому UDP или TCP порту на системе пользователя, несмотря на применение внутреннего диапазона адресов (192.168.x.x, 10.x.x.x).
  • Введено требование по применению двухфакторной верификации разработчика при публикации новых дополнений или обновлений версий в Chrome Web Store.
  • Обеспечено отключение в браузере уже установленных дополнений, если они удалены из каталога Chrome Web Store в связи с нарушением правил.
  • При отправке DNS-запросов, в случае использования классических DNS-серверов, помимо записей "A" и "AAAA" для определения IP-адресов теперь также запрашивается DNS-запись "HTTPS", через которую передаются параметры, позволяющие ускорить установку HTTPS-соединений, такие как настройки протокола, ключи для шифрования TLS ClientHello и список поддоменов-псевдонимов.
  • Из iframe-блоков, загружаемых с доменов, отличных от домена текущей страницы, запрещён вызов JavaScript-диалогов window.alert, window.confirm и window.prompt. Изменение позволит защитить пользователей от злоупотреблений, связанных с попытками преподнести стороннее уведомление как запрос основного сайта.
  • На странице новой вкладки обеспечен вывод списка наиболее востребованных документов, сохранённых в Google Drive.
  • Предоставлена возможность изменения имени и пиктограммы для приложений PWA (Progressive Web Apps).
  • Для небольшого случайного числа web-форм, связанных с вводом адреса или номера кредитной карты, в качестве эксперимента будет отключён вывод рекомендаций по автозаполнению.
  • В версии для настольных систем опция поиска по изображению (пункт "Найти изображение" в контекстном меню) переведена на использование сервиса Google Lens вместо обычного поискового движка Google. При нажатии соответствующей кнопки в контекстном меню пользователь будет перенаправляться на отдельное web-приложение.
  • В интерфейсе режима "инкогнито" скрыты ссылки на историю посещений (ссылки бесполезны, так как приводили к открытию заглушки с информацией о том, что история не собирается).
  • Добавлены новые команды, разбираемые при вводе в адресной строке. Например, для появления кнопки быстрого перехода на страницу проверки безопасности паролей и дополнений достаточно набрать "safety check", а для перехода к настройкам безопасности и синхронизации - "manage security settings" и "manage sync".

     
  • Специфичные изменения в версии Chrome для Android:

     
    • В панели реализована новая настраиваемая кнопка "Magic Toolbar", показывающая разные ярлыки, выбираемые с учётом текущей активности пользователя и включающие ссылки, которые, вероятно, могут понадобиться в данный момент.
    • Обновлена реализация выполняемой на устройстве модели машинного обучения для определения попыток фишинга. При выявлении попыток фишинга, кроме вывода страницы с предупреждением, браузер теперь будет отправлять во внешний сервис Safe Browsing сведения о версии модели машинного обучения, вычисленном весе для каждой категории и флаге применения новой модели.
    • Удалена настройка "Show suggestions for similar pages when a page can't be found", которая приводила к рекомендации похожих страниц на основе отправки запроса в Google, если страница не найдена. Ранее данная настройка уже была удалена из версии для настольных систем.
    • Расширено применение режима изоляции сайтов по отдельным процессам. Из соображений потребления ресурсов в отдельные процессы до сих пор выносились только избранные крупные сайты. В новой версии изоляция начнёт применяться и к сайтам, на которые осуществлён вход пользователя с аутентификацией через OAuth (например, подключение через учётную запись Google) или которые выставляют HTTP-заголовок Cross-Origin-Opener-Policy. Для желающих включить изоляцию в отдельных процессах всех сайтов предоставлена настройка "chrome://flags/#enable-site-per-process".
    • Отключены встроенные в движок V8 механизмы защиты от атак по сторонним каналам, таким как Spectre, которые признаны не настолько эффективными, как изоляция сайтов в отдельных процессах. В настольной версии указанные механизмы были отключены ещё в выпуске Chrome 70.
    • Упрощён доступ к настройкам полномочий сайта, таким как доступ к микрофону, камере и определению местоположения. Для вывода списка полномочий достаточно нажать на символ замка в адресной строке, после чего выбрать раздел "Permissions".
      0_1626879118.png


     
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • API File Handling, позволяющий регистрировать web-приложения в качестве обработчиков файлов. Например, работающее в режиме PWA (Progressive Web Apps) web-приложение с текстовым редактором может зарегистрировать себя как обработчик файлов ".txt", после чего может быть использовано в системном файловом менеджере для открытия текстовых файлов.
      0_1626871376.png
    • API Shared Element Transitions, позволяющий использовать предоставляемые браузером готовые эффекты, визуализирующие изменение состояния интерфейса в одностраничных (SPA, single-page applications) и многостраничных (MPA, multi-page applications) web-приложениях.
  • В CSS-правило @font-face добавлен параметр size-adjust, позволяющий масштабировать размеры глифа для определённого начертания шрифта, не изменяя значение CSS-свойства font-size (область под символ остаётся той же, но меняется размер глифа в этой области).
  • В JavaScript в объектах Array, String и TypedArray реализован метод at(), позволяющий использовать относительную индексацию (в качестве индекса массива указывается относительная позиция), в том числе с указанием отрицательных значений относительно конца (например, "arr.at(-1)" вернёт последний элемент массива).
  • В JavaScript-конструктор Intl.DateTimeFormat добавлено свойство dayPeriod, позволяющее вывести приблизительное время дня (утром, вечером, днём, ночью).
  • При использовании объектов SharedArrayBuffers, позволяющих создавать массивы в разделяемой памяти, теперь требуется определение HTTP-заголовков Cross-Origin-Opener-Policy и Cross-Origin-Embedder-Policy, без которых запрос будет блокирован.
  • В API Media Session добавлены действия "togglemicrophone", "togglecamera" и "hangup", позволяющие на сайтах, реализующих системы видеоконференций, прикреплять собственные обработчики для показываемых в интерфейсе picture-in-picture кнопок выключения/включения микрофона, выключения/включения камеры и завершения вызова.
  • В API Web Bluetooth добавлена возможность фильтрации найденных Bluetooth-устройств по идентификаторам производителя и продукта. Фильтр задаётся через параметр "options.filters" в методе Bluetooth.requestDevice().
  • Реализована первая стадия урезания содержимого HTTP-заголовка User-Agent: во вкладке DevTools Issues теперь показывается предупреждение об устаревании navigator.userAgent, navigator.appVersion и navigator.platform.
  • Внесена порция улучшений в инструменты для web-разработчиков. В web-консоли предоставлена возможность переопределения выражений "const". В панели Elements для элементов iframe предоставлена возможность быстрого просмотра деталей через контекстное меню, показываемое при клике правой кнопкой мыши на элементе. Улучшена отладка ошибок CORS (Cross-origin resource sharing). В панели инспектирования сетевой активности добавлена возможность фильтрации сетевых запросов из WebAssembly. Предложен новый редактор CSS Grid ("display: grid" и "display: inline-grid") с функцией предпросмотра изменений.
    0_1626877480.png

Кроме нововведений и исправления ошибок в новой версии устранено 35 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 24 премий на сумму 112000 долларов США (две премии $15000, четыре премии $10000, одна премия $8500, две премии $7500, три премии $5000, одна премия $3000 и одна премия $500). Размер 11 вознаграждений пока не определён.

 

Ссылка на комментарий
Поделиться на другие сайты

  • 1 month later...

Релиз Chrome 93

Спойлер

Компания Google представила релиз web-браузера Chrome 93. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 94 запланирован на 21 сентября (разработка переведена на 4-недельный цикл формирования релизов).

 

Основные изменения в Chrome 93:

  • Проведена модернизация оформления блока с информацией о странице (page info), в котором реализована поддержка вложенных блоков, а выпадающие списки с правами доступа заменены на переключатели. В списках обеспечен вывод наиболее важной информации в первую очередь. Изменение включено не для всех пользователей, для активации можно использовать настройку "chrome://flags/#page-info-version-2-desktop".
    0_1630482958.png
  • Для небольшого процента пользователей в качестве эксперимента индикатор защищённого соединения в адресной строке заменён на более нейтральный и не вызывающий двойной трактовки символ (замок заменён на знак "V"). Для соединений, установленных без шифрования, продолжает показываться индикатор "не защищено". В качестве причины замены индикатора упоминается то, что многие пользователи ассоциируют индикатор замка с тем, что содержимому сайта можно доверять, а не воспринимают его как признак шифрования соединения. Судя по опросу Google лишь 11% процентов пользователей понимают смысл пиктограммы с замком.
    0_1626354794.png
  • В списке недавно закрытых вкладок обеспечено отображение содержимого закрытых групп вкладок (раньше в списке просто показывалось название группы без детализации содержимого) с возможностью разом вернуть как всю группу, так и отдельные вкладки из группы. Возможность активирована не для всех пользователей, поэтому для включения может потребоваться изменение настройки "chrome://flags/#tab-restore-sub-menus".
    0_1630483467.png
  • Для предприятий реализованы новые настройки DefaultJavaScriptJitSetting, JavaScriptJitAllowedForSites и JavaScriptJitBlockedForSites, позволяющие управлять режимом JIT-less, отключающим применение JIT-компиляции при выполнении JavaScript (используется только интерпретатор Ignition) и запрещающим выделение исполняемой памяти в процессе выполнения кода. Отключение JIT может быть полезным для повышения безопасности работы с потенциально опасными web-приложениями ценой снижения производительности выполнения JavaScript примерно на 17%. Примечательно, что компания Microsoft пошла ещё дальше и реализовала в браузере Edge экспериментальный режим "Super Duper Secure", позволяющий пользователю отключить JIT и активировать несовместимые с JIT аппаратные механизмы защиты CET (Controlflow-Enforcement Technology), ACG (Arbitrary Code Guard) и CFG (Control Flow Guard) для процессов, выполняющих обработку web-контента. Если эксперимент окажется удачным, то можно ожидать переноса его в основной состав Chrome.
  • На странице новой вкладки обеспечен вывод списка наиболее востребованных документов, сохранённых в Google Drive. Содержимое списка соответствует разделу Priority в drive.google.com. Для управления показом содержимого Google Drive можно использовать настройки "chrome://flags/#ntp-modules" и "chrome://flags/#ntp-drive-module".
    0_1630494510.png
  • Для страницы открытия новой вкладки предложены новые информационные карты, помогающие найти недавно просматриваемый контент и связанную с ним информацию. Карты призваны упростить продолжение работы с информацией, просмотр которой был прерван, например, карты помогут найти рецепт блюда, который недавно был найден в сети, но утерян после закрытия страницы, или продолжить выбор покупок в магазинах. В качестве эксперимента пользователям предложены две новые карты: "Рецепты" (chrome://flags/#ntp-recipe-tasks-module) для поиска кулинарных рецептов и показа недавно просмотренных рецептов; "Покупки" (chrome://flags/#ntp-chrome-cart-module) для напоминаниях о выбранных в интернет-магазинах товарах.
  • В версию для платформы Android добавлена опциональная поддержка панели непрерывного поиска (chrome://flags/#continuous-search), позволяющей держать на виду недавние результаты поиска в Google (панель продолжает показывать результаты после перехода на другие страницы).
    0_1630494900.png
  • В версию для платформы Android добавлен экспериментальный режим обмена цитатами (chrome://flags/#webnotes-stylize), позволяющий сохранить выделенный фрагмент страницы в форме цитаты и поделиться им с другими пользователями.
  • При публикации новых дополнений или обновлений версий в Chrome Web Store теперь обязательно применение двухфакторной верификации разработчика.
  • Для пользователей Google Account предоставлена опция для сохранения информации о платежах в своей учётной записи в Google.
  • В режиме инкогнито, в случае активации опции очистки данных навигации, реализован новый диалог подтверждения операции, поясняющий, что чистка данных приведёт к закрытию окна и завершению всех сеансов в режиме инкогнито.
  • Из-за выявленных несовместимостей с прошивками некоторых устройств временно отключена поддержка добавленного в Chrome 91 нового метода согласования ключей, стойкого к подбору на квантовых компьютерах, основанного на использовании в TLSv1.3 расширения CECPQ2 (Combined Elliptic-Curve and Post-Quantum 2), комбинирующего классический механизм обмена ключами X25519 со схемой HRSS, основанной на алгоритме NTRU Prime, разработанной для постквантовых криптосистем.
  • В число запрещённых сетевых портов добавлены порты 989 (ftps-data) и 990 (ftps) с целью блокирования атаки ALPACA. Ранее c целью защиты от атаки NAT slipstreaming уже были заблокированы порты 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061, 6566 и 10080.
  • В TLS прекращена поддержка шифров на базе алгоритма 3DES. В частности удалён набор шифров TLS_RSA_WITH_3DES_EDE_CBC_SHA, подверженный атаке Sweet32.
  • Прекращена поддержка дистрибутива Ubuntu 16.04.

     
  • Предоставлена возможность использования API WebOTP между разными устройствами, связанными через общую учётную запись в Google. WebOTP позволяет web-приложению читать одноразовые коды подтверждения, присылаемые через SMS. Предложенное изменение даёт возможность получить код подтверждения на мобильном устройстве с Chrome для Android, а применить его на настольной системе.
  • Расширен API User-Agent Client Hints, развиваемый в качестве замены заголовка User-Agent. User-Agent Client Hints позволяет организовать выборочную отдачу данных о конкретных параметрах браузера и системы (версия, платформа и т.д.) только после запроса сервером. Пользователь, в свою очередь, может определить какую информацию можно предоставить владельцам сайтов. При использовании User-Agent Client Hints идентификатор браузера не передаётся без явного запроса, а по умолчанию указываются лишь базовые параметры, что затрудняет проведение пассивной идентификации.

    В новой версии реализована поддержка параметра Sec-CH-UA-Bitness для возвращения данных о разрядности платформы, что может использоваться для отдачи оптимизированных бинарных файлов. По умолчанию обеспечена отправка параметра Sec-CH-UA-Platform с общими данными о платформе. В значении UADataValues, выдаваемом при вызове getHighEntropyValues(), по умолчанию реализована отдача обобщённых параметров, если невозможно вернуть детализированный вариант. В объект NavigatorUAData добавлен метод toJSON, что позволяет использовать конструкции вида JSON.stringify(navigator.userAgentData).

  • Стабилизирована и предложена по умолчанию возможность упаковки ресурсов в пакеты в формате Web Bundle, подходящие для организации более эффективной загрузки большого числа сопутствующих файлов (CSS-стили, JavaScript, изображения, iframe). Среди недостатков в имеющейся поддержке пакетов для файлов JavaScript (webpack), которые пытаются устранить в Web Bundle: в HTTP-кэше может оседать сам пакет, но не его составные части; компиляция и выполнение может начаться только после полной загрузки пакета; дополнительные ресурсы, такие как CSS и изображения, должны кодироваться в форме JavaScript-строк, что приводит к увеличению размера и выполнения ещё одной стадии разбора.
  • Включён API WebXR Plane Detection, предоставляющий сведения о плоских поверхностях в виртуальном 3D-окружении. Указанный API даёт возможность обойтись без ресурсоёмкой обработки данных, полученных через вызов MediaDevices.getUserMedia(), с использованием собственных реализаций алгоритмов машинного зрения. Напомним, что API WebXR позволяет унифицировать работу с различными классами устройств виртуальной реальности, от стационарных 3D-шлемов до решений на базе мобильных устройств.
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • Предложен API Multi-Screen Window Placement, позволяющий размещать окна на любом дисплее, подключённом к текущей системе, а также сохранять позицию окна и при необходимости раскрывать окно на весь экран. Например, при помощи указанного API web-приложение для показа презентации может организовать вывод слайдов на одном экране, а показывать примечание для докладчика на другом.
    • В заголовок Cross-Origin-Embedder-Policy, управляющий режимом изоляции Cross-Origin и позволяющий определять правила безопасного использования на странице привилегированных операций, добавлена поддержка параметра "credentialless" для отключения передачи информации, связанной с учётными данными, такой как Cookie и клиентские сертификаты.
    • Для обособленно устанавливаемых web-приложений (PWA, Progressive Web Apps), управляющих отрисовкой содержимого окна и занимающихся обработкой ввода, предоставлен оверлей с элементами управления окном, такими как область с заголовком и кнопки раскрытия/сворачивания окна. Оверлей расширяет доступную для изменения область на всё окно и позволяет добавлять свои элементы в область заголовка.
      0_1630491170.png
    • Добавлена возможность создания PWA-приложений, которые могут использоваться в качестве обработчиков URL. Например, приложение music.example.com может зарегистрировать себя как обработчик URL https://*.music.example.com и все переходы из внешних приложений по данным ссылкам, например, из мессенджеров и почтовых клиентов, будут приводить к открытию данного PWA-приложений, а не новой вкладки в браузере.
  • Предоставлена возможность загрузки CSS-файлов при помощи выражения "import" по аналогии с загрузкой модулей JavaScript, что удобно при создании собственных элементов и позволяет обойтись без назначения стилей кодом на JavaScript.
    
    
  • Предоставлен новый статический метод AbortSignal.abort(), возвращающий объект AbortSignal, для которого уже выставлен параметр aborted. Вместо нескольких строк кода для создания объекта AbortSignal в состоянии aborted теперь можно обойтись одной строкой "return AbortSignal.abort()".
  • В элемент Flexbox добавлена поддержка ключевых слов start, end, self-start, self-end, left и right, дополняющих ключевые слова center, flex-start и flex-end средствами для упрощённого выравнивания позиции flex-элементов.
  • В конструкторе Error() реализовано новое необязательное свойство "cause", при помощи которого можно легко связывать ошибки между собой.
    
    
  • В свойство HTMLMediaElement.controlsList добавлена поддержка режима noplaybackrate, позволяющего отключить элементы предоставляемого в браузере интерфейса для изменения скорости воспроизведения мультимедийного контента.
  • Добавлен заголовок Sec-CH-Prefers-Color-Scheme, позволяющий на этапе отправки запроса передать данные о предпочитаемой пользователем цветовой схеме, используемой в медиазапросах "prefers-color-scheme", что позволит сайту оптимизировать загрузку связанных с выбранной схемой CSS и избежать видимых переключений с других схем.
  • Добавлено свойство Object.hasOwn, представляющее собой упрощённый вариант Object.prototype.hasOwnProperty, реализованный в форме статического метода.
    
    
  • В JIT-компилятор Sparkplug, предназначенный для очень быстрого выполнения грубой компиляции, добавлен режим пакетного выполнения операций, позволяющий снизить накладные расходы от переключения страниц памяти между режимом записи и исполнения. Sparkplug теперь компилирует за раз сразу несколько функций и вызывает mprotect один раз для изменения прав доступа всей группы. Предложенный режим значительно сокращает время компиляции (до 44%) без негативного влияния на производительность выполнения JavaScript.
     
    0_1630491851.png
  • В версии для Android отключены встроенные в движок V8 механизмы защиты от атак по сторонним каналам, таким как Spectre, которые признаны не настолько эффективными, как изоляция сайтов в отдельных процессах. В настольной версии указанные механизмы были отключены ещё в выпуске Chrome 70. Отключение лишних проверок позволило поднять производительность на 2-15%.
     
    0_1630492059.png
  • Внесены улучшения в инструменты для web-разработчиков. В режиме инспектирования таблиц стилей предоставлена возможность редактирования запросов, сформированный при помощи выражения @container. В режиме инспектирования сети реализован предпросмотр ресурсов в формате Web bundle. В web-консоли в контекстное меню добавлены опции для копирования строк в форме литералов JavaScript или JSON. Упрощена отладка ошибок, связанных с CORS (Cross-Origin Resource Sharing).
    0_1630493263.png

Кроме нововведений и исправления ошибок в новой версии устранено 27 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 19 премий на сумму 136500 долларов США (три премии $20000, одна премия $15000, три премии $10000, одна премия $7500, три премии $5000 и три премии $3000). Размер 5 вознаграждений пока не определён.

 

Ссылка на комментарий
Поделиться на другие сайты

  • 3 weeks later...

Релиз Chrome 94

Спойлер

Компания Google представила релиз web-браузера Chrome 94. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 95 запланирован на 19 октября.

Начиная с выпуска Chrome 94 разработка переведена на новый цикл подготовки релизов. Новые значительные выпуски отныне будут публиковаться раз в 4 недели, а не раз в 6 недель, что позволит ускорить доведение новых возможностей до пользователей. Отмечается, что оптимизация процесса подготовки релизов и улучшение системы тестирования позволяют формировать выпуски более часто без ущерба качеству. Для предприятий и для тех, кому необходимо больше времени на обновление, раз в 8 недель отдельно будет выпускаться редакция Extended Stable, которая позволит переходить на новые функциональные выпуски не раз в 4 недели, а раз в 8 недель.

 

Основные изменения Chrome 94:

  • Добавлен режим HTTPS-First, который напоминает ранее появившийся в Firefox режим HTTPS Only. Если режим активирован в настройках при попытке открытия ресурса без шифрования по HTTP браузер вначале попытается обратиться к сайту по HTTPS и если попытка окажется неудачной пользователю будет показано предупреждение об отсутствии поддержки HTTPS и предложено открыть сайт без шифрования. В будущем Google рассматривает возможность активации HTTPS-First по умолчанию для всех пользователей, ограничения доступа к некоторым возможностям web-платформы для страниц, открытых по HTTP, и добавления дополнительных предупреждений, информирующих пользователей об угрозах, возникающих при обращении к сайтам без шифрования. Режим включается в разделе настроек "Конфиденциальность и безопасность" > "Безопасность" > "Дополнительные".
    0_1632298838.png
  • Для страниц, открытых без HTTPS, запрещена отправка запросов (загрузка ресурсов) к локальным URL (например, "http://router.local" и localhost) и внутренним диапазонам адресов (127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8 и т.п.). Исключение сделано только для страниц, загруженных с серверов, имеющих внутренние IP. Например, страница загруженная с сервера 1.2.3.4 не сможет обратиться к ресурсу, размещённому на IP 192.168.0.1 или IP 127.0.0.1, а загруженная с сервера 192.168.1.1 - сможет. Изменение вводит дополнительный уровень для защиты от эксплуатации уязвимостей в обработчиках, принимающих запросы на локальных IP, а также позволит защититься от атак типа "DNS rebinding".
  • Добавлена функция "Sharing Hub", позволяющая быстро поделиться с другими пользователями ссылкой на текущую страницу. Предоставляется возможность генерации QR-кода с URL, сохранения страницы, отправки ссылки на другое устройство, привязанное к учётной записи пользователя, и передачи ссылки на сторонние сайты, такие как Facebook, Whatsapp, Twitter и VK. Возможность пока доведена не до всех пользователей. Для принудительного включения кнопки "Share" в меню и адресной строке можно использовать настройки "chrome://flags/#sharing-hub-desktop-app-menu" и "chrome://flags/#sharing-hub-desktop-omnibox".
    0_1632309919.png
  • Проведена реструктуризация в интерфейсе настройки браузера. Каждая секция настроек теперь выводится на отдельной странице, а не на одной общей.
    0_1632310282.png
  • Реализована поддержка динамического обновления лога выданных и отозванных сертификатов (Certificate Transparency), который теперь будет обновляться без привязки к обновлению браузера.
  • Добавлена служебная страница "chrome://whats-new" с обзором видимых пользователю изменений в новом выпуске. Страница показывается автоматически сразу после обновления или доступна через кнопку "Что нового" (What's New) в меню Справка (Help). В настоящее время на странице упомянут поиск по вкладкам, возможность разделения профилей и функция смены цвета фона, которые не специфичны для Chrome 94 и появились в прошлых выпусках. Показ страницы пока включён не для всех пользователей: для управления активацией можно использовать настройки "chrome://flags#chrome-whats-new-ui" и "chrome://flags#chrome-whats-new-in-main-menu-new-badge".
    0_1632311219.png
  • Объявлено устаревшим обращение к API WebSQL из содержимого, загружаемого со сторонних сайтов (например, через iframe). В Chrome 94 при попытке обращения к WebSQL из сторонних скриптов выводится предупреждение, но начиная с Chrome 97 подобные обращения будут блокироваться. В будущем планируется постепенно полностью прекратить поддержку WebSQL, независимо от контекста использования. Обработчик WebSQL основан на коде SQLite и мог использоваться злоумышленниками для эксплуатации уязвимостей в SQLite.
  • Из соображений безопасности и предотвращения вредоносной активности началась блокировка использования устаревшего протокола MK (URL:MK), когда-то применявшегося в Internet Explorer и позволявшего web-приложениям извлекать информацию из сжатых файлов.
  • Прекращена поддержка синхронизации со старыми версиями Chrome (Chrome 48 и старше).
  • В HTTP-заголовок Permissions-Policy, предназначенный для включения определённых возможностей и управления доступом к API, добавлена поддержка флага "display-capture", позволяющего управлять использованием на странице API Screen Capture (по умолчанию возможность захвата содержимого экрана из внешних iframe блокируется).

     
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • Добавлен API WebGPU, идущий на смену API WebGL и предоставляющий средства для выполнения операций в GPU, таких как рендеринг и вычисления. Концептуально WebGPU близок к API Vulkan, Metal и Direct3D 12. Концептуально WebGPU отличается от WebGL примерно так же, как графический API Vulkan отличается от OpenGL, но при этом не основывается на конкретном графическом API, а представляет собой универсальную прослойку, использующую те же низкоуровневые примитивы, что имеются в Vulkan, Metal и Direct3D 12.

      WebGPU предоставляет приложениям на JavaScript средства для низкоуровневого контроля за организацией, обработкой и передачей команд к GPU, а также позволяет управлять связанными ресурсами, памятью, буферами, объектами текстур и скомпилированными графическими шейдерами. Подобный подход позволяет добиться более высокой производительности графических приложений за счёт снижения накладных расходов и повышения эффективности работы с GPU. API также даёт возможность создавать для Web сложные 3D-проекты, работающие не хуже, чем обособленные программы, но не привязанные к конкретным платформам.

    • Для обособленных PWA-приложений реализована возможность регистрации в качестве обработчиков URL. Например, приложение music.example.com может зарегистрировать себя как обработчик URL https://*.music.example.com и все переходы из внешних приложений по данным ссылкам, например, из мессенджеров и почтовых клиентов, будут приводить к открытию данного PWA-приложений, а не новой вкладки в браузере.
    • Реализована поддержка нового кода ответа HTTP - 103, который может использоваться для упреждающего вывода заголовков. Код 103 позволяет информировать клиента о содержании некоторых HTTP-заголовков сразу после запроса, не дожидаясь пока сервер выполнит все связанные с запросом операции и начнёт отдачу контента. Подобным образом можно сообщать подсказки о связанных с отдаваемой страницей элементах, которые могут быть предварительно загружены (например, могут быть приведены ссылки на используемые на странице css и javascript). Получив информацию о подобных ресурсах браузер приступит к их загрузке не дожидаясь окончания отдачи основной страницы, что позволяет сократить общее время обработки запроса.
  • Добавлен API WebCodecs для манипулирования мультимедийными потоками на низком уровне, дополняющий высокоуровневые API HTMLMediaElement, Media Source Extensions, WebAudio, MediaRecorder и WebRTC. Новый API может оказаться востребован в таких областях как стриминг игр, применение эффектов на стороне клиента, перекодирование потоков и поддержка нестандартных мультимедийных контейнеров. Вместо реализации отдельных кодеков на JavaScript или WebAssembly, API WebCodecs предоставляет доступ к готовым выскопроизводительным компонентам, встроенным в браузер. В частности, в API WebCodecs предоставляются декодировщики и кодировщики звука и видео, декодеровщики изображений и функции для работы с отдельным кадрами видео на низком уровне.
  • Стабилизирован API Insertable Streams, дающий возможность манипулировать необработанными (raw) мультимедийными потоками, передаваемыми через API MediaStreamTrack, такими как данные с камеры и микрофона, результат захвата экрана или промежуточные данные декодирования кодеком. Для представления необработанных кадров используются интерфейсы WebCodec, после чего формируется поток, аналогичный тому, что API WebRTC Insertable Streams генерирует на основе RTCPeerConnections. С практической стороны новый API позволяет реализовать такую функциональность, как сквозное шифрование звонков WebRTC, применение методов машинного обучения для идентификации или аннотирования объектов в режиме реального времени или для добавления эффектов, таких как вырезание фона, перед кодированием или после декодирования кодеком.
  • Стабилизирован метод scheduler.postTask(), позволяющий управлять планированием выполнения задач (callback-вызовов JavaScript) с различными уровнями приоритета. Предоставляется три уровня приоритетов: 1- выполнение в первую очередь, даже если могут быть блокированы операции пользователя; 2 - допускаются видимые пользователю изменения; 3 - выполнение в фоновом режиме). Для изменения приоритета и отмены задач можно использовать объект TaskController.
  • Стабилизирован и теперь распространяется вне Origin Trials API Idle Detection для определения неактивности пользователя. API позволяет определять время, когда пользователь не взаимодействует с клавиатурой/мышью, запущен хранитель экрана, экран заблокирован или работа выполняется на другом мониторе. Информирование приложения об неактивности осуществляется через отправку уведомления после достижения заданного порога неактивности.
  • Формализован процесс управления цветом в объектах CanvasRenderingContext2D и ImageData и использования в них цветового пространства sRGB. Предоставлена возможность создания объектов CanvasRenderingContext2D и ImageData в цветовых пространствах, отличных от sRGB, таких как Display P3, для использования расширенных возможностей современных мониторов.
  • В API VirtualKeyboard добавлены методы и свойства для управления показом и скрытием виртуальной клавиатуры, а также для получения информации о размере показанной виртуальной клавиатуры.
  • В JavaScript для классов предоставлена возможность применения статических блоков инициализации для группировки кода, выполняемого один раз при обработке класса:
    
    
  • В CSS-свойствах flex-basis и flex реализованы ключевые слова content, min-content, max-content и fit-content для более гибкого управления размером основной области Flexbox.
  • Добавлено CSS-свойство scrollbar-gutter для управления резервированием пространства экрана под полосу прокрутки. Например, когда не требуется прокрутка содержимого, можно расширить вывод и занять область полосы прокрутки.
  • Добавлен API Self Profiling с реализацией системы профилирования, позволяющей измерить время выполнения JavaScript на стороне пользователя для отладки проблем с производительностью в JavaScript-коде, не прибегая к ручным манипуляциям в интерфейсе для web-разработчиков.
  • После удаления Flash-плагина было решено возвращать пустые значения в свойствах navigator.plugins и navigator.mimeTypes, но как оказалось некоторые приложения использовали их для проверки наличия плагинов для отображения файлов PDF. Так как в Chrome имеется встроенный просмотрщик PDF, отныне свойства navigator.plugins и navigator.mimeTypes будут возвращать фиксированный список стандартных плагинов и MIME-типов для просмотра PDF - "PDF Viewer, Chrome PDF Viewer, Chromium PDF Viewer, Microsoft Edge PDF Viewer и WebKit built-in PDF".
  • Внесены улучшения в инструменты для web-разработчиков. В список симулирования экранов добавлены устройства Nest Hub и Nest Hub Max. В интерфейс инспектирования сетевой активности добавлена кнопка для инвертирования фильтров (например, при установке фильтра "status-code: 404" можно быстро посмотреть все остальные запросы), а также предоставлена возможность просмотра исходных значений заголовков Set-Cookie (позволяет оценить наличие некорректных значений, убираемых при нормализации). Объявлена устаревшей и будет удалена в одном из следующих выпусков боковая панель в web-консоли. Добавлена экспериментальная возможность скрытия проблем во вкладке Issues. В настройках добавлена возможность выбора языка интерфейса.
    0_1632318607.png

Кроме нововведений и исправления ошибок в новой версии устранено 19 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 17 премий на сумму 56500 долларов США (одна премия $15000, две премии $10000, одна премия $7500, четыре премии $3000 две премии $1000). Размер 7 вознаграждений пока не определён.

 

Ссылка на комментарий
Поделиться на другие сайты

  • 2 weeks later...

Обновление Chrome 94.0.4606.71 с устранением 0-day уязвимостей

Спойлер

Компания Google сформировала обновление Chrome 94.0.4606.71, в котором исправлены 4 уязвимости, в том числе две проблемы, уже применяемые злоумышленниками в эксплоитах (0-day). Детали пока не раскрываются, известно лишь, что первая уязвимость (CVE-2021-37975) вызвана обращением к области памяти после её освобождения (use-after-free) в JavaScript-движке V8, а вторая проблема (CVE-2021-37976) приводит к утечке информации. В анонсе новой версии также упомянута проблема CVE-2021-37974, связанная с обращением к области памяти после её освобождения в реализации режима Safe Browsing.

 

Изменено пользователем Friend
Ссылка на комментарий
Поделиться на другие сайты

  • 3 weeks later...

Релиз Chrome 95

Спойлер

Компания Google представила релиз web-браузера Chrome 95. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. В соответствии с новым 4-недельным циклом разработки следующий выпуск Chrome 96 запланирован на 16 ноября. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель, в которой сформировано обновление для прошлого выпуска Chrome 94.

 

Основные изменения в Chrome 95:

  • Для пользователей Linux, Windows, macOS и ChromeOS предложена новая боковая панель, показываемая справа от содержимого и активируемая при клике на специальный значок в панели с адресной строкой. В панели выводится сводка с закладками и списком для чтения. Изменение включено не для всех пользователей, для активации можно использовать настройку "chrome://flags/#side-panel".
    0_1634797525.png
  • Реализован вывод явного запроса полномочий на сохранение адресов, введённых в web-формах, для последующего использования в системе автозаполнения форм. При определении наличия адресов в формах пользователю теперь показывается диалог, позволяющий сохранить адрес, отредактировать, обновить ранее сохранённый адрес или отказаться от сохранения.
  • Удалён код для поддержки протокола FTP. В Chrome 88 поддержка FTP была отключена по умолчанию, но был оставлен флаг для её возвращения.
  • Прекращена поддержка URL с доменами, заканчивающимися хостами, состоящими из цифр, но не соответствующими адресам IPv4. Например, URL "http://127.1/", "http://foo.127.1/" и "http://127.0.0.0.1" теперь будут считаться некорректными.
  • Для WebAssembly реализована возможность создания обработчиков исключений, которые могут перехватить выполнение в случае возникновения исключения при выполнении определённого кода. Поддерживается как перехват известных модулю WebAssembly исключений, так и исключений в процессе вызова импортированных функций. Для перехвата исключений модуль WebAssembly должен быть собран поддерживающим исключения компилятором, таким как Emscripten.

    Отмечается, что обработка исключений на уровне WebAssembly позволяет существенно сократить размер генерируемого кода, по сравнению с обработкой исключений силами JavaScript. Например, сборка оптимизатора Binaryen с обработкой исключений силами JavaScript приводит к увеличению кода на 43%, а силами WebAssembly - на 9%. Кроме того, при использовании режима оптимизации "-O3" код с обработкой исключений силами WebAssembly практически не отличается по производительности от кода без обработчиков исключений, в то время как обработка исключений при помощи JavaScript приводит к замедлению выполнения на 30%.

  • Запрещено совместное использование модулей WebAssembly между разными доменами (cross-origin) при обработке одного сайта.
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • Включено урезание информации в HTTP-заголовке User-Agent и JavaScript параметрах navigator.userAgent, navigator.appVersion и navigator.platform. В заголовке оставлены только сведения о названии браузера, значительной версии браузера, платформе и типе устройства (мобильный телефон, ПК, планшет). Для получения дополнительных данных, таких как точная версия и расширенные данные о платформе, необходимо использовать API User Agent Client Hints. Начало урезания User-Agent на системах обычных пользователей намечено на выпуск Chrome 102, который будет опубликован через пол года.
    • Предложена возможность создания дескрипторов доступа (Access Handles) для API File System Access, позволяющего web-приложениям читать и записывать данные напрямую в файлы и каталоги на устройстве пользователя. Для сокращения способов обращения web-приложений к файловой системе компания Google планирует объединить API File System Access и Storage Foundation. В качестве подготовительного этапа к подобному объединению предложена поддержка дескрипторов доступа, дополняющего методы работы на основе файловых дескрипторов расширенными возможностями, такими как выставление блокировки записи другими процессами и создание раздельных потоков на запись и чтение, в том числе с поддержкой чтения и записи из worker-ов в синхронном режиме.
  • Стабилизирован и предложен по умолчанию API Secure Payment Confirmation с реализацией нового расширения 'payment', обеспечивающего дополнительное подтверждение совершаемой платёжной операции. Проверяющая сторона, например, банк, имеет возможность сгенерировать открытый ключ PublicKeyCredential, который может быть запрошен продавцом для дополнительного безопасного подтверждения платежа через API Payment Request, используя метод платежа 'secure-payment-confirmation'.
  • В callback-вызовы, установленные через конструктор PerformanceObserver, реализована передача свойства droppedEntriesCount, позволяющего понять сколько метрик производительности сайта было отброшено из-за того, что они не уместились в предоставленный буфер.
  • Добавлен API EyeDropper, позволяющий вызвать предоставляемый браузером интерфейс для определения цвета произвольных пикселей на экране, что может применяться, например, в графических редакторах, реализованных в виде web-приложений.
    
    
  • Добавлена функция self.reportError(), позволяющая скриптам выводить ошибки на консоль, эмулируя возникновение неперехватываемого исключения.
  • Добавлен API URLPattern, для проверки соответствия URL определённому шаблону, что, например может применяться для разбора ссылок и для перенаправления запросов на обработчики в service worker.
    
    
  • Расширен API Intl.DisplayNames, через который можно получить локализированные названия языков, стран, валют, элементов дат и т.п. В новой версии добавлены новые типы имён "calendar" и "dateTimeField", через которые можно узнать локализованные названия календаря и полей даты и времени (например, название месяцев). Для типа "language" добавлена поддержка использования диалектов языков.
  • В API Intl.DateTimeFormat добавлена поддержка новых значений параметра timeZoneName: "shortGeneric" для вывода короткого идентификатора часового пояса (например, "PT", "ET"), "longGeneric" - длинного ("Pacific Time", "Mountain Time"), "shortOffset" - с коротким смещением относительно GMT ("GMT+5") и "longOffset" с длинным смещением относительно GMT ("GMT+0500").
  • Объявлен устаревшим API U2F (Cryptotoken), вместо которого следует использовать API Web Authentication. API U2F будет отключён по умолчанию в выпуске Chrome 98 и полностью удалён в Chrome 104.
  • Внесены улучшения в инструменты для web-разработчиков. В панели Styles упрощена корректировка свойств CSS, связанных с размером (height, padding и т.п.). Во вкладке Issues предоставлена возможность скрытия отдельных проблем. В web-консоли и панелях Sources и Properties улучшено отображение свойств (собственные свойства теперь выделяются жирным шрифтом и показываются в верху списка).
    0_1634741910.png

Кроме нововведений и исправления ошибок в новой версии устранено 19 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 16 премий на сумму 74 тысячи долларов США (одна премия $20000, две премии $10000, одна премия $7500, одна премия $6000, три премии $5000 и по одной премии в $3000, $2000 и $1000). Размер 5 вознаграждений пока не определён.

 

Ссылка на комментарий
Поделиться на другие сайты

  • 3 weeks later...

Релиз Chrome 96

Спойлер

Компания Google представила релиз web-браузера Chrome 96. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Ветка Chrome 96 будет сопровождаться 8 недель в рамках цикла Extended Stable. Следующий выпуск Chrome 97 запланирован на 4 января.

 

Основные изменения в Chrome 96:

  • В панели закладок, отображаемой под адресной строкой, по умолчанию скрыта кнопка Apps ("Сервисы"), позволявшая открыть страницу "chrome://apps" со списком установленных сервисов и web-приложений.
    0_1636996742.png
  • Прекращена поддержка платформы Android 5.0 и более ранних версий.
  • Добавлена поддержка перенаправления с HTTP на HTTPS с использованием DNS (при определении IP-адресов помимо DNS-записей "A" и "AAAA" также запрашивается DNS-запись "HTTPS", при наличии которой браузер сразу подключится к сайту по HTTPS).
  • В редакции для десктоп-систем кэш перехода (Back-forward cache), обеспечивающий мгновенный переход при использовании кнопок "Назад" и "Вперёд", расширен поддержкой навигации по ранее просмотренным страницам после открытия другого сайта.
  • Добавлена настройка "chrome://flags#force-major-version-to-100" для тестирования возможного нарушения работы сайтов после достижения браузером версии, состоящей из трёх цифр вместо двух (в своё время после выпуска Chrome 10 в библиотеках разбора User-Agent всплыло много проблем). При активации опции в заголовке User-Agent начинает выдаваться версия 100 (Chrome/100.0.4664.45).
  • В сборках для платформы Windows данные, связанные с работой сетевых сервисов (cookie и т.п.), перемещены в отдельный подкаталог "Network" в рамках подготовки к реализации механизма сетевой изоляции (Network Sandbox).
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • Предложен объект FocusableMediaStreamTrack (будет переименован в BrowserCaptureMediaStreamTrack), поддерживающий метод focus(), при помощи которого приложения, осуществляющие захват содержимого окон или вкладок (например, программы для трансляции содержимого окон во время видеоконференций), могут получить информацию о фокусе ввода и отследить его изменение.
    • Реализован механизм Priority Hints, позволяющий задать важность того или иного загружаемого ресурса через указание дополнительного атрибута "importance" в тегах, таких как iframe, img и link. Атрибут может принимать значения "auto" и "low", and "high", которые влияют на порядок загрузки браузером внешних ресурсов.
  • В заголовок Cross-Origin-Embedder-Policy, управляющий режимом изоляции Cross-Origin и позволяющий определять правила безопасного использования на странице привилегированных операций, добавлена поддержка параметра "credentialless" для отключения передачи информации, связанной с учётными данными, такой как Cookie и клиентские сертификаты.
  • В CSS предложен новый псевдо-класс ":autofill", позволяющий отследить автоматическое заполнение браузером полей в теге input (при ручном заполнении селектор не срабатывает).
  • Для исключения зацикливаний запросов CSS-свойства writing-mode, direction и backgrounds теперь не распространяются на viewport при применении CSS-свойства contain (CSS Containment) к тегам HTML или BODY.
  • Добавлено CSS-свойство font-synthesis, позволяющего управлять возможностью синтеза начертаний (oblique, bold и small-cap), отсутствующих в выбранном семействе шрифтов.
  • В API PerformanceEventTiming, позволяющем получить дополнительные сведения для измерения и оптимизации отзывчивости интерфейса, добавлен атрибут InteractionID с идентификатором взаимодействия с пользователем. Идентификатор позволяет связывать разные метрики с одним действием пользователя, например, при касании к сенсорному экрану генерируется несколько событий, таких как pointerdown, mousedown, pointerup, mouseup и click, и InteractionID позволяет связать все эти события с одним касанием.
  • Добавлен новый тип медиавыражений (Media Query) - "prefers-contras" для адаптации содержимого страницы к настройкам контрастности, выставленным в операционной системе (например, включению режима высокой контрастности).
  • Для обособленных PWA-приложений в манифесте добавлена поддержка необязательного поля "id" с глобальным идентификатором приложения (если поле не указано для идентификации используется стартовый URL).
  • Для обособленных PWA-приложений реализована возможность регистрации в качестве обработчиков URL. Например, приложение music.example.com может зарегистрировать себя как обработчик URL https://*.music.example.com и все переходы из внешних приложений по данным ссылкам, например, из мессенджеров и почтовых клиентов, будут приводить к открытию данного PWA-приложений, а не новой вкладки в браузере.
  • Добавлена директива CSP (Content Security Policy) wasm-unsafe-eval для управления возможностью запуска кода на WebAssembly. Применение CSP-директивы script-src теперь охватывает и WebAssembly.
  • В WebAssembly добавлена поддержка ссылочных типов (тип externref). Модули WebAssembly теперь могут хранить в переменных и передавать в качестве аргументов ссылки на объекты JavaScript и DOM.
  • В PaymentMethodData объявлена устаревшей поддержка метода платежей "basic-card", позволявшего организовать работу с любыми типами карт через единый идентификатор, без привязки к отдельным типам данных. Вместо "basic-card" предлагается использовать альтернативные методы, такие как Google Pay, Apple Pay и Samsung Pay.
  • При использовании сайтом API U2F (Cryptotoken) пользователю будет показываться предупреждение с информацией об устаревании данного программного интерфейса. API U2F будет отключён по умолчанию в выпуске Chrome 98 и полностью удалён в Chrome 104. Вместо API U2F следует использовать API Web Authentication.
  • Внесены улучшения в инструменты для web-разработчиков. Добавлена новая панель "Обзор CSS" (CSS Overview), в которой предлагается сводка информации о цветах, шрифтах, неиспользуемых объявлениях и медиавыражениях, а также выделяются возможные проблемы. Улучшены операции редактирования и копирования CSS. В панели Стили (Styles) в контекстное меню добавлена опция для копирования CSS-определений в форме выражений JavaScript. В панели инспектирования сетевых запросов добавлена вкладка Payload с разбором параметров запроса. В web-консоли добавлена опция для скрытия всех ошибок CORS (Cross-Origin Resource Sharing) и обеспечен вывод трассировки стека для функций async.
    0_1637008174.png

Кроме нововведений и исправления ошибок в новой версии устранено 25 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 13 премий на сумму 60 тысячи долларов США (одна премия $15000, одна премия $10000, две премии $7500, одна премия $5000, две премии $3000, одна премия $2500, две премии в $2000, две премии $1000 и одна премия $500). Размер 5 вознаграждений пока не определён.

Дополнение: Отмечается появление проблем при отображении в Chrome 96 некоторых сайтов, включая Twitter, Discord и Instagram. В качестве обходного пути для устранения проблемы рекомендуется отключить поддержку параметра "credentialless в Cross-Origin-Embedder-Policy через отключение настройки "chrome://flags/#cross-origin-embedder-policy-credentialless".

 

Ссылка на комментарий
Поделиться на другие сайты

  • 1 month later...

Обновление Chrome 96.0.4664.110 с устранением критической и 0-day уязвимостей

Спойлер

Компания Google сформировала обновление Chrome 96.0.4664.110, в котором исправлены 5 уязвимостей, в том числе уязвимость (CVE-2021-4102), уже применяемая злоумышленниками в эксплоитах (0-day) и критическая уязвимость (CVE-2021-4098), позволяющая обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения.

Детали пока не раскрываются, известно лишь, что 0-day уязвимость вызвана использованием памяти после её освобождения в движке V8, а критическая уязвимость связана с отсутствием должной проверки данных в IPC-фреймворке Mojo. Из других уязвимостей упоминаются переполнение буфера (CVE-2021-4101) и обращение к уже освобождённой памяти (CVE-2021-4099) в системе рендеринга Swiftshader, а также проблема (CVE-2021-4100) с жизненным циклом объектов в ANGLE, прослойке для трансляции вызовов OpenGL ES в OpenGL, Direct3D 9/11, Desktop GL и Vulkan.

 

Ссылка на комментарий
Поделиться на другие сайты

  • 3 weeks later...

Релиз Chrome 97

Спойлер

Компания Google представила релиз web-браузера Chrome 97. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель, в которой сформировано обновление для прошлого выпуска Chrome 96. Следующий выпуск Chrome 98 запланирован на 1 февраля.

 

Основные изменения в Chrome 97:

  • Для части пользователей в конфигураторе задействован новый интерфейс управления данными, хранимыми на стороне браузера ("chrome://settings/content/all"). Ключевым отличием нового интерфейса является ориентация на настройку полномочий и очистку разом всех Cookie сайта, без возможности просмотра детализированной информации об отдельных Cookie и выборочного удаления Cookie. По мнению Google, доступ к управлению отдельными Cookie для обычного пользователя, не разбирающегося в тонкостях web-разработки, может привести к непредсказуемым нарушениям в работе сайтов из-за необдуманного изменения отдельных параметров, а также к случайному отключению активируемых через Cookie механизмов защиты конфиденциальности. Для тех кому необходимы манипуляции с отдельными Cookie рекомендовано использовать раздел управления хранилищем в инструментах для web-разработчиков (Applocation/Storage/Cookie).
    0_1637309290.png
  • В блоке с информацией о сайте реализован вывод краткого описания сайта (например, описания из википедии), если в настройках активирован режим оптимизации поиска и навигации (опция "Make searches and browsing better").
    0_1641361402.png
  • Улучшена поддержка автоматического заполнения полей в web-формах. Рекомендации с вариантами автозаполнения теперь выводятся с небольшим сдвигом и снабжаются информационными пиктограммами для более удобного предпросмотра и наглядного определения связи с заполняемым полем. Например, пиктограмма профиля даёт понять, что предлагаемое автозаполнение затрагивает поля, связанные с адресом и контактной информацией.
    0_1641362770.png
  • Обеспечено удалений из памяти обработчиков пользовательских профилей после закрытия связанных с ними окон браузера. Ранее профили оставались в памяти и продолжали выполнять работы, связанные с синхронизацией и выполнением фоновых скриптов дополнений, что приводило к необоснованной трате ресурсов на системах, в которых одновременно используется несколько профилей (например, гостевой профиль и привязка к учётной записи в Google). Кроме того, обеспечена более тщательная чистка данных, остающихся в процессе работы с профилем.
  • Улучшена страница с настройками поисковых систем ("Settings>Manage search engines"). Отключена автоматическая активация движков, информация о которых выдаётся при открытии сайта через сценарий OpenSearch - новые движки для обработки поисковых запросов из адресной строки теперь нужно активировать в настройках вручную (ранее автоматически активированные движки продолжат работать без изменений).
  • Начиная с 17 января в каталог Chrome Web Store перестанут приниматься дополнения, использующие вторую версию манифеста Chrome, но разработчики ранее добавленных дополнений, как и раньше, смогут публиковать обновления.

     
  • Добавлена экспериментальная поддержка спецификации WebTransport, определяющей протокол и сопутствующий JavaScript API для отправки и приёма данных между браузером и сервером. Канал связи организуется поверх HTTP/3 с использованием в качестве транспорта протокола QUIC. WebTransport может использоваться вместо механизма WebSockets, предлагая такие дополнительные возможности, как организация передачи в несколько потоков, однонаправленные потоки, доставка без учёта порядка отправки пакетов (out-of-order), надёжный и ненадёжный режимы доставки. Кроме того, WebTransport может применяться вместо механизма Server Push, от использования которого в Chrome отказалась компания Google.
  • В JavaScript-объекты Array и TypedArrays добавлены методы findLast и findLastIndex, позволяющие искать элементы c выводом результата относительно конца массива.
    
    
  • Закрытые (без атрибута "open") HTML-элементы <details>, теперь доступны для поиска и ссылок, и автоматически раскрываются при использовании поиска по странице и навигации по фрагментам (ScrollToTextFragment).
  • Ограничения Content Security Policy (CSP) в заголовках ответа сервера теперь применяются и к выделенным worker-ам, которые раньше трактовались как отдельные документы.
  • Обеспечен явный запрос полномочия загрузки любых субресурсов из внутренней сети - перед обращением ко внутренней сети или к localhost на сервер основного сайта теперь отправляется запрос CORS (Cross-Origin Resource Sharing) с заголовком "Access-Control-Request-Private-Network: true", требующий подтверждения операции через возвращение заголовка "Access-Control-Allow-Private-Network: true".
  • Добавлено CSS-свойство font-synthesis, позволяющее управлять возможностью синтеза браузером недостающих начертаний шрифтов (oblique, bold и small-cap), отсутствующих в выбранном семействе шрифтов.
  • Для CSS-трансформаций в функции perspective() реализован параметр 'none', который обрабатывается как бесконечное значение при организации анимации.
  • В HTTP-заголовок Permissions-Policy (Feature Policy), применяемый для делегирования полномочий и включения расширенных возможностей, добавлена поддержка значения keyboard-map, разрешающего использование API Keyboard. Реализован метод Keyboard.getLayoutMap(), позволяющий определить какая клавиша нажата с учётом разных раскладок клавиатуры (например, нажата клавиша при русской раскладке или английской).
  • Добавлен метод HTMLScriptElement.supports(), унифицирующий определение новых возможностей, доступных в элементе "script", например, можно узнать список поддерживаемых значений для атрибута "type".
  • Процесс нормализации новых строк при отправке web-форм приведён к соответствию с браузерными движками Gecko и WebKit. Нормализация символов перевода строки и возврата каретки (замена /r и /n на \r\n) в Chrome теперь выполняется на финальной стадии, а не вначале обработки отправки формы (т.е. промежуточные обработчики, использующие объект FormData, будут видеть данные как добавил пользователь, а не в нормализованном виде).
  • Стандартизировано наименование имён свойств для API Client Hints, развиваемого в качестве замены заголовка User-Agent и позволяющего выборочно отдавать данные о конкретных параметрах браузера и системы (версия, платформа и т.д.) только после запроса сервером. Свойства теперь задаются с префиксом "sec-ch-", например, sec-ch-dpr, sec-ch-width, sec-ch-viewport-width, sec-ch-device-memory, sec-ch-rtt, sec-ch-downlink и sec-ch-ect.
  • Применена вторая стадия прекращения поддержки API WebSQL, обращения к которому из сторонних скриптов теперь будет блокироваться. В дальнейшем планируется постепенно полностью прекратить поддержку WebSQL, независимо от контекста использования. Обработчик WebSQL основан на коде SQLite и мог использоваться злоумышленниками для эксплуатации уязвимостей в SQLite.
  • Для платформы Windows включена сборка с проверками целостности потока выполнения (CFG, Control Flow Guard), блокирующими попытки подстановки кода в процесс Chrome. Кроме того, к сетевым сервисам, выполняемым в отдельных процессах, теперь применяется sandbox-изоляция, ограничивающая возможности кода в данных процессах.
  • В Chrome для Android включён механизм динамического обновления лога выданных и отозванных сертификатов (Certificate Transparency), который ранее был активирован в сборах для настольных систем.
  • Внесены улучшения в инструменты для web-разработчиков. Реализована экспериментальная поддержка синхронизация настроек DevTools между разными устройствами. Добавлена новая панель Recorder, при помощи которой можно записывать, воспроизводить и анализировать действия пользователя на странице.
    0_1641360168.png

    При выводе ошибок в web-консоли обеспечено отображение связанных с проблемой номеров столбцов, что удобно для отладки проблем в минифицированном JavaScript-коде. Обновлён список устройств, которые можно симулировать для оценки отображения страницы на мобильных устройствах. В интерфейсе редактирования HTML-блоков (Edit as HTML) добавлена подсветка синтаксиса и возможность автодополнения ввода.

    0_1641360651.png

Кроме нововведений и исправления ошибок в новой версии устранено 37 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одной из уязвимостей присвоен статус критической проблемы, позволяющей обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения. Детали о критической уязвимости (CVE-2022-0096) пока не раскрываются, известно только, что она связана с обращением к уже освобождённой области памяти в коде для работы с внутренними хранилищами (API Storage).

В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 24 премии на сумму 54 тысячи долларов США (три премии $10000, две премии $5000, одна премия $4000, три премии $3000 и одна премия $1000). Размер 14 вознаграждений пока не определён.

 

Ссылка на комментарий
Поделиться на другие сайты

  • 3 weeks later...

 Обновление Chrome 97.0.4692.99 с устранением критической уязвимости

Спойлер

Компания Google сформировала обновления Chrome 97.0.4692.99 и 96.0.4664.174 (Extended Stable), в которых исправлено 26 уязвимостей, в том числе критическая уязвимость (CVE-2022-0289), позволяющая обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. Детали пока не раскрываются, известно лишь, что критическая уязвимость связана с обращением к уже освобождённой памяти (use-after-free) в реализации режима Safe Browsing.

Из других исправленных уязвимостей можно отметить проблемы с обращением к уже освобождённой памяти в механизме изоляции сайтов, технологии Web pack и коде, связанном с обработкой Push-уведомлений, адресной строкой Omnibox, выводом на печать, использованием API Vulkan, редактированием методов ввода, работой с закладками. В инструментах для web-разработчков и просмотрщике PDF-документов PDFium выявлены проблемы, приводящие к переполнению буфера. В система автозаполнения полей, API Storage и API Fenced Frames устранены влияющие на безопасность ошибки в реализации.

 

Ссылка на комментарий
Поделиться на другие сайты

  • 2 weeks later...

Релиз Chrome 98

Спойлер

Компания Google представила релиз web-браузера Chrome 98. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 99 запланирован на 1 марта.

 

Основные изменения в Chrome 98:

  • В браузер встроено собственное хранилище корневых сертификатов удостоверяющих центров (Chrome Root Store), которое будет использоваться вместо внешних хранилищ, специфичных для каждой операционной системы. Хранилище реализовано по аналогии с независимым хранилищем корневых сертификатов в Firefox, используемом в качестве первого звена для проверки цепочки доверия сертификатов при открытии сайтов по HTTPS. Новое хранилище пока не используется по умолчанию. Для упрощения перевода конфигураций, завязанных на системные хранилища, и для обеспечения переносимости, какое-то время будет действовать переходный период, в течение которого в Chrome Root Store будет включена полная подборка сертификатов, одобренных на большинстве поддерживаемых платформ.
  • Продолжается реализация плана по усилению защиты от атак, связанных с обращением к ресурсам в локальной сети или на компьютере пользователя (localhost) из скриптов, загружаемых при открытии сайта. Подобные запросы используются злоумышленниками для осуществления CSRF-атак на маршрутизаторы, точки доступа, принтеры, корпоративные web-интерфейсы и другие устройства и сервисы, принимающие запросы только из локальной сети.

    Для защиты от подобных атак в случае обращения к любым субресурсам во внутренней сети, браузер начнёт отправлять явный запрос полномочия загрузки подобных субресурсов. Запрос полномочий осуществляется через отправку на сервер основного сайта запроса CORS (Cross-Origin Resource Sharing) с заголовком "Access-Control-Request-Private-Network: true", перед обращением ко внутренней сети или к localhost. При подтверждении операции в ответ на данный запрос сервер должен вернуть заголовок "Access-Control-Allow-Private-Network: true". В Chrome 98 проверка реализована в тестовом режиме и в случае отсутствия подтверждения в web-консоли отображается предупреждение, но сам запрос субресурса не блокируется. Блокировку планируется включить не раньше выпуска Chrome 101.

  • В настройки учётной записи интегрированы средства для управления включением расширенного режима защиты от опасных сайтов (Enhanced Safe Browsing), в котором активируются дополнительные проверки для защиты от фишинга, вредоносной активности и прочих угроз в Web. При активации режима в учётной записи Google теперь будет выводиться предложение активировать режим и в Chrome.
  • Добавлена модель для выявления попыток фишинга на стороне клиента, реализованная с использованием платформы машинного обучения TFLite (TensorFlow Lite) и не требующая отправки данных для выполнения проверки на стороне Google (при этом отправляется телеметрия c информацией о версии модели и вычисленных весовых коэффициентах для каждой категории). При выявлении попытки фишинга пользователю перед открытием подозрительного сайта будет показана страница с предупреждением.
  • В API Client Hints, развиваемого в качестве замены заголовка User-Agent и позволяющего выборочно отдавать данные о конкретных параметрах браузера и системы (версия, платформа и т.д.) только после запроса сервером, реализована возможность подстановки в список идентификаторов браузера фиктивных названий, по аналогии с используемым в TLS механизмом GREASE (Generate Random Extensions And Sustain Extensibility). Например, помимо '"Chrome"; v="98"' и '"Chromium"; v="98"' в список может быть добавлен случайный идентификатор несуществующего браузера '"(Not;Browser"; v="12"'. Подобная подстановка позволит выявлять проблемы с обработкой идентификаторов неизвестных браузеров, которые приводят к тому, что альтернативные браузеры вынуждены притворяться другими популярными браузерами, чтобы обойти проверку по спискам допустимых браузеров.
  • Начиная с 17 января в каталог Chrome Web Store перестали приниматься дополнения, использующие вторую версию манифеста Chrome. Новые дополнения теперь будут приниматься только с третьей версией манифеста. Разработчики ранее добавленных дополнений, как и раньше, смогут публиковать обновления со второй версией манифеста. Полное прекращение поддержки второй версии манифеста запланировано на январь 2023 года.
  • Добавлена поддержка цветных векторных шрифтов в формате COLRv1 (подмножество шрифтов OpenType, содержащих помимо векторных глифов слой c информацией о цвете), которые могут применяться, например, для создания многоцветных emoji. В отличие от ранее поддерживаемого формата COLRv0 в COLRv1 появилась возможность использования градиентов, наложений и трансформаций. Формат также предоставляет компактную форму хранения, обеспечивает эффективное сжатие и допускает повторное использование контуров, что позволяет существенно уменьшить размер шрифта. Например, шрифт Noto Color Emoji в растровом представлении занимает 9MB, а в векторном формате COLRv1 - 1.85MB.
    0_1643793614.png
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) реализован API Region Capture, позволяющий кадрировать захватываемое видео. Например, кадрирование может понадобиться в web-приложениях, осуществляющих захват видео с содержимыми своей вкладки, для вырезания определённого содержимого перед отправкой. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
  • В CSS-свойство "contain-intrinsic-size" добавлена поддержка значения "auto", при указании которого будет использован последний запомненный размер элемента (при использовании вместе с "content-visibility: auto" разработчику не нужно угадывать отрисованный размер элемента).
  • Добавлено свойство AudioContext.outputLatency, через которое можно узнать сведения о прогнозируемой задержке перед выводом звука (задержка между запросом звука и началом обработки полученных данных устройством вывода звука).
  • CSS-свойство color-scheme, дающее возможность определить в каких цветовых схемах может быть корректно показан элемент ("light", "dark", "day mode" и "night mode"), добавлен параметр "only", позволяющий исключить принудительное изменение цветовой схемы для отдельных HTML-элементов. Например, для если указать "div { color-scheme: only light }", то для элемента div будет использоваться только светлая тема, даже если в браузере будет принудительно включено тёмное оформление.
  • В CSS добавлена поддержка media-запросов 'dynamic-range' и 'video-dynamic-range' для определения наличия экрана, поддерживающего HDR (High Dynamic Range).
  • В функцию window.open() добавлена возможность выбора открытия ссылки в новой вкладке, новом окне или всплывающем окне. Кроме того, свойство window.statusbar.visible теперь возвращает "false" для всплывающих окон и "true" для вкладок и окон.
    
    
  • Для окон и worker-ов реализован метод structuredClone(), позволяющий создавать рекурсивные копии объектов, включающие свойства не только указанного объекта, но и всех других объектов, на которые ссылается текущий объект.
  • В Web Authentication API добавлена поддержка расширения спецификации FIDO CTAP2, позволяющего задать минимальный допустимый размер PIN-кода (minPinLength).
  • Для устанавливаемых обособленных web-приложений добавлен компонент Window Controls Overlay, расширяющий экранную область приложения на всё окно, включая область заголовка, на который накладываются штатные кнопки управления окном (закрытие, минимизация, максимизация). Web-приложение может управлять отрисовкой и обработкой ввода во всём окне, за исключением наложенного блока с кнопками управления окном.
  • В WritableStreamDefaultController добавлено свойство обработки сигналов, возвращающее объект AbortSignal, при помощи которого можно сразу останавливать операции записи в WritableStream, не дожидаясь их завершения.
  • В WebRTC удалена поддержка механизма согласования ключей SDES, который в 2013 году был объявлен организацией IETF устаревшим из-за проблем с безопасностью.
  • По умолчанию отключён API U2F (Cryptotoken), который ранее объявлен устаревшим и ему на смену пришёл API Web Authentication. API U2F будет полностью удалён в Chrome 104.
  • В API Directory объявлено устаревшим поле installed_browser_version, вместо которого предложено новое поле pending_browser_version, отличающееся тем, что в нём содержится информация о версии браузера с учётом загруженных, но не применённых обновлений (т.е. версия, которая будет действовать после перезапуска браузера).
  • Убраны параметры, позволявшие вернуть поддержку TLS 1.0 и 1.1.
  • Внесены улучшения в инструменты для web-разработчиков. Добавлена вкладка для оценки работы кэша перехода (Back-forward cache), обеспечивающего мгновенный переход при использовании кнопок "Назад" и "Вперёд". Добавлена возможность эмуляции медиазапросов forced-colors. В редакторе Flexbox добавлены кнопки для поддержки свойств row-reverse и column-reverse. Во вкладке "Changes" обеспечено отображение изменений после форматирования кода, что упрощает разбор минифицированных страниц.
    0_1643802020.png

    Реализация панели просмотра кода обновлена до выпуска редактора кода CodeMirror 6, в котором значительно повышена производительность работы с очень большими файлами (WASM, JavaScript), решены проблемы со случайными смещениями при навигации и улучшены рекомендации системы автодополнения при редактировании кода. В панель с CSS-свойствами добавлена возможность фильтрации вывода по имени или значению свойства.

    0_1643802229.png

Кроме нововведений и исправления ошибок в новой версии устранено 27 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 19 премий на сумму 88 тысяч долларов США (две премии $20000, одна премия $12000, две премии $7500, четыре премии $1000 и по одной премии в $7000, $5000, $3000 и $2000.

 

Ссылка на комментарий
Поделиться на другие сайты

  • 2 weeks later...

Обновление Chrome 98.0.4758.102 с устранением 0-day уязвимостей

Спойлер

Компания Google сформировала обновление Chrome 98.0.4758.102, в котором исправлены 11 уязвимостей, в том числе одна опасная проблема, уже применяемая злоумышленниками в эксплоитах (0-day). Детали пока не раскрываются, известно лишь, что уязвимость (CVE-2022-0609) вызвана обращением к области памяти после её освобождения (use-after-free) в коде, связанном с API Web Animations.

Из других опасных уязвимостей отмечается переполнение буфера в системе для работы с группами вкладок, целочисленное переполнение в IPC-фреймворке Mojo, а также обращения к освобождённым областям памяти в ANGLE (прослойка для трансляции вызовов OpenGL ES в OpenGL, Direct3D 9/11, Desktop GL и Vulkan), коде для взаимодействия с GPU и реализациях API File Manager и API Webstore.

 

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...