Выпуск web-браузера Chrome 63
Компания Google представила релиз web-браузера Chrome 63. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
Основные изменения в Chrome 63:
- Изменено оформление страницы «chrome://flags», позволяющей активировать доступные для тестирования экспериментальные возможности. В новом оформлении применён метод адаптивной верстки, проведена оптимизация для работы с сенсорного экрана, добавлена поддержка поиска флагов по маске, изменена цветовая схема, явно разделены опции, доступные и недоступные на данной системе;
- Добавлена новая служебная страница «chrome://gpu», на которой представлены подробности о графической подсистеме, такие как число бит на пиксель и на цветовой компонент, параметры масштабирования для монитора, настройки цветового пространства и т.п.
- Обеспечен вывод предупреждения при выявления попыток перехвата трафика HTTPS, в результате активности вредоносного ПО или MITM-прокси. В качестве признака для вывода предупреждения используется аномально большое число ошибок SSL-соединений для разных сайтов за короткий промежуток времени, т.е. метод выявляет факты грубой подмены, в результате которой возникают ошибки SSL и соединение помечается как небезопасное. Основное отличие от предупреждения о небезопасном соединении заключается в том, что пользователь информируется о возможной локальной MITM-атаке, которая не связана с проблемами настройки HTTPS на конкретном внешнем сайте.
- Включена пометка обращений к ресурсам по протоколу FTP флагом небезопасного соединения. Протокол FTP рассматривается как уступающий HTTP по уровню защиты, так как у HTTP есть возможность применения HSTS (HTTP Strict Transport Security) для автоматизации проброса на HTTPS;
- При нажатии на индикатор уровня безопасности страницы теперь выводится только список изменённых настроек и разрешений доступа. Настройки которые не изменились и остаются в значении по умолчанию не показываются под индикатором, но остаются доступны в разделе просмотра информации о странице (Page Info);
- При просмотре видео курсор при попадании поверх видео теперь автоматически скрывается при скрытии элементов управления воспроизведением;
- В инструменты для разработчиков (DevTools) добавлена возможность инспектирования кода внутренних компонентов интерфейса браузера (для включения требуется устновить флаг chrome://flags/#enable-ui-devtools);
- Продолжена работа по борьбе с навязчивыми уведомлениями и запросами полномочий, которые по статистике Google игнорируются или отвергаются пользователями в 90% случаев (например, многие сайты злоупотребляют предложениями об отправке push-уведомлений). В дополнение к ранее добавленной в Chrome 59 временной блокировке запросов, если пользователь уже три раза отклонил этот запрос, в новом выпуске Chrome для Android запросы теперь выводятся в форме модального диалога (требует обязательных действий от пользователя) вместо ничего не обязывающего баннера в нижней части. Предполагается, что это подтолкнёт разработчиков сайтов запрашивать расширенные полномочия только при возникновении реальной необходимости и в привязке к контексту запрошенного посетителем действия, а пользователя заставит более внимательно реагировать на запросы полномочий, не просто игнорируя их, а принимая или запрещая;
- Реализована возможность динамической загрузки JavaScript-модулей, принимая решения о потребности в модуле непосредственно в коде. Кроме ранее предложенного статического метода загрузки модулей через тег «script» с флагом «type=module», модули и скрипты теперь можно загружать по мере возникновения необходимости при помощи конструкции import (specifier) в JavaScript-коде;
- Представлен новый API Device Memory, позволяющий получить сведения о размере оперативной памяти. Данная информация может оказаться полезной для создания легковесных вариантов web-приложений, загружающихся для устройств с небольшим ОЗУ или для активации расширенных возможностей при наличии большого объёма памяти;
- Добавлена поддержка указания режима async при объявлении функций генератора, а также возможность применения async к итераторам, которые могут использоваться в циклах «for»;
- В браузер встроены правила, подставляющие заголовок HSTS (Strict Transport Security) для открытия по умолчанию HTTPS на всех сайтах, использующих домены первого уровня .dev и .foo. Данные домены принадлежат компании Google, которая определяет правила их использования, и ориентированы для размещения сайтов, связанных с разработкой ПО и web-приложений.
- Добавлена поддержка шлемов виртуальной реальности Daydream View для просмотра сайтов с поддержкой WebVR;
Кроме нововведений и исправления ошибок в новой версии устранено 37 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 19 премий на сумму более 46 тысяч долларов США (одна премия $10500, одна премия $6337, три премии $5000, по одной премии в $3500, $3337, $2500 и $2000, две премии $1000 и три премии $500). Размер пяти вознаграждений пока не определён.
Одной из проблем присвоен критический уровень опасности — в реализации протокола QUIC (Quick UDP Internet Connections) выявлено переполнение буфера (CVE-2017–15407), которое позволяет обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения. Примечательно, что прошлая критическаая уязвимость в QUIC была исправлена месяц назад. Из уязвимостей, которым присвоена высокая степень опасности также можно отметить серию проблем в PDF-просмотрщике PDFium (CVE-2017–15408, CVE-2017–15410, CVE-2017–15411), переполнение буфера в графической библиотеке Skia (CVE-2017–15409), обращение к уже освобождённому блоку памяти в libXML (CVE-2017–15412) и уязвимость в WebAssembly (CVE-2017–15413).
© OpenNet