Релиз Chrome 79

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

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

  • Активирован компонент Password Checkup, предназначенный для анализа надёжности используемых пользователем паролей. При попытке входа на любой сайт Password Checkup выполняет проверку логина и пароля по базе скомпрометированных учётных записей с выводом предупреждения в случае выявления проблем (проверка осуществляется на основе хэш-префикса на стороне пользователя). Проверка осуществляется по базе, охватывающей более 4 миллиардов скомпрометированных аккаунтов, фигурировавших в утечках пользовательских баз. Предупреждение также выводится при попытке использования тривиальных паролей, таких как «abc123». Для управления включением Password Checkup в секции «Sync and Google Services» реализована специальная настройка.
  • Представлена новая технология выявления фишинга в режиме реального времени. Раньше проверка выполнялась через обращение к локально загружаемым чёрным спискам Safe Browsing, которые обновлялись примерно раз в 30 минут, чего оказалось недостаточно, например, в условиях частого переключения доменов злоумышленниками. Новый метод позволяет проверять URL на лету с предварительной проверкой по белым спискам, в которые включены хэши тысяч популярных сайтов, заслуживающих доверия. Если открываемый сайт отсутствует в белом списке, то браузер проверяет URL на сервере Google, передавая первые 32 бита хэша SHA-256 ссылки, из которой вырезаются возможные персональные данные. По оценке Google новый подход позволяет на 30% повысить эффективность вывода предупреждений для новых фишинг-сайтов.
  • Добавлена упреждающая защита от передачи учётных данных Google и любых паролей, сохранённых менеджере паролей, через фишинговые страницы. При попытке ввода сохранённого пароля на сайте, на котором этот пароль обычно не применяется, пользователю будет выводиться предупреждение о потенциально опасном действии.
  • Для соединений с использованием TLS 1.0 и 1.1 теперь показывается индикатор небезопасного соединения. Полностью поддержка TLS 1.0 и 1.1 будет отключена в Chrome 81, намеченном на 17 марта 2020 года.
  • Добавлена возможность заморозки неактивных вкладок, позволяющая автоматически выгрузить из памяти вкладки, которые находятся в фоновом состоянии более 5 минут и не выполняют имеющих значение действий. Решение о пригодности той или иной вкладки для заморозки принимаются на основе эвристики. Управление включением функции производится через флаг «chrome://flags/#proactive-tab-freeze».
  • Обеспечена блокировка смешанного контента на страницах, открытых по HTTPS, для того, чтобы гарантировать, что страницы, открытые по https:// содержат только ресурсы, загруженные по защищённому каналу связи. Несмотря на то, что наиболее опасные виды смешанного контента, такие как скрипты и iframe, уже блокируются по умолчанию, изображения, звуковые файлы и видео до сих пор могли быть загружены по http://. Ранее применявшийся индикатор смешанного контента для таких вставок признан неэффективным и вводящим пользователя в заблуждение, так как он не даёт однозначной оценки безопасности страницы. Например, через подмену изображений атакующий может подставить отслеживающие действия пользователя Cookie, попытаться эксплуатировать уязвимости в обработчиках изображений или совершить подлог, заменив представленную на изображении информацию. Для отключения блокировки смешанных компонентов добавлена специальная настройка, вызываемая через меню, выпадающее при клике на символ замка.
  • Добавлена экспериментальная возможность совместного доступа к содержимому буфера обмена между настольной и мобильной версиями Chrome. В связанных одной учётной записью экземплярах Chrome теперь можно получить доступ к содержимому буфера обмена другого устройства, в том числе возможен совместный доступ к буферу обмена между мобильной и настольной системой. Содержимое буфера обмена шифруется с применением сквозного (end-to-end) шифрования, не позволяющего получить доступ к тексту на серверах Google. Функция включается через опции chrome://flags#shared-clipboard-receiver, chrome://flags#shared-clipboard-ui и chrome://flags#sync-clipboard-service.
  • В адресной строке в определённые моменты (например, при сохранении пароля) при выключенной синхронизации профиля помимо аватара обеспечено отображение имени текущей учётной записи в Google, чтобы пользователь мог точно идентифицировать текущую активную учётную запись.
  • Для 1% пользователей активирована поддержка «DNS поверх HTTPS» (DoH, DNS over HTTPS). В эксперименте участвуют только пользователи, в системных настройках которых уже указаны DNS-провайдеры, поддерживающие DoH. Например, если у пользователя в системных настройках указан DNS 8.8.8.8, то в Chrome будет активирован DoH-сервис Google («https://dns.google.com/dns-query»), если DNS — 1.1.1.1, то DoH сервис Cloudflare («https://cloudflare-dns.com/dns-query») и т.п. Для управления включением DoH предусмотрена настройка «chrome://flags/#dns-over-https». Поддерживается три режима работы «secure», «automatic» и «off». В режиме «secure» хосты определяются только на основе ранее прокешированных безопасных значений (полученных через защищённое соединение) и запросов через DoH, откат на обычный DNS не применяется. В режиме «automatic» если DoH и защищённый кэш недоступны допускается получение данных из небезопасного кэша и обращение через традиционный DNS. В режиме «off» вначале проверяется общий кэш и если данных нет, запрос отправляется через системный DNS.
  • Добавлена экспериментальная поддержка кэширования отрисованного содержимого при смене страниц кнопками вперёд и назад, позволяющая существенно снизить задержки при подобном виде навигации за счёт полного кэширования всей страницы, не требующего повторной отрисовки и загрузки ресурсов. Оптимизация особенно заметна в версии для мобильных устройств, на которой прирост производительности при навигации достигает 19%. Режим включается при помощи опции «chrome://flags#back-forward-cache».
  • Удалена настройка «chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains», позволявшая вернуть показ протокола в адресной строке (теперь все ссылки всегда показываются без https:// и http://, а также без «www.»).
  • В сборках для Windows включена sandbox-изоляция сервиса воспроизведения звука. Для управления включением изоляции предложено свойство AudioSandboxEnabled.
  • В средства централизованного администрирования для предприятий реализована возможность определения правил, задающих размер памяти, который экземпляр браузера может потребить до того, как начнут выгружаться фоновые вкладки. Высвобождаемая после выгрузки вкладки память становится доступна для использования, а содержимое вкладки вновь загружается при переключении на неё.
  • В Linux задействован встроенный обработчик верификации сертификатов, который пришёл на смену ранее применяемой системы NSS. При этом встроенный обработчик продолжает использовать хранилище NSS при проверке, но предъявляет более жёсткие требования при обработке некорректно закодированных и обособленно заверенных сертификатов (все сертификаты обязательно должны заверяться удостоверяющим центром).
  • В версии для платформы Android добавлена возможность назначения адаптивных пиктограмм для устанавливаемых web-приложений, работающих в режиме Progressive Web Apps (PWA). Адаптивные пиктограммы могут подстраиваться под интерфейс, применяемый производителем устройства, например, быть круглыми, квадратными или со сглаженными углами.

  • Добавлен API WebXR Device, предоставляющий доступ к компонентам для создания виртуальной и дополненной реальности. API позволяет унифицировать работу с различными классами устройств, от стационарных шлемов виртуальной реальности, подобных Oculus Rift, HTC Vive и Windows Mixed Reality, до решений на базе мобильных устройств, таких как Google Daydream View и Samsung Gear VR. Из приложений, в которых может быть применим новый API упоминаются программы для просмотра видео в режиме 360°, системы визуализации трёхмерного пространства, создание виртуальных кинотеатров для презентации видео, проведение экспериментов по созданию 3D-интерфейсов магазинов и галерей;
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) предложено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
    • Для всех элементов HTML предложен атрибут «rendersubtree», обеспечивающий фиксацию отображения DOM-элемента. При присвоении атрибуту значения «invisible» содержимое элемента не будет отрисовываться и проверяться, что позволяет оптимизировать рендеринг. При установке значения «activatable» браузер удалит невидимый атрибут, отрисует содержимое и сделает его видимым.
    • Добавлен вариант API Wake Lock на основе механизма Promise, предоставляющий более безопасный способ управления отключением автоблокировки экрана и перевода устройств в энергосберегающие режимы.
  • Реализована возможность применения атрибута autofocus для всех элементов HTML и SVG, на которые может быть быть установлен фокус ввода.
  • Для изображений и видео обеспечено вычисление коэффициента соотношения сторон на основе атрибутов Width или Height, что может использоваться для определения размера изображения при помощи CSS, на стадии когда изображение ещё не загружено (решает проблему с перестроением страницы после загрузки изображений).
  • Добавлено CSS-свойство font-optical-sizing, которое автоматически выставляет размер изменчивого шрифта (variable font) в оптических координатах «opsz«, если шрифт их поддерживает. Режим позволяет выбрать оптимальную форму глифа для указанного размера, например, использовать более контрастные глифы для заголовков.
  • Добавлено CSS-свойство list-style-type, позволяющее использовать любые символы вместо точек в списках, например, «-«, «+», «★» и «▸».
  • При невозможности выполнить Worklet.addModule() теперь возвращается объект с детальной информацией о характере ошибки, который позволяет более точно оценить причину ошибки (проблемы с сетевым соединением, некорректный синтаксис и т.п.).
  • Прекращена обработка элементов ‹script› при их перемещении между документами. При переносе между документами также отключено выполнение связанных со скриптом событий «error» и «load».

  • В JavaScript-движке V8 проведена оптимизация обработки изменения представления полей в объектах, в результате которой выполнение кода AngularJS в тестовом наборе Speedometer стало выполняться на 4% быстрее.
  • В V8 также проведена оптимизация обработки геттеров, определённых во встроенных API, таких как Node.nodeType и Node.nodeName, в условиях отсутствия обработчика IC (inline caching). Изменение примерно на 12% сократило затраты времени на IC runtime при выполнении тестов Backbone и jQuery из набора Speedometer.
  • Обеспечено кэширование результатов работы механизма OSR (called on-stack replacement), который осуществляет подстановку оптимизированного кода в процессе выполнения функции (позволяет начать использовать оптимизированный код для длительно выполняемых функций, не дожидаясь их повторного запуска). Кэширование OSR даёт возможность использовать результаты оптимизации и при повторном запуске функции, без необходимости прохождения повторной оптимизации. В некоторых тестах изменение позволило поднять пиковую производительность на 5–18%.
  • Изменения в инструментах для web-разработчиков:
      Появился отладочный режим для определения причин блокировки запроса или отдачи Cookie.

    • В блоке со списком Cookie добавлена возможность быстрого просмотра значения выбранной Cookie через клик на определённой строке.
    • Добавлена возможность симуляции разных настроек для media-запросов prefers-color-scheme и prefers-reduced-motion (например, для проверки поведения страницы при тёмной системной теме оформления или при отключенных анимированных эффектах).
    • Модернизировано оформление вкладки Coverage, позволяющей оценить используемый и не используемый код. Добавлена возможность фильтрации информации по её типу (JavaScript, CSS). Информация об использовании кода также добавлена при отображении исходного текста.
    • Добавлена возможность отладки причин запроса того или иного сетевого ресурса после записи сетевой активности (можно просмотреть трассировку вызова JavaScript-кода, приведшего к загрузке ресурса).
    • Добавлена настройка «Settings > Preferences > Sources > Default Indentation» для определения вида отступа (2/4/8 пробелов или табуляция) в коде, выводимом в панелях Console и Sources.

Кроме нововведений и исправления ошибок в новой версии устранена 51 уязвимость. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Две проблемы (CVE-2019-13725, обращение к уже освобождённой области памяти в коде для поддержки Bluetooth, и CVE-2019-13726, переполнение кучи в менеджере паролей) помечены как критические, т.е. позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. Сразу две критические проблемы в рамках одного цикла разработки в Chrome выявлены впервые. Первая уязвимость была найдена исследователями из компании Tencent Keen Security Lab и продемонстрирована на соревновании Tianfu Cup, а вторую нашёл Сергей Глазунов из Google Project Zero.

В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 37 премий на сумму 80000 долларов США (одна премия $20000, одна премия $10000, две премии $7500, четыре премии $5000, одна премия $3000, две премии $2000, две премии $1000 и восемь премий $500). Размер 15 вознаграждений пока не определён.

Источник: http://www.opennet.ru/opennews/art.shtml?num=52000