Google browser

Релиз Google Chrome 56
Компания Google представила релиз web-браузера Chrome 56. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, идущим в комплекте модулем Flash, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.

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

  • Началось воплощение в жизнь инициативы по пометке незащищённых HTTP-соединений специальной меткой в адресной строке. При открытии по HTTP страниц, передающих пароли или номера кредитных карт, браузер теперь предупреждает пользователя о проблемах с безопасностью. Индикатор небезопасного HTTP-соединения аналогичен индикатору, информирующему о проблемах с HTTPS, за тем исключением, что первое время он не будет выделен красным цветом (цвет будет изменён на красный на одном из последних этапов инициативы). В дальнейшем планируется перейти к выводу предупреждения о небезопасности для всех сайтов, открываемых по HTTP, а не только для страниц с формами ввода конфиденциальных данных. 0_1485422922.png
  • Для всех пользователей введены ограничения по воспроизведению Flash-контента, по умолчанию теперь предлагается использовать HTML5. Поддержка Flash больше не объявляется сайтам в списках navigator.plugins и navigator.mimetypes, а при желании воспроизведения Flash-контента от пользователя требуется явное включение поддержки Flash для каждого отдельного сайта;
  • Добавлена поддержка API Web Bluetooth, предоставляющего средства для доступа web-приложений к внешним устройствам, связанным через протокол Bluetooth Low Energy (BLE). Например, при помощи нескольких строк код на JavaScript можно получить доступ к внешним сенсорам, принтерам или экранам. Web Bluetooth API использует протокол GATT и пока ограничен платформами Android, Chrome OS и macOS. Для обнаружения устройств предлагается использовать механизм Physical Web, позволяющий быстро получать ссылки на окружающие объекты при помощи Bluetooth-меток Eddystone. Для просмотра списка доступных Bluetooth-устройств и их параметров реализована специальная страница "chrome://bluetooth-internals"; 0_1485422136.png
  • Добавлена встроенная поддержка звукового кодека FLAC (Free Lossless Audio Codec), развиваемого сообществом Xiph.Org и обеспечивающего уровень сжатия звукового потока в 50-60% без потери качества (lossless). FLAC поддерживается в контейнерах FLAC и Ogg в составе тега audio или при обработке потока через API decodeAudioData();
  • Включена по умолчанию поддержка API WebGL 2.0, предоставляющего средства для рендеринга 3D-контента на уровне возможностей OpenGL ES 3.0 через элемент canvas. Включение WebGL 2.0 и FLAC синхронизировано с проектом Mozilla, который позавчера активировал данные возможности в выпуске Firefox 51;
  • Прекращена поддержка алгоритма SHA-1, для которого выявлен ускоренный метод подбора коллизий. В частности, прекращена поддержка шифров ECDHE_ECDSA_WITH_AES_128_CBC_SHA, ECDHE_ECDSA_WITH_AES_256_CBC_SHA, а также алгоритма ECDSA с SHA-1 и SHA-512. Сайты использующие выданные удостоверяющими центрами сертификаты, заверенные с использованием алгоритма хэширования SHA-1, теперь будут помечаться как незащищённые. Локально добавленные сертификаты на основе SHA-1 продолжат свою работу до выпуска Chrome 57, намеченного на март. Для корпоративных пользователей реализована настройка EnableSha1ForLocalAnchors, позволяющая обойти вводимые ограничения и продолжить использование SHA-1 в PKI. Сертификаты с SHA-1, используемые для аутентификации клиентов, а также директива EnableSha1ForLocalAnchors будут поддерживаться до 1 января 2019 года.
  • Добавлена экспериментальная поддержка медиасеансов (Media Sessions, chrome://flags/#enable-default-media-session), позволяющих автоматически выбирать актуальный контент и предотвращать одновременное воспроизведение в нескольких вкладках. Например, при включенных медиасеансах, при открытии новой вкладки с роликом YouTube, проигрывание музыки в ранее открытой вкладке будет приостановлено;
  • Реализована поддержка липкого позиционирования CSS - position:sticky, при которой можно определить, чтобы при скроллинге часть блока оставалась видимой, пока сам блок полностью не выйдет за пределы экрана. Например, теперь можно легко сделать так, чтобы заголовок с пояснениями по столбцам для длинной таблицы был виден, пока видна хоть одна ячейка таблицы, не прибегая к усложнениям в виде перехвата событий прокрутки и переключения позиции с "relative" на "fixed";
  • В версии для платформы Android появилась поддержка API Remote Playback, позволяющего управлять воспроизведением контента через HTMLMediaElement на умных телевизорах или громкоговорителях;
  • Добавлена поддержка API WebVR, предоставляющего средства для создания приложений виртуальной реальности. Поддержка API пока ограничена платформой Android;
  • Web-приложениям предоставлена возможность инициирования создания фотографий со встроенной камеры и изменения настроек камеры через API Image Capture. Добавлена спецстраница "chrome://media-internals", на которой представлен список всех подключенных web-камер, а также поддерживаемых ими форматов и разрешений; 0_1485422031.png
  • При вылезании содержимого за пределы заданной в параметрах viewport области, браузер теперь автоматически подстраивает позицию прокрутки для оставления содержимого видимым, за исключением случаев явного применения CSS-свойства overflow-anchor;
  • В API Notifications реализована поддержка включения изображений в состав уведомлений через определение свойства "image"; 0_1485425948.png
  • Расширены возможности API PaymentRequest, например, появилась поддержка сериализации JSON и запроса имени плательщика (requestPayerName);
  • Скрытие или отображение адресной строки на мобильных устройствах более не приводит к изменению размеров содержимого и элемнтов, подогнанных под параметры viewport;
  • На устройствах с платформой Android, имеющих как минимум 512 Мб ОЗУ, в формах ввода текста включена по умолчанию проверка орфографии, при наличии необходимых словарей в системе;
  • Унифицировано базовое семейство шрифтов, используемое для элементов интерфейса, которое теперь на всех платформах поставляется под именем system-ui;
Кроме нововведений и исправления ошибок, в новой версии устранена 51 уязвимость. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity и LibFuzzer. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 21 премию на сумму 50837 долларов США (одна премия $8837, две премии $8000, одна премия $7500, одна премия $5500, одна премия $3000, четыре премии $2000, одна премия $1000 и две премии $500). Сумма неокончательная, так как размер шести вознаграждений ещё не определён.
Chrome Releases: Stable Channel Update for Desktop
 
Релиз web-браузера Chrome 69 с переработанным интерфейсом пользователя
Компания Google представила релиз web-браузера Chrome 69, который приурочен к празднованию десятилетия проекта и включает в себя несколько заметных новшеств, таких как обновлённый интерфейс пользователя, возможность настройки стартовой страницы и новый компилятор WebAssembly. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.

0_1536125548.png

Основные изменения в Chrome 69:
  • Предложен новый модернизированный интерфейс пользователя, оформленный в стиле Material Design и оптимизированный для устройств с сенсорными экранами (увеличенные отступы, скруглённое поле адресной строки, новая кнопка "+" для открытия вкладок, изменённая расцветка панелей и полей ввода). Переработка затронула практически все компоненты интерфейса, включая всплывающие предупреждения и систему управления загрузками
  • 0_1536122258.png
  • Возможность настройки фона стартовой страницы, отображаемой при открытии новой вкладки. В правом нижнем углу страницы размещена кнопка в виде шестерёнки, при нажатии на которую можно выбрать фоновую картинку. Предоставлена готовая коллекция фоновых изображений, а также возможность загрузки своих картинок;
    0_1536123173.png
  • Список избранных ссылок на странице открытия новой вкладки теперь формируется с использованием пиктограмм сайтов (favicon), а не миниатюр со скриншотами страниц.
    0_1536123208.png
  • Добавлена возможность настройки состава избранных ссылок на странице открытия новой вкладки. Элементы теперь можно редактировать, добавлять и удалять
  • 0_1536123465.png

  • В списке рекомендаций, показываемом при вводе в адресной строке, предоставлена возможность быстрого перехода к уже открытым вкладкам, если их содержимое соответствует запросу, заданному пользователем. Например, при наборе адреса сайта, уже открытого в другой вкладке, рядом с рекомендацией появится кнопка для перехода к этой вкладке вместо открытия новой;
  • 0_1536123549.png

  • В адресной строке добавлена поддержка вывода ответов на вопросы на естественном языке. В том числе при помощи новой системы рекомендаций можно сразу получать данные о прогнозе погоды, переводить слова на иностранном языке, вычислять математические выражения, получать справку о известных людях и событиях;
    0_1536126098.png

  • Существенно переработан менеджер паролей. Добавлена возможность генерации надёжных паролей при заполнении регистрационных форм. Сгенерированные пароли автоматически сохраняются во встроенном менеджере паролей и могут синхронизироваться с другими устройствами пользователя, привязанными к текущей учётной записи в Google. Улучшена система автозаполнения форм. В меню управления входом добавлены элементы для быстрого перехода к настройкам автозаполнения форм, сохранённым паролям и методам проведения платежей;
  • 0_1536123747.png

  • Воплощён в жизнь второй этап изменения индикации безопасности соединения. Для HTTPS теперь не показывается зелёная надпись "Secure", так как HTTP помечается небезопасным и нет смысла отдельно помечать HTTPS индикатором безопасного соединения. В октябрьском выпуске Chrome 70 будет убран и значок с изображением замка для HTTPS, а цвет надписи "Not Secure" для соединений HTTP будет заменён с серого на красный.

    0_1526584883.png

  • Добавлена возможность просмотра видео в режиме "картинка в картинке" (PIP API, Picture in Picture), позволяющем отсоединить видео в форме плавающего окна, которое остаётся на виду в процессе навигации в браузере;
  • Добавлен экспериментальный эффект размытия курсора мыши при движении (видео). Для включения эффекта можно использовать настройку "chrome://flags/#ash-enable-cursor-motion-blur";

  • Прекращено сохранение настроек, задаваемых сайтами при помощи Flash. Подобные настройки теперь не сохраняются между сеансами;

  • При установке в окружении Android 8.0+ на устройствах с 1 Гб ОЗУ Chrome теперь регистрируется как обработчик для воспроизведения мультимедийных файлов;

  • Существенно переработана версия Chrome для платформы iOS: Добавлена новая нижняя панель, предоставляющая быстрый доступ к наиболее часто вызываемым функциям. Переработана страница открытия новой вкладки, на которой теперь представлены часто используемые закладки и списки чтения. Улучшена работа режима инкогнито, обзора недавно закрытых вкладок, интерфейса для просмотра истории посещений и списков чтения. Предложен новый интерфейс переключения между вкладками, отображающий открытые вкладки в виде сетки и позволяющий открыть вкладки в том числе на других устройствах
  • .
    0_1536124463.jpg
  • Реализован режим выделения текста по границе графем в лигатуре (если символ образован соединением нескольких графем)
  • ;
    0_1536134035.png
  • Добавлена экспериментальная поддержка видеокодека AV1, разработанного альянсом Open Media (AOMedia), в котором представлены такие компании, как Mozilla, Google, Microsoft, Intel, ARM, NVIDIA, IBM, Cisco, Amazon, Netflix, AMD, VideoLAN, CCN и Realtek. AV1 позиционируется как общедоступный и не требующий оплаты отчислений свободный формат кодирования видео, который заметно опережает H.264 и VP9 по уровню сжатия. Для включения поддержки AV1 следует активировать опцию "chrome://flags/#enable-av1-decoder";

Изменения для web-разработчиков:
  • Добавлено CSS-свойство conic-gradient для создания конусообразных градиентов, в которых изменение цвета производится вокруг центра, а не от центра к краю, что позволяет создавать эффекты в виде колеса меняющихся оттенков;

  • Добавлены расширенные варианты CSS-свойств margin, padding и border, задаваемые в формате margin|padding-{block,inline}-{start,end} и border-{block,inline}-{start,end}-{width,style,color}, например, "padding-inline-end: 10px;" или "border-block-start-style: dotted;". Ранее данные свойства не были стандартизированы и тестировались с префиксом "-webkit";

  • Добавлена серия CSS-свойств scroll-snap-*, позволяющих управлять точкой остановки ползунка при прокрутке и выравниванием сдвигаемого содержимого. Например, можно настроить прокрутку со сдвигом по границам изображения или с центрированием картинки;
  • Представлена новая CSS-функция env() и meta-тег viewport-fit, которые позволяют использовать всё экранное пространство на устройствах с безрамочными экранами, содержащими неотображаемые области (например, закругление экрана и островок для фронтальной камеры, громкоговорителя и сенсоров);

  • Добавлен API OffscreenCanvas, позволяющий в отдельном потоке предварительно отрисовывать в буфер canvas-изображения (2D и WebGL) для их последующего использования в Worker-ах;

  • В DOM реализован новый метод Element.toggleAttribute(), позволяющий инвертировать существование атрибута элемента (создать если нет и удалить если есть) по аналогии с Element.classList.toggle;

  • В Fetch API добавлено свойство Request.isHistoryNavigation, дающее возможность узнать, связан ли выполняемый запрос с повторным отображение страницы при нажатии кнопок вперёд или назад;

  • Добавлен API ReportingObserver, позволяющий определить обработчик для генерации отчёта, вызываемый при обращении к устаревшим возможностям. Сгенерированный отчёт по выбору пользователя может быть сохранён, отправлен на сервер или обработан скриптом на JavaScript;

  • В реализацию JavaScript-массивов добавлено два метода: Array.prototype.flat() - возвращает новый массив с развёрнутым содержимым вложенных массивов; Array.prototype.flatMap() для создания нового массива, в котором каждый элемент сопоставлен при помощи заданной функции;

  • Добавлен API Web Locks для получения блокировок в асинхронном режиме, из закрепления за собой и освобождения после завершения необходимой работы с совместно используемым ресурсом. Пока один процесс удерживает блокировку, другие процессы ожидают её освобождения без остановки выполнения;

  • Добавлен API Keyboard Map для создания раскладок нажатий клавиш, позволяющий определить какой код символа (KeyboardEvent.code) возвращать при нажатии той или иной физической клавиши;

  • API Web Authentication добавлена поддержка устройств CTAP2, что позволяет применять для аутентификации на сайтах биометрические датчики и подключаемые хранилища ключей;

  • Добавлена возможность передачи клиентом подсказок (hint) "rtt", "downlink" и "ect" в составе HTTP-запроса, помогающих оценить на сервере качество канала связи с клиентом. Например, через rtt передаются сведения о задержке получения ответа (round-trip) для текущего соединения, что может быть использовано для отдачи урезанных изображений при медленном соединении;

  • Добавлен метод encryptionScheme, через который можно проверить поддерживается ли в текущей реализации Encrypted Media Extensions (EME) указанная схема шифрования;

  • В JavaScript-движке V8 активирован новый начальный (baseline) компилятор Liftoff для WebAssembly. Ключевое отличие Liftoff от ранее применяемого компилятора TurboFan в том, что Liftoff нацелен на достижение наибольшей скорости начальной компиляции, ценой низкой производительности генерируемого кода. Liftoff значительно проще TurboFan и генерирует готовый для запуска машинный код очень быстро, что позволяет почти сразу приступить к его выполнению, сведя задержку от компиляции к минимуму.

  • Для ускорения чернового кода параллельно запускается фаза оптимизирующей перекомпиляции, которая выполняется с использованием компилятора Turbofan. После готовности оптимизированых машинных инструкций, начальный черновой вариант заменяется на более быстрый код. В сумме, за счёт снижения задержки перед началом выполнения, применение Liftoff привело к увеличению производительности тестового набора WebAssembly примерно на 20%.
Кроме нововведений и исправления ошибок в новой версии устранено 40 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено.

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

OpenNews: Релиз web-браузера Chrome 69 с переработанным интерфейсом пользователя
 
Google отменил скрытие поддоменов "www" и "m", но намерен стандартизировать их особый статус

В Chrome 69 принято изменение, отменяющие автоматическое скрытие поддоменов "www" и "m" в адресной строке. Скрытие тривиальных поддоменов отменено в ответ на неоднозначное восприятие данного изменения сообществом и приведения примеров возможности осуществления спуфинга. Например, в системах позволяющих регистрировать поддомены, пользователь может получить поддомен "m", который отобразиться в адресной строке как основной сайт.

В Chrome 70 планируется вернуть скрытие поддомена "www", доработав код замены с учётом возможных проблем (например, обрабатывать только первый поддомен, чтобы не заменять "www.www.example.com" на "example.com"). По мнению Google, обычно сервисы, предоставляющие поддомены пользователям, резервируют имя "www", что минимизирует риск спуфинга. С поддоменом "m" возникает путаница при попытке открытия мобильного варианта сайта на настольной системе (отображается другое оформление, но в адресной строке показывается основной домен). Поэтому замену поддомена "m" планируется отложить на неопределённое время, но
Google полностью не отказывается от этой идеи.

Более того, компания Google намерена инициировать публичное обсуждение вопроса внесения изменений в web-стандарты. Планируется стандартизировать особый статус поддоменоов "www" и "m", переведя их в категорию зарезервированных для особого применения. При этом метод отображения данных зарезервированных поддоменов в интерфейсе пользователя останется на усмотрении браузеров.
В возникшей в комментариях к изменению дискуссии из 35 участников, только один согласился с целесообразностью скрытия "www". Многие предложили не скрывать тривиальные поддомены, а лишь сделать их менее заметными (отобразить текст менее контрастным), как это реализовано в Firefox.

Другим предложением стало скрытие поддоменов только для сайтов Google или предоставление легко доступной опции для отключения скрытия "www". Участники дискуссии также обратили внимание, что вначале следовало позаботиться о стандартизации, а затем реализовывать изменение на практике. Получилось, же так, что Google вначале добавил изменение в стабильную ветку наиболее популярного браузера, нарушив существующие web-рекомендации по отображению URL, а лишь потом начал работу по утверждению этих изменений в стандарте.
OpenNews: Google отменил скрытие поддоменов "www" и "m", но намерен стандартизировать их особый статус
 
Последнее редактирование:
Релиз Chrome70
Компания Google представила релиз web-браузера Chrome 70. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.

Основные изменения в Chrome 70:
  • Пользователю предоставлена возможность выборочной активации дополнений только для определённых сайтов, с запретом применения дополнений для сайтов, не включённых в белый список. Также доступен режим индивидуальной активации дополнения на каждой странице, при котором дополнение включается только после явного клика на значке в панели. Указанные возможности можно использовать для защиты от скрытого совершения дополнениями нецелевых действий, таких как выуживание со страницы персональных данных или подстановки рекламы; 0_1538420154.png
  • Добавлена возможность перезагрузки разом нескольких вкладок - теперь можно выделить группу вкладок и нажать "Ctrl+R" или кнопку "Reload" в контекстном меню;
  • Добавлен экспериментальный режим быстрого переключения на открытую вкладку из списка рекомендаций в адресной строке ("Switch to this tab" в chrome://flags/#omnibox-tab-switch-suggestions). Для страницы, уже открытой в другой вкладке, будет показана кнопка для быстрого перехода к этой вкладке; 0_1539776891.png
  • Завершён трёхэтапный процесс изменения индикации безопасности соединения - убран значок с изображением замка для HTTPS, а цвет надписи "Not Secure" для соединений HTTP заменён с серого на красный. 0_1526584883.png
  • В адресную строку добавлен индикатор "File" для выделения доступа к локальным ресурсам. Ранее предложенное изменение, убирающие отображение схемы "file://" в адресной строке, отклонено
  • . 0_1539774731.png
  • Учтено недовольство пользователей добавлением в Chrome 69 автоподключения к учётной записи и оставлением Cookie Google после применения функции удаления всех Cookie. В новой версии предложена настройка "Allow Chrome sign-in", позволяющая выключить привязку входа в Chrome с входом в сервисы Google. Функция удаления всех Cookie теперь очищает все без исключения Cookie, включая сессионные Cookie от Google. При очистке Cookie также автоматически разрывается подключение браузера к учётной записи Google.

    0_1537938035.png
    Также изменён индикатор входа, который теперь позволяет сразу понять подключен пользователь или нет и включена ли в настройках синхронизация данных.
    0_1537938053.png
  • Обеспечен автоматический выход из полноэкраного режима в случае отображения любых диалоговых окон, специальных запросов на аутентификацию, форм проведения платежей и окон выбора файлов. Выход из полноэкранного режима производится, чтобы исключить ситуации, когда злоумышленник может подтолкнуть пользователя к неверным действиям, манипулируя изменением окружающего контекста;
  • Для платформы Windows 10 активирован API Web Bluetooth, ранее доступный только на платформах Android, Chrome OS и macOS. Web Bluetooth позволяет web-приложениям получить доступ к внешним устройствам, связанным через протокол Bluetooth Low Energy (BLE). Например, при помощи нескольких строк код на JavaScript можно получить доступ к внешним сенсорам, принтерам или экранам. Web Bluetooth API использует протокол GATT. Для обнаружения устройств применяется механизм Physical Web, позволяющий быстро получать ссылки на окружающие объекты при помощи Bluetooth-метокEddystone;
  • 0_1539777181.png
  • В сборки для Windows добавлена возможность установки web-приложений, работающих в режиме Desktop Progressive Web Apps, который позволяет организовать работу с web-приложением, как с обособленной программой;
  • Добавлен "Origin Trial" для API Shape Detection, предоставляющий функциональность для распознавания наличия различных элементов на изображениях. На основе Shape Detection API созданы более высокоуровневые Face Detection API, Barcode Detection API и Text Detection API. На основе переданного при вызове битмапа API Face Detection вернёт позиции лиц, а также позиции глаз, носа и губ для каждого выявленного лица. Barcode Detection API позволяет декодировать штрихкоды и QR-коды в текстовый вид. Text Detection API позволяет получить текстовое представление текста, имеющегося в изображении (поддерживается только распознавание символов Latin-1);
  • В Web Authentication API расширены возможности, связанные с типом учётных данных PublicKeyCredential, применяемом для аутентификации на сайте с использованием USB-токенов и биометрических датчиков. Помимо работы на версиях Chrome для настольных систем, PublicKeyCredential теперь доступен и для платформы Android. Включена по умолчанию поддержка биометрических датчиков macOS TouchID и Android Fingerprint;
  • 0_1539795929.png
  • В тег "script" добавлена поддержка атрибута "referrerpolicy", позволяющего контролировать какие данные будут передаваться в заголовке Referrer (ранее данный атрибут поддерживался для элементов a, link, area, img и iframe);
  • Реализован интерфейс Intervention report, позволяющий информировать серверное приложение о решении браузера не выполнять запрос из соображений безопасности, производительности и раздражения пользователя. Уведомление отправляется внутри HTTP-заголовка Report-To;
  • В конструктор worker-ов добавлен новый атрибут name, позволяющий отличать выносные фоновые обработчики (dedicated worker) по имени, когда с одним URL связано несколько обработчиков;
  • Добавлена поддержка финальной спецификации протокола TLS 1.3 (RFC 8446), который отличается удалением устаревших и ненадёжных криптографических примитивов (MD5, SHA-224) и возможностей (сжатие, повторное согласование, не-AEAD шифры, статический обмен ключами RSA и DH, указание unix-времени в Hello-сообщениях и т.п.), работает только в режиме forward secrecy (компрометации одного из долговременных ключей не позволяет расшифровать перехваченный сеанс), обеспечивает более высокую производительность, поддерживает режим 0-RTT (устраняет задержки при возобновлении ранее установленных HTTPS-соединений), поддерживает потоковый шифр ChaCha20, алгоритм аутентификации сообщений (MAC) Poly1305, ключи аутентификации на основе цифровых подписей Ed25519, HKDF (HMAC-based Extract-and-Expand Key Derivation Function), ключи на основе алгоритмов x25519 (RFC 7748) и x448 (RFC 8031);
  • Стабилизирован метод Array.prototype.sort;
  • В JavaScript-движке V8 реализована поддержка техники Embedded builtins, позволяющей экономить память благодаря применению общего сгенерированного кода в разных изолированных обработчиках V8. Оптимизация включена для всех платформ, за исключением ia32;
  • Для WebAssembly добавлена экспериментальная поддержка многопоточности (включение через chrome://flags/#enable-webassembly-thread);
  • Прекращена поддержка AppCache (технология для организации работы web-приложения в offline-режиме). В качестве причины называется желание избавиться от одного из векторов для совершения атак, связанных с межсайтовым скриптингом.
Кроме нововведений и исправления ошибок в новой версии устранено 40 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе, за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 23 премии на сумму 22 тысячи долларов США (по одной премии в $3500 и $2000, три премии $3000, пять премий $1000 и пять премий $500). Размер 3 вознаграждений пока не определён.
OpenNews: Релиз web-браузера Chrome 70
 
Последнее редактирование:
В Chrome планируют включить механизм Signed HTTP Exchanges (SXG)
Разработчики Chrome планируют активировать поддержку механизма Signed HTTP Exchanges (SXG) для организации размещения верифицированных копий web-страниц на других сайтах, выглядящих для пользователя как исходные страницы. При помощи SXG владелец одного сайта при помощи цифровой подписи может авторизовать размещения определённых страниц на другом сайте. В случае обращения к этим страницам на втором сайте, браузер будет показывать пользователю URL исходного сайта, несмотря на то, что страница загружена с другого хоста.
0_1548569215.png
Компания Google развивает SGX в контексте исключения возможных MITM-атак на страницы, распространяемые при помощи технологии AMP (Accelerated Mobile Pages). AMP представляет собой систему кэширования для отдачи страниц пользователю не напрямую, а через инфраструктуру Google. SGX позволит на уровне цифровых подписей гарантировать соответствие прокэшированной и исходной страниц, а также решает проблему с отображением в адресной строке другого домена (сейчас показывается Redirecting), что вызывает замешательство пользователей.

Кроме AMP технология SXG может быть использована для распространения web-приложений в форме пакетов (Web Packaging) в режиме "peer-to-peer", позволяющем делиться приложениями через сторонние площадки без необходимости постоянного нахождения источника в online, но гарантируя неизменность, целостность и авторство содержимого. Технология также позволяет организовать работу сетей доставки контента (CDN) без получения контроля за SSL-сертификатом сайта (в тестовом режиме поддержка SXG уже реализована в Cloudflare CDN). В настоящее время реализация SXG уже добавлена в Chrome 71, но пока неактивна и ограничена тестами в режиме "Origin Trial".

При помощи SXG автор контента может сформировать цифровую подпись при помощи своего закрытого ключа (используется штатный ключ от TLS-сертификата с активным расширением CanSignHttpExchanges). Цифровая подпись авторизует одну операцию, охватывающую только один конкретный запрос и отдаваемый в ответ на него контент. Подобные цифровые подписи необходимо сформировать для всех страниц, которые разрешено распространять через сторонние web-серверы. При открытии подобных страниц пользователем браузер проверяет корректность цифровой подписи по предоставленному исходным сайтом открытому ключу и если целостность подтверждена показывает в адресной строке исходный URL.
0_1548567478.png
Разработчики Safari и Firefox пока не намерены добавлять SXG в свои браузеры, более того Mozilla считает данную технологию вредной и разрушающей модель обеспечения безопасности. По мнению Mozilla обработка страниц через инфраструктуру третьих лиц создаёт дополнительные угрозы приватности, так как пользователь взаимодействует с совсем другим сервером, но обработка информации производится как будто он обращается к оригинальному ресурсу.

По мнению разработчиков Chrome данные опасения не оправданы, так как пользователь явно должен перейти по ссылке на другой сайт и угрозы утечки сведений о пользователе не выше чем при использовании транзитного проброса через третий сайт при помощи ответа с 302 кодом редиректа. Разница лишь в том, что при SXG страница будет отдана сразу, а при 302-редиректе её отдаст исходный сайт, но и там и там потребуется переход по внешней ссылке, третье лицо обработает запрос и в адресной строке отобразится исходный сайт.

OpenNews: В Chrome планируют включить механизм Signed HTTP Exchanges (SXG)
 
Последнее редактирование:
Релиз Chrome 72
Компания Google представила релиз web-браузера Chrome 72. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 73 запланирован на 12 марта.

Основные изменения в Chrome 72:
  • Внесены изменения в конфигуратор. Настройка автозаполнения полей разделена на несколько секций для отдельного управления заполнением полей с паролями, платёжными формами и адресами. В интерфейс добавлен ярлык для быстрого перехода к настройкам учётной записи в Google. В настройки версии для Android добавлена возможность добавление альтернативных поисковых систем. Прекращена поддержка настройки подключения устройств Chromecast из браузера (для настройки предлагается использовать отдельное приложение);
  • 0_1548832603.png
  • Включена по умолчанию возможность просмотра видео поверх контента в режиме "картинка в картинке" (Picture-In-Picture), позволяющем отсоединить видео в форме плавающего окна, которое остаётся на виду в процессе навигации в браузере. Для просмотра в данном режиме видео с YouTube необходимо два раза кликнуть на видео правой кнопкой мыши и выбрать режим "Picture in picture". Отсоединение видео работает только при использовании на сайте API Picture-in-Picture, для не адаптированных для нового режима сайтов можно использовать внешнее дополнение;
  • 0_1548832652.png
  • Активирована по умолчанию защита от попыток выполнения стороннего кода внутри процессов Chrome. Исключение сделано только для кода, подписанного цифровой подписью Microsoft и систем для людей с ограниченными возможностями. Подобные подстановки кода наблюдаются на 2/3 систем с Windows и, как правило, производятся антивирусным ПО. По статистике, данные манипуляции приводят к снижению стабильности работы и являются причиной 15% всех наблюдаемых крахов браузера. Вместо подстановки кода в запускаемые процессы следует использовать дополнения и API Native Messaging;
  • При открытии сайтов с использованием TLS 1.0/1.1 теперь выводится специальное предупреждение о применении устаревшей версии TLS. По умолчанию поддержку TLS 1.0/1.1 планируют прекратить в Chrome 81, который ожидается в январе 2020 года, но настройка, дающая возможность вернуть TLS 1.0/1.1 будет сохранена до января 2021 года;
  • Усилена защита от всплывающих окон - запрещено открытие окон через вызов метода window.open() в обработчиках событий закрытия страницы (onUnload);
  • Реализован первый этап прекращения поддержки FTP - отключено отображение содержимого каталогов FTP, но загрузки по прямым ссылкам пока работают;
  • В Web Authentication API добавлена поддержка аутентификации на сайте с использованием токенов и биометрических датчиков Bluetooth U2F и Windows Hello;
  • В версии для Android добавлена возможность вызова экрана со списком ранее открытых в текущей вкладке страниц через длительное удержание нажатия кнопки возврата на предыдущую страницу ("Back"). Добавлен экспериментальный режим оформления "Chrome Duet", при котором изменяется раскладка панелей и меню перемещается в нижнюю панель (для включения в chrome://flags следует активировать опцию "chrome-duet");
  • В классах добавлена возможность определения публичных полей, без явного использования конструктора и вне входящих в состав класса функций. В будущих выпусках планируется предоставить возможность определения и приватных классов.
    class MyComponent extends Component {
    // создадим публичное поле с именем "state"
    state = {};
    render() {
    doStuff(this.state);
    }
    }

  • Добавлено API User Activation Query для определения активации некоторых функций, по умолчанию отключенных до того, как пользователь начнёт взаимодействие со страницей. Например, разработчик может определить появился ли доступ к функциям перехода в полноэкранный режим, автоматического воспроизведения звука и открытия дополнительных окон. Проверка активации производится через свойство userActivation, которое предлагает два параметра hasBeenActive и isActive, позволяющих определить взаимодействовал ли пользователь со страницей или она пока просто загружена и остаётся нетронутой;
  • Добавлена поддержка локализованных списков. Для применения специфичных для языков связок (например, замены "or" на "или", "and" на "и") и единиц измерения предложен метод Intl.format(), который достаточно инициализировать с указанием необходимой локали.
    const lf = new Intl.ListFormat('en');
    lf.format(['Frank', 'Christine', 'Flora']);
    // → 'Frank, Christine, and Flora'
    // при локали "ru" будет 'Frank, Christine и Flora'

  • Изменено поведение вызова Cache.addAll(). В соответствии с требованием спецификации при попытке добавления дубликатов теперь выводится ошибка, а не перезаписывается старое содержимое;
  • В Service worker добавлено новое свойство FetchEvent.resultingClientId, в котором сохраняется идентификатор клиента, а не документа или обработчика;
  • В MediaStreamTrack добавлено свойство resizeMode для определения отображения контента в исходном разрешении или применения кадрирования и масштабирования;
  • Для возвращаемых методом JSON.stringify() Unicode-строк обеспечена более строгая проверка корректности и реализовано экранирование символов при невозможности их отображения в UTF-8. Например, при вызове JSON.stringify("\uD800") раньше выводилось "�", а теперь будет выведено "\ud800";
  • Символ '#' теперь рассматривается как индикатор окончания данных в URL. Ранее символ мог без экранирования использоваться внутри данных в составе URL, что нарушает спецификацию. Теперь первый же символ рассматривается как окончание блока данных.
  • Удалена поддержка HTTP-заголовка Public-Key-Pins (ручные привязки пока сохранены), позволяющего сайтам явно определить сертификаты каких удостоверяющих центров допустимо использовать для заданного сайта. Вместо PKP разработчикам сайтов рекомендуется использовать HTTP-заголовок Expect-CT c SCT-параметрами (SignedCertificate Timestamps) для выявления некорректных SSL-сертификатов при помощи системы Certificate Transparency, которая предусматривает возможность отмены ошибочных привязок;
  • В инструментах для разработчиков обеспечена визуализация метрик производительности, полученных при профилировании загрузки страницы
  • ; 0_1548840152.png
  • В дереве DOM реализована подсветка узлов с текстом;
  • 0_1548840179.png
  • Добавлена поддержка копирования в буфер обмена ссылки на DOM-узел в форме выражения document.querySelector();
  • 0_1548840207.png
  • Реализация панели аудита обновлена до выпуска Lighthouse 3.2, в котором появился режим определения применения на странице известных JavaScript-библиотек;
  • 0_1548840219.png
  • В JavaScript-движке V8 включена по умолчанию техника "Embedded builtins", позволяющая экономить память благодаря применению общего сгенерированного кода в разных изолированных обработчиках V8. Оптимизация включена для всех платформ, за исключением ia32;
  • На 30% ускорено выполнение операций парсинга JavaScript. Если раньше парсинг занимал около 9.5% времени работы движка V8, то теперь этот показатель сократился до 7.5%, что положительно отразилось на скорости открытия страниц и отзывчивости интерфейса. Например, время разбора скриптов Facebook сократилось с 270 до 170 мс.
  • 0_1548840727.png
  • Задействована более быстрая реализация операций async/await. Увеличена производительность массивов с диапазонами, определяемых в виде "[...x]" или "[...x, 1, 2]". Внесены оптимизации в WebAssembly и обработчики исключений. Добавлен режим асинхронной трассировки стека ("--async-stack-traces").
Кроме нововведений и исправления ошибок в новой версии устранено 58 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одна из проблем (CVE-2019-5754) помечена как критическая, т.е. позволяет обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. Указанная уязвимость вызвана ошибкой в реализации протокола QUIC (детали пока не приводятся). В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 34 премии на сумму 50.5 тысяч долларов США (по одной премии в $7500 и $4000, две премии $5000, шесть премий $3000, две премии $2000, пять премий $1000 и четыре премий $500). Размер 13 вознаграждений пока не определён.

OpenNews: Релиз web-браузера Chrome 72
 
Последнее редактирование:
Новое в версии 73.0.3683.103 (05.04.2019):
  • Google Chrome 73.0.3683.103 доступен для Windows, macOS и Linux
  • Список изменений (английский, официальный сайт)
Новое в версии 73.0.3683.86 (20.03.2019):
  • Обновление Chrome 73.0.3683.86. Что нового
  • Список изменений (английский, официальный сайт)
Новое в версии 73 Stable (12.03.2019)
Обновление Chrome 73 добавляет поддержку мультимедийных клавиш на клавиатуре, PWA приложений и темного режима на устройствах Mac, а также включает большое количество улучшений для разработчиков
Источник: Comss 1
 
Релиз Chrome 74
24.04.2019
Компания Google представила релиз web-браузера Chrome 74. Одновременно доступенстабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 75 запланирован на 4 июня.

Основные изменения в Chrome 74:
  • При наступлении события onUnload, вызываемого при закрытии страницы, теперь запрещеновыводить всплывающие окна (блокируется вызов window.open()), что позволит защитить пользователей от принудительного открытия рекламных страниц после закрытия сомнительных сайтов. Подобная блокировка ранее была реализована на уровне popup blocker, но теперь будет работать независимо от его включения;

  • В JavaScript-движке V8 реализован новый режим JIT-less (флаг "--jitless"), дающий возможность выполнить JavaScript без применения JIT (используется только интерпретатор) и без выделения исполняемой памяти в процессе выполнения кода. Отключение JIT может быть полезным для повышения безопасности при работе с потенциально опасными web-приложениями, а также для обеспечения сборки на платформах, запрещающих использование JIT (например, в iOS, на некоторых Smart TV и игровых консолях).

  • При отключении JIT производительность выполнения JavaScript снижается на 40% в тесте Speedometer 2.0 и на 80% в тесте Web Tooling Benchmark, но при симуляции работы с YouTube отмечено снижение производительности лишь на 6%. Потребление памяти при этом уменьшается незначительно, всего на 1.7%;

  • В V8 предложена большая порция новых оптимизаций. Например, на 60% ускорено выполнение вызовов функций, в которых число фактически переданных параметров не соответствует указанному при определении функции числу аргументов. Ускорен доступ к свойствам DOM при помощи функции get, что положительно повлияло на производительность фреймворка Angular. Ускорена работа парсинга JavaScript: оптимизация декодировщика UTF-8 позволила поднять производительность парсера в режиме streaming (разбор по мере загрузки) на 8%, а исключение лишних операций дедупликации дало прирост ещё на 10.5%;

  • Проведена работа по снижению потребления памяти движка JavaScript. Добавлен код для очистки кэша байткода, который занимает примерно 15% от всего размера кучи. В сборщик мусора добавлена стадия для вытеснения из кэша скомпилированного байткода для редко используемых функций или функций, вызываемых только при инициализации. Решение о чистке принимается на основании новых счётчиков, учитывающих последнее время обращения к байткоду. Указанное изменение позволило снизить потребление памяти на 5–15% без негативного влияния на производительность. Дополнительно, в компиляторе байткода исключена генерация заведомо неиспользуемого кода, например, который следует после return или break (если на него нет Jump-перехода); 0_1556091409.png
  • Для WebAssembly реализована поддержка потоков и атомарных операций (API WebAssembly Threads и WebAssembly Atomics);
  • Для обособленной поставки скриптов в движке V8 добавлена поддержка заголовка "#!", определяющего интерпретатор для запуска. Например, по аналогии с другими скриптовыми языками, файл JavaScript может выглядеть примерно так:
    #!/usr/bin/env node
    console.log(42);

  • В CSS добавлен новый media-запрос "prefers-reduced-motion", позволяющий сайту определить состояние настроек в операционной системе, связанных с отключением анимированных эффектов. При помощи предложенного запроса владелец сайта может узнать, что пользователь отключил у себя анимированные эффекты и также отключить различные анимационные возможности на сайте, например, убрать эффект дрожания кнопок, используемых для привлечения внимания;

  • В дополнение к появившейся в Chrome 72 возможности определения публичных полей в классах реализована поддержка пометки полей приватными, после чего доступ к их значениям будет открыт только внутри класса. Для пометки поля приватным следует указать перед именем поля знак "#". Как и в случае с публичными полями приватные свойства не требуют явного использования конструктора;

  • HTTP-заголовок Feature-Policy, позволяющий управлять поведением API и включением определённых возможностей (например, можно включить синхронный режим работы XMLHttpRequest или отключить Geolocation API), дополнен JavaScript API для контроля активности тех или иных возможностей. Для разработчиков предложено два новых метода document.featurePolicy и frame.featurePolicy, предлагающих три функции: allowedFeatures() для получения списка разрешённых для текущего домена функций, allowsFeature() для выборочной проверки включения конкретных возможностей и getAllowlistForFeature() для вывода списка доменов, для которых на текущей странице разрешена указанная возможность;

  • Добавлена экспериментальная ("chrome://flags#enable-text-fragment-anchor") поддержка режима Scroll-To-Text, позволяющего формировать ссылки на отдельные слова или фразы, без явного указания в документе меток при помощи тега "a name" или свойства "id". Для передачи ссылки предлагается специальный параметр "#targetText=", в котором можно указать текст для перехода. Допускается указание маски, включающей фразы, указывающие на начало и конец фрагмента с использованием запятой в качестве их разделителя (например, "example.com#targetText=start%20words, end%20words");

  • В конструктор AudioContext добавлена опция sampleRate, позволяющая установить желаемую частоту дискретизации для операций со звуком через Web Audio API;

  • Добавлена поддержка класса Intl.Locale, предоставляющего методы для разбора и обработки выставляемых локалью параметров языка, региона и начертания, а также для чтения и записи тегов расширений Unicode и сохранения пользовательских настроек локали в сериализированном формате;

  • Механизм Signed HTTP Exchanges (SXG) расширен средствами для информированияраспространителей контента об ошибках загрузки подписанного контента, таких как проблемы с верификацией сертификатов. Обработка ошибок производится через расширения API Network Error Logging. Напомним, что SXG позволяет владельцу одного сайта при помощи цифровой подписи авторизовать размещения определённых страниц на другом сайте, после чего в случае обращения к этим страницам на втором сайте, браузер будет показывать пользователю URL исходного сайта, несмотря на то, что страница загружена с другого хоста;

  • В класс TextEncoder добавлен метод encodeInto(), позволяющий записать закодированную строку напрямую в предварительно выделенный буфер. Метод encodeInto() является высокопроизводительной альтернативой методу encode(), который требует выполнения операции выделения буфера при каждом обращении;

  • В Service worker обеспечена буферизация вызова client.postMessage() до момента готовности документа. Сообщения, отправленные через client.postMessage(), будут удержаны до стадии генерации события DOMContentLoaded, установки "onmessage" или вызова startMessages();

  • В соответствии с требованием спецификации CSS Transitions добавлены события "transitionrun", "transitioncancel", "transitionstart" и "transitionend", генерируемые когда CSS-переход помещен в очередь, отменяется, начинает или заканчивает выполняться.

  • При указании через overrideMimeType() или MIME-тип некорректной кодировки символов для запроса XMLHttpRequest, теперь осуществляется откат на UTF-8 вместо Latin-1;

  • Объявлено устаревшим и будет удалено в одном из следующих выпусков свойство "allow-downloads-without-user-activation", через которое можно было организовать автоматическую загрузку файлов при обработке iframe. В будущем инициирование загрузки файлов без явного действия пользователя будет запрещено, так как оно активно применялось для злоупотреблений, навязывания загрузок и подстановки частей вредоносного ПО на компьютер пользователя. Для начала загрузки обязательно потребуется клик пользователя на той же странице. Изначально свойство планировалось удалить в Chrome 74, но удаление былоотложено до Chrome 76;
  • Для платформы Windows предложена опциональная тёмная тема оформления интерфейса (в прошлом выпуске тёмное оформление было подготовлено для macOS). Так как тёмное оформление почти идентично оформлению в режиме инкогнито, для выделения приватного режима работы вместо пиктограммы профиля пользователя добавлен специальный индикатор;

  • Для корпоративных пользователей добавлена возможность Chrome Browser Cloud Management для управления настройками браузеров пользователей через консоль Google Admin; 0_1556086723.png
  • В версии для Android на смену "Data Saver" пришёл режим "Lite". Поддержка Data Saver в Chrome 74 прекращена. Режим Lite можно включить в настройках (Settings > Lite mode), но если до этого был включен "Data Saver" режим Lite будет активирован автоматически.
  • Напомним, что режим Lite позволяет ускорить загрузку сайтов и сократить трафик за счёт обращения через прокси в Google, на лету осуществляющий оптимизацию запрашиваемых страниц для просмотра на мобильном устройстве. На серверы Google передаётся только URL страницы, а Cookies и параметры аутентификации обрабатываются напрямую. Оптимизация выполняется адаптивно, например, если страница загружается более 5 секунд;
  • Расширены возможности инструментов для web-разработчиков:
    • При наведении курсора к CSS-свойствам, таким как padding и margin, теперь автоматически подсвечиваются на странице все элементы, на которые данные свойства влияют; 0_1556092402.png
    • Панель аудита обновлена до выпуска Lighthouse 4;
    • Добавлен просмотрщик содержимого бинарных сообщений, передаваемых через WebSocket; 0_1556093038.png
    • Добавлена возможность быстрого вызова инструмента для создания скриншотов из строки ввода команд (достаточно набрать "area" или screenshot и выбрать "Capture area screenshots";
    • В панели анализа сетевых запросов добавлен фильтр для просмотра запросов, специфичных для определённого Service worker; 0_1556092982.png
    • Обновлена панель для оценки производительности: добавлен индикатор длительно выполняемых задач, на шкале времени реализована метка первой отрисовки; 0_1556092912.png
Кроме нововведений и исправления ошибок в новой версии устранено 39 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено.
В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 19 премии на сумму 26837 долларов США (четыре премии $3000, четыре премии $2000, одна премия $1337, четыре премии $1000, три премии $500). Размер 4 вознаграждений пока не определён.

Opennet
 
Последнее редактирование:
В Chrome появится защита от передачи сторонних cookie и скрытой информации
10.05.19
Компания Google представила грядущие изменения в Chrome, нацеленные на повышение конфиденциальности. Первая часть изменений касается обработки Cookie и поддержки атрибута SameSite. Начиная с выпуска Chrome 76, ожидаемого в июле, будет активирован флаг "same-site-by-default-cookies", который в случае отсутствие атрибута SameSite в заголовке Set-Cookie по умолчанию будет выставлять значение "SameSite=Lax", ограничивающее отправку Cookie для вставок со сторонних сайтов (но сайты по-прежнему смогут отменить ограничение, явно выставляя при установке Cookie значение SameSite=None).

Атрибут SameSite позволяет определять ситуации, в которых допустима передача Cookie при поступлении запроса со стороннего сайта. В настоящее время браузер передаёт Cookie на любой запрос к сайту, для которого имеются выставленные Cookie, даже если изначально открыт другой сайт, а обращение осуществляется косвенно при помощи загрузки картинки или через iframe. Рекламные сети используют данную особенность для отслеживания перемещений пользователя между сайтами, а злоумышленники для организации CSRF-атак (при открытии подконтрольного атакующим ресурса с его страниц скрыто отправляется запрос на другой сайт, на котором аутентифицирован текущий пользователь, и браузер пользователя выставляет для такого запроса сессионные Cookie). С другой стороны возможность отправки Cookie на сторонние сайты применяется для вставки на страницы виджетов, например, для интеграции с YouTube или Facebook.

При помощи атрибута SameSite можно управлять поведением при выставлении Cookie и разрешить отправку Cookie только в ответ на запросы, инициированные с сайта, с которого эти Cookie изначально были получены. SameSite может принимать три значения "Strict", "Lax" и "None". В режиме 'Strict' Cookie не отправляются для любых видов межсайтовых запросов, включая все входящие ссылки с внешних сайтов. В режиме 'Lax' применяются более мягкие ограничения и передача Cookie блокируется только для межсайтовых субзапросов, таких как запрос изображения или загрузка контента через iframe. Отличие "Strict" и "Lax" сводятся к блокировке Cookie при переходе по ссылке.
Из других предстоящих изменений также намечается применение жёсткого ограничения, запрещающего обработку сторонних Cookie для запросов без HTTPS (с атрибутом SameSite=None Cookie смогут выставляться только в режиме Secure).

Кроме того, планируется выполнение работы по защите от применения скрытой идентификации ("browser fingerprinting"), включая методы генерации идентификаторов на основе косвенных данных, таких как разрешение экрана, список поддерживаемых MIME-типов, специфичные параметры в заголовках (HTTP/2 и HTTPS), анализ установленных плагинов и шрифтов, доступность определённых Web API, специфичные для видеокарт особенности отрисовки при помощи WebGL и Canvas, манипуляции с CSS, анализ особенностей работы с мышью и клавиатурой.

Кроме того в Chrome будет добавлена защита от злоупотреблений, связанных с затруднением возврата на исходную страницу после перехода на другой сайт. Речь ведётся о практике захламления истории переходов серией автоматических редиректов или искусственным добавлением фиктивных записей в историю просмотров (через pushState), в результате чего пользователь не может воспользоваться кнопкой "Back" для возврата на исходную страницу после случайного перехода или принудительного проброса на сайт мошенников или вредителей. Для защиты от подобных манипуляций Chrome в обработчике кнопки Back будет пропускать записи, связанные с автоматическими пробросами и манипуляциями с историей посещений, оставляя только страницы, открытие при явных действиях пользователя.

Opennet
 
Последнее редактирование:
Релиз Chrome 75

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

Основные изменения в Chrome 75:
  • В метод canvas.getContext() добавлен флаг "desynchronized" для обработки контекстов Canvas (2D или WebGL) с использованием альтернативной системы отрисовки, обеспечивающей минимальные задержки за счёт обхода штатного механизма обновления DOM и вывода напрямую через OpenGL;
  • Расширен API Web Share (объект navigator.share), при помощи которого можно вместо списка отдельных кнопок сгенерировать унифицированную кнопку для публикации в социальных сетях, актуальных для посетителя. В новом выпуске в API добавлена возможность вывода типового диалога для отправки файлов другим приложениям (например, на Android выводится блок для отправки через почту, Bluetooth и т.п.);
  • Реализована возможность разделения групп чисел в цифровых литералах символом подчёркивания. Например, для улучшения читаемости больших чисел в коде можно указывать 1_000_000_000 и это число будет обработано как 1000000000;
  • Для всех пользователей настольной версии включён по умолчанию режим строгой изоляции сайтов, при котором страницы разных хостов всегда размещаются в памяти разных процессов, в каждом из которых применяется свой sandbox. Главной особенностью режима строгой изоляции является разделение не по вкладкам, а по доменам, т.е. если раньше содержимое загруженных с других доменов скриптов, iframe и popup-ов выполнялось в одном процессе с базовым сайтом, то теперь они будут разделены по разным процессам;
  • Дополнения, занесённые в чёрный список теперь будут полностью удаляться, а не отключаться с переводом в неактивный режим.
  • Во встроенном менеджере задач Chrome (Settings > More Tools > Task Manager) обеспечено отображение обработчиков Service worker;
  • В метод window.open() добавлен атрибут "noreferrer", позволяющий открыть страницу без заполнения заголовка Referer;
  • Добавлены директивы CSP (Content Security Policy) "script-src-attr", "script-src-elem", "style-src-attr" и "style-src-elem", предоставляющие функциональность директив script и style, но с возможностью применения к отдельным обработчикам событий, элементам или атрибутам;
  • В Web Authentication API добавлена поддержка FIDO CTAP2 PIN для использования заданного пользователям PIN-кода для авторизации выполнения операций к ключами, поддерживающими протокол FIDO CTAP2. В конфигураторе в секции "Advanced" появился пункт "Manage security keys", в котором можно назначить PIN-код для защиты ключей, размещённых на USB-накопителе, а также опция для сброса ключа (очистки всех данных и PIN);
  • В API Web Animations добавлены объекты AnimationEffect и KeyframeEffect, позволяющие интерактивно управлять анимируемыми элементами и хронометражом (продолжительность, задержки). Кроме того, добавлен новый конструктор Animation(), предоставляющий более обширные средства для управления анимацией. Ранее Web Animations API позволял создавать анимацию при помощи метода Element.animate(), возвращающего уже сформированный объект Animation. Теперь разработчик может управлять его созданием через явный вызов конструктора, в котором, например, можно указать объект KeyframeEffect;
  • Добавлена опция HTMLVideoElement.playsInline, предписывающая браузеру отобразить видео в области воспроизведения элемента (например, для предоставления метода воспроизведения на весь экран);
  • В методе MediaStreamTrack.getCapabilities() реализована возможность получения диапазон допустимых значений для свойств, связанных с звуковыми устройствами (частота дискретизации, задержки, число каналов и т.п.);
  • В WebRTC добавлен API RTCDtlsTransport для получения сведений об активных транспортах, например об использовании SCTP или DTLS (Datagram Transport Layer Security), через которые отправляются или принимаются пакеты RTP и RTCP. Также добавлен интерфейс RTCIceTransport для предоставления информации о состоянии транспортов ICE, используемых в объекте RTCPeerConnection;
  • В заголовке Cache-Control реализована директива "stale-while-revalidate", позволяющая задать дополнительное окно времени, в течении которого браузер может использовать ресурс с просроченным временем асинхронной перепроверки актуальности;
  • Добавлена возможность Scroll Snap Stop для определения привязки к элементам при инерционной прокрутке (например, широкий листающий жест при выборе в списке изображений будет приводить к выбору не последнего элемента, а следующего);
  • В версии для Android улучшен интерфейс автозаполнения параметров учётных записей в формах аутентификации. Блок с подсказкой теперь выводится непосредственно над экранной клавиатурой и при клике отображает возможные сохранённые варианты вместо экранной клавиатуры, не заслоняя собой форму ввода;
  • Добавлена экспериментальная поддержка режима читателя (Reader Mode), при включении которого отображается только значимый текст, а все сопутствующие управляющие элементы, баннеры, меню, навигационные панели и прочие не связанные с контентом части страницы скрываются. Включение поддержки нового режима производится опцией chrome://flags/#enable-reader-mode, после чего в выпадающем меню появляется пункт для его использования;
  • В JavaScriptдвижке V8 реализован режим явного кэширования результатов компиляции WebAssembly (при повторном открытии страницы ранее обработанные компоненты WebAssembly будут запущены из кэша). В WebAssembly также добавлены новые инструкции memory.copy, memory.fill, table.copy, memory.init и table.init для копирования, заполнения и инициализации больших областей памяти;
  • Добавлена поддержка прямого разбора скриптов на лету по мере из загрузки по сети без привлечения основного потока Chrome. Ранее поток вначале принимался в main thread, из которого перенаправлялся в парсер. Подобная организация приводила к тому, что перенаправление могло блокироваться другими задачами, выполняемыми в основном потоке, такими как разбор HTML и выполнение других скриптов JavaScript. Теперь подобное перенаправление упразднено;
  • Улучшения в инструментах для web-разработчиков:
    • В режиме инспектирования CSS обеспечено автодополнение названий и базовых значений функций, которые можно применять в свойствах CSS (например, "filter: blur(1px)"). Предлагаемые значения становятся сразу отражаются на просматриваемом макете страницы;
    • 0_1559730884.png
    • В командной панели, выводимой при нажатии Ctrl+Shift+P, реализована команда "Clear Site Data" для очистки всех данных, связанных со страницей (аналог вызова меню Application > Clear Storage ), включая Service workers, localStorage, sessionStorage, IndexedDB, Web SQL, Cookies, Cache и Application Cache;
    • Добавлена возможность просмотра всех существующих БД IndexedDB (ранее в Application > IndexedDB можно было посмотреть БД для текущего домена, что не позволяло, например, проинспектировать использование IndexedDB в блоках, загружаемых через iframe);
    • 0_1559731211.png
    • В интерфейсе инспектирования сети в подсказке, всплывающей при наведении на поля в столбце "Size", теперь отображается размер ресурса в исходном виде, без сжатия; 0_1559731387.png
    • В боковой панели отладчика обеспечен раздельный вывод сведений о состоянии точек останова, привязанных к отдельным частям сложных выражений в строке (inline breakpoint), например, выставленных в цепочке вызова методов; 0_1559731695.png
    • В панелях инспектирования IndexedDB и Cache реализовано отображение счётчиков общего числа ресурсов в БД или кэше; 0_1559731843.png
  • В экспериментальные Canary-сборки добавлена поддержка обращения к DNS поверх HTTPS (DoH, DNS over HTTPS), которую можно активировать в chrome://flags#dns-over-https. DoH может оказаться полезным для исключения утечек сведений о запрашиваемых именах хостов через DNS-серверы провайдеров, борьбы с MITM-атаками и подменой DNS-трафика, противостояния блокировкам на уровне DNS или для организации работы в случае невозможности прямого обращения к DNS-серверам (например, при работе через прокси);

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

Opennet
 
Google избавится от встроенной в Chrome функции безопасности XSS Auditor

18.07.19
Инженеры Googleпланируютубрать одну из встроенных в Chrome функций безопасности. По словам разработчика Chrome Томаса Сепеза (Thomas Sepez), известная под названием XSS Auditor функция больше не соответствует требованиям современной системы защиты.
XSS Auditor была добавлена в Chrome еще в 2010 году с релизом Chrome v4. Как следует из названия, функция защиты сканирует исходный код web-сайта на наличие паттернов, указывающих на XSS-атаку, способную запустить вредоносный код в браузере пользователя. В случае обнаружения подобной атаки, Chrome может удалить вредоносный код или заблокировать загрузку сайта, выдавая соответствующее уведомление.
45469

В течение многих лет XSS Auditor являлась уникальной функцией в браузерной среде, помогая Chrome выделяться на фоне остальных браузеров. С момента запуска XSS Auditor аналогичный функционал начали реализовывать разработчики других браузеров при помощи расширений, например, NoScript уже несколько лет поддерживает механизм защиты от XSS-атак.

Существует несколько причин, по которым разработчики Google решили избавиться от XSS Auditor. В качестве первой и основной указываются многочисленные способы обхода XSS Auditor. Помимо этого, все попытки исправить данную уязвимость делают более уязвимым и сам Chrome. Существует также проблема с ложным срабатыванием, когда XSS Auditor блокировала доступ к официальным сайтам. В этой связи, с релизом Chrome 74 эксперты Google переключили режим "блокировать", установленный по умолчанию в XSS Auditor, на "фильтровать". То есть, с апреля 2019 года функция безопасности не блокирует доступ к содержащим XSS-код сайтам, а удаляет код, пытаясь сократить количество ложных срабатываний.

45468


Работа над устаревшей XSS Auditor началась еще в октябре 2018 года. Инженеры Google пока не указали, в каком релизе функция безопасности будет отключена и удалена из кодовой базы Chrome.

SecurityLab
 
Релиз Chrome 77

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

Основные изменения в Chrome 77:
  • Прекращена отдельная пометка сайтов с сертификатами уровня EV (Extended Validation). Информация о применении EV-сертификатов теперь отображается только в выпадающем меню, показываемом при клике на значок защищённого соединения. Название проверенной удостоверяющим центром компании, к которой привязан EV-сертификат, в адресной строке больше отображаться не будет;

  • Усилена изоляция обработчиков сайтов. Добавлена защита для межсайтовых данных, таких как Cookie и HTTP-ресурсы, получаемых со сторонних сайтов, контролируемых злоумышленниками. Изоляция работает даже если атакующий обнаружит ошибку в процессе, отвечающем за отрисовку, и попытается выполнить код в его контексте;

  • Добавлена новая страница с приветствием новых пользователей (chrome://welcome/), выводимая вместо штатного интерфейса открытия новой вкладки после первого запуска Chrome. Страница позволяет добавить в закладки популярные сервисы Google (GMail, YouTube, Maps, News и Translate), прикрепить ярлыки на страницу новой вкладки, подключиться к учётной записи Google для включения Chrome Sync и назначить вызов Chrome по умолчанию в системе.

  • В меню страницы новой вкладки, отображаемое в верхнем правом углу, добавлена возможность загрузки фонового изображения, а также появились опции для выбора темы оформления и настройки блока с ярлыками для быстрого перехода (наиболее часто посещаемые сайты, ручной выбор пользователя и скрытие блоки с ярлыками). Настройки пока позиционируются как экспериментальные и требуют активации через флаги "chrome://flags/#ntp-customization-menu-v2" и "chrome://flags/#chrome-colors-custom-color-picker";

  • Обеспечена анимация пиктограммы сайта в заголовке вкладки, сигнализирующая о том, что страница находится в процессе загрузки;

  • Добавлен флаг "--guest", позволяющий запустить Chrome из командной строки в режиме гостевого входа (без подключения к учётной записи Google, без записи активности в браузере на диск и без сохранения сеанса);

  • Продолжена начатая в прошлом выпуске чистка флагов в chrome://flags. Вместо флагов для настройки поведения браузера теперь рекомендуется использовать наборы правил;

  • В контекстное меню страницы, вкладки и адресной строки добавлена кнопка "Send to your devices", позволяющая отправить ссылку на другое устройство при помощи Chrome Sync. После выбора устройства назначения, привязанного к той же учётной записи, и отправки ссылки, на целевом устройстве будет выведено уведомление для открытия ссылки;

  • В версии для Android полностью переработана страница со списком загруженных файлов, в которой вместо выпадающего меню с разделами контента добавлены кнопки для фильтрации общего списка по типу контента, а эскизы загруженных изображений теперь показываются на всю ширину экрана;
  • Largest Contentful Paint | web.dev
  • Добавлены новые метрики для оценки скорости загрузки и отрисовки контента в браузере, позволяющие web-разработчику определить как быстро основное содержимое страницы становится доступной для пользователя. Предлагавшиеся ранее средства контроля отрисовки позволяли судить лишь о самом факте начала отрисовки, но не о готовности страницы в целом. В Chrome 77 предложен новый API Largest Contentful Paint, позволяющий узнать время отрисовки крупных (заметных пользователю) элементов в видимой области, таких как изображения, видео, блочные элементы и фон страницы;

  • 0_1568194907.png

  • Добавлен API PerformanceEventTiming, предоставляющий сведения о задержке перед первым взаимодействием пользователя (например, нажатие клавиши на клавиатуре или мыши, клик или перемещение указателя). Новый API является подмножеством API EventTiming, позволяющем получить дополнительные сведения для измерения и оптимизации отзывчивости интерфейса;
  • More capable form controls | web.dev
  • Добавленыновые возможности для форм, упрощающие использование собственных нестандартных элементов управления формами (нестандартные поля ввода, кнопки и т.п.). Новое событие "formdata" даёт возможность использовать обработчики на JavaScript для добавления данных в форму на этапе её отправки без необходимости сохранять данные в скрытых элементах input.

  • Вторым новшеством является поддержка создания собственных элементов, ассоциированных с формой и действующих как встроенные элементы управления формами, в том числе поддерживающих такие возможности, как включение проверки корректности ввода и инициирование отправки данных на сервер. Для пометки элемента как компонента интерфейса формы предложено свойство formAssociated, а для доступа к дополнительным методам управления формой, таким как setFormValue() и setValidity(), добавлен вызов attachInternals();

  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлен новый API Contact Picker, позволяющий пользователю выбрать записи из адресной книги и передать определённые детали о них на сайт. При запросе определяется список свойств, которые необходимо получить (например, ФИО, email, номер телефона). Данные свойства явно отображаются пользователю, которые принимает конечное решение передавать данные или нет. API может быть использован, например, в почтовом web-клиенте для выбора получателей для отправляемого письма, в web-приложении с функцией VoIP для инициирования звонка по определённому номеру или в социальной сети для поиска уже зарегистрированных друзей.

  • Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.

  • 0_1568200502.jpg 0_1568200528.jpg

  • Для форм реализован атрибут "enterkeyhint", позволяющий определить поведение при нажатии клавиши Enter на виртуальной клавиатуре. Атрибут может принимать значения enter, done, go, next, previous, search и send;

  • Добавлено правило document-domain, управляющее доступом к свойству "document.domain". По умолчанию доступ разрешён, но если его запретить попытка изменения значения "document.domain" будет приводить к выводу ошибки;

  • В API Performance добавлен вызов LayoutShift, позволяющий отслеживать изменение позиции элементов DOM на экране.

  • Размер HTTP-заголовка "Referer" ограничен 4 КБ, при превышении данного значения содержимое урезается до имени домена;

  • Аргумент url в функции registerProtocolHandler() ограничен применением только схем http:// и https:// и теперь не допускает схемы "data:" и "blob:".

  • В метод Intl.NumberFormat добавлена поддержка форматирования единиц измерения, валют, научных и компактных обозначений (например, "Intl.NumberFormat('en', {style: 'unit', unit: 'meter-per-second'}");

  • Добавлены новые CSS-свойства overscroll-behavior-inline и overscroll-behavior-block для управления поведением прокруткой при достижении логической границы области прокрутки;

  • Для CSS-свойства white-space реализована поддержка значения break-spaces;

  • В Service Workers добавлена поддержка аутентификации HTTP Basic и вывода штатного диалога для ввода параметров входа;

  • API Web MIDI теперь может применяться только в контексте безопасного соединения (https, локальный файл или localhost);

  • Объявлен устаревшим API WebVR 1.1, на смену которому пришёл API WebXR Device, позволяющий получить доступ к компонентам для создания виртуальной и дополненной реальности и унифицировать работу с различными классами устройств, от стационарных шлемов виртуальной реальности до решений на базе мобильных устройств.

  • В инструментах для разработчиков добавлена возможность копирования в буфер обмена CSS-свойств узла DOM через контекстное меню, вызываемое правым кликом на узле в дереве DOM. Добавлен интерфейс (Show Rendering/ Layout Shift Regions) для отслеживания сдвигов разметки из-за отсутствия заглушек под рекламу и изображения (когда при просмотре загрузка очередного изображения сдвигает текст вниз). Панель аудита обновлена до выпуска Lighthouse 5.1.

  • Обеспечено автоматическое переключение на тёмную тему оформления DevTools при использовании тёмной темы в ОС. В режиме инспектирования сети добавлен признак загрузки ресурса из кэша упреждающей загрузки (prefetch cache). В панели Application добавлена поддержка отображения push-сообщений и уведомлений. В web-консоли при предпросмотре объектов теперь отображаются и приватные поля классов;

  • 0_1568205019.png
  • В JavaScript-движке V8 оптимизировано хранение статистики о типах операндов, преданных в разные операции (позволяет оптимизировать выполнение данных операций с учётом конкретных типов). Чтобы сократить потребление памяти векторы для учёта типов теперь размещаются в памяти только после выполнения определённого объёма байткода, что исключает применение оптимизации для функций с коротким временем жизни. Указанное изменение позволяет сэкономить 1–2% памяти в версии для настольных систем и 5–6% для мобильных устройств. 0_1568205802.png
    Улучшена масштабируемость фоновой компиляции WebAssembly - чем больше процессорных ядер в системе, тем больше выигрыш от добавленных оптимизаций. Например, на 24-ядерном компьютере с процессором Xeon время компиляции демонстрационного приложения Epic ZenGarden сократилось вдвое.

  • 0_1568206060.png
Кроме нововведений и исправления ошибок в новой версии устранено 52 уязвимости. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одна проблема (CVE-2019-5870) помечена как критическая, т.е. позволяет обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения.

Детали о критической уязвимости пока не разглашаются, известно только что она может привести к обращению к уже освобождённой области памяти в коде обработки мультимедийных данных. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 38 премии на сумму 33500 долларов США (одна премия $7500, четыре премии $3000, три премии $2000, четыре премии $1000 и восемь премий $500). Размер 18 вознаграждений пока не определён.

OpenNet
 
Последнее редактирование:
Для Chrome предложен режим автоматической блокировки ресурсоёмкой рекламы

27.09.19
Компания Google начала процесс утверждения включения в Chrome режима автоматической блокировки рекламы, создающей большую нагрузку на CPU или загружающей слишком много трафика. При превышении определённых лимитов рекламные iframe-блоки, потребляющие слишком много ресурсов, будут автоматически отключаться.

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

Код предлагается блокировать, если он израсходовал в основном потоке более 60 секунд процессорного времени в сумме или 15 секунд в 30-секундном интервале (потребляет 50% ресурсов более 30 секунд). Блокировка также будет срабатывать при загрузке рекламным блоком более 4 Мб данных по сети. Для исключения использования блокировки как признака для осуществления атак по сторонним каналам, по которым можно судить о мощности CPU, предлагается добавлять небольшие случайные флуктуации в пороговые значения и срабатывание блокировки.

Выгружаться и заменяться на предупреждение о блокировке будет только реклама, с которой не взаимодействовал пользователь. Определение связи iframe с рекламой производится эвристическим путём при помощи уже имеющегося механизма AdTagging. Пороговые значения подобраны для пропускания активности 99.9% проанализированных рекламных блоков. При этом прогнозируется, что предложенный механизм блокировки позволит уменьшить трафик от рекламных блоков на 12.8% и снизить нагрузку на CPU на 16.1%.

OpenNet
 
Chrome начнёт блокировать НТТР-ресурсы на HTTPS-страницах и проверять надёжность паролей

4.10.19
Компания Google предупредила об изменении подхода к обработке смешанного контента на страницах, открытых по HTTPS. Ранее при наличии на открытых по HTTPS страницах компонентов, загружаемых с без шифрования (по протоколу http://), выводился специальный индикатор. В будущем решено блокировать загрузку подобных ресурсов по умолчанию. Таким образом, страницы, открытые по "https://", будут гарантированно содержать только ресурсы, загруженные по защищённому каналу связи.

Отмечается, что в настоящее время более 90% сайтов, открываются пользователями Chrome с использованием HTTPS. Наличие вставок, загружаемых без шифрования, создаёт угрозы нарушения безопасности через модификацию незащищённого контента при наличии контроля за каналом связи (например, при подключении через открытые Wi-Fi). Индикатор смешанного контента признан неэффективным и вводящим пользователя в заблуждение, так как он не даёт однозначной оценки безопасности страницы.

В настоящее время наиболее опасные виды смешанного контента, такие как скрипты и iframe, уже блокируются по умолчанию, но изображения, звуковые файлы и видео по-прежнему могут быть загружены по http://. Через подмену изображений атакующий может подставить отслеживающие действия пользователя Cookie, попытаться эксплуатировать уязвимости в обработчиках изображений или совершить подлог, заменив представленную на изображении информацию.

Введение блокировки разделено на несколько этапов. В Chrome 79, намеченном на 10 декабря, появится новая настройка, которая позволит отключить блокировку для конкретных сайтов. Указанная настройка будет применяться для уже блокируемого смешанного контента, такого как скрипты и iframe, и вызываться через меню, выпадающее при клике
на символ замка, заменив собой ранее предлагавшийся индикатор для отключения блокировки.
0_1570130907.png
В Chrome 80, который ожидается 4 февраля, будет применена мягкая схема блокировки звуковых и видео файлов, подразумевающая автоматическую замену в ссылках http:// на https://, что позволит сохранить работоспособность, если проблемный ресурс также доступен по HTTPS. Изображения продолжат загружаться без изменений, но в случае загрузки по http:// на станицах https:// для всей страницы начнёт выводится индикатор незащищённого соединения.

Для автозамены на https или блокировки изображений разработчики сайтов смогут использовать CSP-свойства upgrade-insecure-requests и block-all-mixed-content. В выпуске Chrome 81, запланированном на 17 марта, при смешанной загрузке изображений будет применена автозамена на http:// на https://.

0_1570131279.png

Кроме того, компания Google объявила об интеграции в один из следующих выпусков браузера Chome нового компонента Password Checkup, ранее развивавшегося в виде внешнего дополнения. Интеграция приведёт к появлению в штатном менеджере паролей Chrome средств для анализа надёжности используемых пользователем паролей.

При попытке входа на любой сайт будет выполняться проверка логина и пароля по базе скомпрометированных учётных записей с выводом предупреждения в случае выявления проблем. Проверка осуществляется по базе, охватывающей более 4 миллиардов скомпрометированных аккаунтов, фигурировавших в утечках пользовательских баз. Предупреждение также будет выводиться при попытке использования тривиальных паролей, таких как "abc123" (по статистике Google 23% американцев используют подобные пароли), или при использовании одного и того же пароля на нескольких сайтах.

Для сохранения конфиденциальности при обращении к внешнему API передаётся лишь первые два байта хэша от связки из логина и пароля (для хэширования используется алгоритм Argon2). Полный хэш шифруется ключом, генерируемым на стороне пользователя. Исходные хэши в базе Google также дополнительно шифруются и оставляются для индексации только первые два байта хэша. Конечная сверка хэшей, подпадающих под переданный двухбайтовый префикс, производится на стороне пользователя с использованием криптографической техники "ослепления", при которой
ни одна из сторон не знает содержимое проверяемых данных.

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

OpenNet
 
Chrome полностью заблокирует смешанный контент

11.10.19

9087903c62dae40ace8db92523b1f433.png
Загрузка картинок с незащищённых сайтов тоже будет блокироваться

Google продолжает продвигать HTTPS, всё больше ограничивая в возможностях сайты, у которых нет TLS-сертификатов, хотя таких сайтов осталось уже мало. С июля прошлого года Chrome начал помечать такие сайты как небезопасные. Сейчас следующий шаг — компания анонсировала ряд шагов по постепенной блокировке смешанного контента.

Смешанный контент (mixed content) — это незащищённые элементы, передаваемые по HTTP-протоколу через страницы с SSL-сертификатом. Например, изображения, аудио и видео со сторонних (незащищённых) доменов. От такой практики придётся отказаться совсем.

«За последние годы в интернете достигнут большой прогресс в переходе на HTTPS: доля защищённого трафика в Chrome превысила 90% на всех основных платформах. Теперь мы хотим убедиться, что конфигурации HTTPS через интернет являются безопасными и актуальными», — объясняется в официальном блоге компании.

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

Загрузка смешанного контента также вводит в заблуждение с точки зрения UX-интерфейса. Получается, что страница представлена ни как безопасная, ни как небезопасная, а где-то между ними.

«Начиная с версии Chrome 79 будет происходить постепенная блокировка по умолчанию всего смешанного контента. Чтобы минимизировать ущерб, мы автоматически переведём смешанные ресурсы на https://, поэтому сайты будут продолжать автоматически работать, если их сторонние ресурсы доступны также по https://, — поясняет Google. — Пользователи смогут включить параметр, чтобы отказаться от блокировки смешанного контента на определённых веб-сайтах».

Chrome 79 выйдет на стабильном канале в декабре 2019 года. Там появится новая настройка для разблокировки смешанного контента на определённых сайтах. Этот параметр будет применяется к скриптам, фреймам и другим типам контента, которые Chrome в настоящее время блокирует по умолчанию. Доступ к настройкам сайта (Site settings) открывается по нажатию на пиктограмму замочка, как показано на скриншоте.

931021253d9da0e4e9f80c9ff6fc7923.png

На втором этапе с версии Chrome 80 (ранние версии появятся в январе 2020 года) все ресурсы, кроме изображений, которые подгружаются с незащищённых сайтов, будут автоматически переведены на https://, и Chrome заблокирует их по умолчанию, если они не смогут загружаться по . Описанная выше настройка по разблокировке останется доступна.

Единственным исключением станут изображения, которые браузер не будет блокировать даже с незащищённых соединений. Но для таких ситуаций в интерфейсе появится предупреждение «Не безопасно», как на скриншоте.

28ab623ac8349889dc590e5fa2a38965.png

В Chrome 81 (ранние версии появятся в феврале 2020 года) изображения тоже будут автоматически переведены на https://, и Chrome заблокирует их по умолчанию, если они не загружаются по HTTPS.

Google рекомендует веб-разработчикам провести аудит своих ресурсов с помощью инструмента Lighthouse или использовать сторонние плагины и утилиты. Например, есть такой плагин для WordPress и утилита от Cloudflare.

******************************************

Изменения в Chrome вскоре повторят остальные браузеры. Google обычно не делает такие шаги в изоляции. Всё происходит согласованно с коллегами из групп разработки Firefox, Edge и Safari. Поэтому в 2020 году никакой смешанный контент нигде не будет загружаться.

habr
 
Последнее редактирование:
Усиление изоляции между сайтами в Chrome

18.10.19
Компания Google объявила об усилении в Chrome режима межсайтовой изоляции, обеспечивающего обработку страниц с разных сайтов в отдельных изолированных процессах. Режим изоляции на уровне сайтов позволяет обезопасить пользователя от атак, которые могут быть совершены через используемые на сайте сторонние блоки, такие как внешние скрипты и iframe-вставки, или для блокирования течки данных через встраивание легитимных блоков (например, с запросами к банковским сервисам, на которых может быть аутентифицирован пользователь) на вредоносных сайтах.

При разделении обработчиков в привязке к домену, в каждом процессе находятся данные только одного сайта, что затрудняет совершение атак, направленных на межсайтовый захват данных. В настольных версиях Chrome разделение обработчиков в привязке к домену, а не вкладке, реализовано начиная с Chrome 67. В Chrome 77 подобный режим был активирован и для платформы Android.
0_1531383613.png
Для снижения накладных расходов режим изоляции сайтов в Android включается только если на странице зафиксирован вход при помощи пароля. Chrome запоминает факт использования пароля и включает защиту и для всех дальнейших обращений к сайту. Защита также применяется сразу для избранного списка предопределённых сайтов, популярных среди пользователей мобильных устройств. Выборочный метод активации и добавленные оптимизации позволили удержать рост потребления памяти из-за увеличения числа работающих процессов в среднем на уровне 3-5%, вместо 10-13%, наблюдаемых при активации изоляции для всех сайтов.

Новый режим изоляции активирован для 99% пользователей Chrome 77 на Android-устройствах, снабжённых как минимум 2 Гб ОЗУ (для 1% пользователей режим остался отключённым для мониторинга за производительностью). Включить или отключить режим изоляции сайтов вручную можно через настройку "chrome://flags/#enable-site-per-process".

В настольной редакции Chrome вышеотмеченный режим изоляции сайтов теперь усилен для противостояния атакам, нацеленным на полную компрометацию процесса с обработчиком контента. Улучшенный режим изоляции позволит защитить данные сайтов от двух дополнительных видов угроз: утечек данных в результате атак по сторонним каналам, таких как Spectre, и утечек после полной компрометации процесса-обработчика при успешной эксплуатации уязвимостей, позволяющих получить контроль над процессом, но не достаточных для обхода sandbox-изоляции. В Chrome для Android подобная защита будет добавлена позднее.

Суть метода в том, что управляющий процесс запоминает как какому сайту рабочий процесс имеет доступ и запрещает обращение к другим сайтам, даже если атакующий получит контроль над процессом и попытается получить доступ к ресурсам другого сайта. Ограничения охватывают ресурсы, связанные с аутентификацией (сохранённые пароли и Cookie), загружаемыми напрямую по сети данными (фильтруются и привязываются в текущему сайту HTML, XML, JSON, PDF и прочие типы файлов), данными во внутренних хранилищах (localStorage), полномочиями (выданные сайту разрешения доступа к микрофону и т.п.) и сообщениями, передаваемыми через API postMessage и BroadcastChannel. Все подобные ресурсы связываются меткой с исходным сайтом и проверяются на стороне управляющего процесса на предмет возможности передачи по запросу из рабочего процесса.

Из связанных с Chrome событий также можно отметить начало утверждения включения в Chrome поддержки функции Scroll-To-Text, дающей возможность формировать ссылки на отдельные слова или фразы, без явного указания в документе меток при помощи тега "a name" или свойства "id". Синтаксис подобных ссылок планируется утвердить в качестве web-стандарта, который пока находится на стадии черновика. Маска для перехода (по сути выполняется поиск с прокруткой) отделяется от обычного якоря признаком ":~:". Например, при открытии ссылки "Усиление изоляции между сайтами в Chrome" страница сдвинется на позицию с первым упоминанием слова "Chromе" и данное слово будет подсвечено. Возможность добавлена в ветку Canary, но для включения требует запуска с флагом "--enable-blink-features=TextFragmentIdentifiers".

Другим интересным предстоящим изменением в Chrome является возможность заморозки неактивных вкладок, позволяющая автоматически выгрузить из памяти вкладки, которые находятся в фоновом состоянии более 5 минут и не выполняют имеющих значение действий. Решение о пригодности той или иной вкладки для заморозки принимаются на основе эвристики. Изменение добавлено в ветку Canary, на базе которой будет сформирован выпуск Chrome 79, и включается через флаг "chrome://flags/#proactive-tab-freeze".

OpenNet
 
Последнее редактирование модератором:
Релиз Chrome 78

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

Основные изменения в Chrome 78:
  • Реализованаэкспериментальная поддержка "DNS поверх HTTPS" (DoH, DNS over HTTPS), которая будет выборочно включена для отдельных категорий пользователей, в системных настойках которых уже указаны DNS-провайдеры, поддерживающие DoH. Например, если у пользователя в системных настройках указан DNS 8.8.8.8, то в Chrome будет активирован DoH-сервис Google ("Google Public DNS"), если DNS - 1.1.1.1, то DoH сервис Cloudflare ("") и т.п.
    Для управления включением DoH предусмотрена настройка "chrome://flags/#dns-over-https". Поддерживается три режима работы "secure", "automatic" и "off". В режиме "secure" хосты определяются только на основе ранее прокешированных безопасных значений (полученных через защищённое соединение) и запросов через DoH, откат на обычный DNS не применяется. В режиме "automatic" если DoH и защищённый кэш недоступны допускается получение данных из небезопасного кэша и обращение через традиционный DNS. В режиме "off" вначале проверяется общий кэш и если данных нет, запрос отправляется через системный DNS.

  • В средствах синхронизации появилась предварительная поддержка совместного буфера обмена, которая пока не активирована для всех пользователей. В связанных одной учётной записью экземплярах Chrome теперь можно получить доступ к содержимому буфера обмена другого устройства, в том числе возможен совместный доступ к буферу обмена между мобильной и настольной системой. Содержимое буфера обмена шифруется с применением сквозного (end-to-end) шифрования, не позволяющего получить доступ к тексту на серверах Google;

  • Для отдельных категорий пользователей включена экспериментальная возможность смены темы оформления и кастомизации экрана, показываемого при открытии новой вкладки. В меню "Настроить", отображаемое в нижнем правом углу экрана новой вкладки, помимо выбора фонового изображения, появилась поддержка изменения метода компоновки ярлыков и возможность смены темы оформления.

  • Ярлыки могут быть автоматически предложены на основе наиболее часто открываемых сайтов, подобраны пользователем или вообще отключены. Тему оформления можно выбрать из набора предопределённых тем или создав собственную на основе выбора желаемых цветов в палитре. Для включения новых возможностей можно использовать флаги "chrome://flags/#ntp-customization-menu-v2" и "chrome://flags/#chrome-colors";

  • Для предприятий в адресной строке по умолчанию включена возможность поиска файлов в хранилище Google Drive. Поиск осуществляется не только по заголовкам, но и по содержимому документов с учётом истории их открытия в прошлом; 0_1571814212.png

  • В состав включён компонент Password Checkup, который будет поступательно активироваться для отдельных категорий пользователей (для принудительного включения предусмотрен флаг "chrome://flags/#password-leak-detection"). Password Checkup ранее поставлялся в виде внешнего дополнения, предназначенного для анализа надёжности используемых пользователем паролей. При попытке входа на любой сайт Password Checkup выполняет проверку логина и пароля по базе скомпрометированных учётных записей с выводом предупреждения в случае выявления проблем (проверка осуществляется на основе хэш-префикса на стороне пользователя). Проверка осуществляется по базе, охватывающей более 4 миллиардов скомпрометированных аккаунтов, фигурировавших в утечках пользовательских баз. Предупреждение также выводится при попытке использования тривиальных паролей, таких как "abc123";

  • Добавлена возможность инициирования звонка с Android-устройства, привязанного к той же учётной записи Google. В настольном браузере пользователь может выделить номер телефона в тексте, кликнуть правой кнопкой мыши и перенаправить операцию совершение звонка на Android-устройство, после чего на телефоне всплывёт уведомление, позволяющее инициировать звонок;

  • Изменён формат подсказки, отображаемой при наведении мыши на заголовок вкладки. Подсказка теперь отображается в виде всплывающего блока, на котором показан полный текст заголовка и URL страницы. Блок удобно использовать для быстрого поиска нужной страницы при открытии очень большого числа вкладок (вместо перебора вкладок можно провести мышью поверх панели с вкладками и найти искомую страницу). В будущем в данном блоке планируется обеспечить отображение эскиза страницы;

  • Добавлена экспериментальная возможность (chrome://flags/#enable-force-dark) принудительного использования тёмной темы оформления при просмотре сайтов. Для обеспечения тёмного представления сайта используется инвертирование цветов;


  • Добавлена поддержка спецификации CSS Properties and Values API Level 1, позволяющей регистрировать собственные CSS-свойства, всегда имеющие определённый тип, позволяющие устанавливать значение по умолчанию и допускающие привязку анимационных эффектов. Для регистрации свойства может использоваться метод registerProperty() или CSS-правило "@property", например:
    CSS.registerProperty({
    name: "--my-font-size",
    syntax: "‹length›",
    initialValue: "0px",
    inherits: false
    });

  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) предложено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.

    • API Native File System, позволяющий создавать web-приложения, взаимодействующие с файлами в локальной ФС. Например, новый API может быть востребован в запускаемых в браузере интегрированных средах разработки, редакторах текста, изображений и видео. Для получения возможности прямой записи и чтения файлов, использования диалогов для открытия и сохранения файлов, а также для навигации по содержимому каталогов, приложение запрашивает у пользователя специальное подтверждение; 0_1571821885.png
    • Механизм Signed HTTP Exchanges (SXG), позволяющий размещать на других сайтах верифицированные копий web-страниц, выглядящие для пользователя как исходные страницы (без изменения URL), расширен возможностью загрузки cубресурсов (CSS, JS, картинки и т.п.) c оригинального сайта. Первоисточник ресурса задаётся через HTTP-заголовок Link, в котором также указывается проверочный хэш для верификации каждого ресурса. При помощи новой возможности поставщики контента могут создавать единый подписанный HTML-файл, охватывающий и все связанные с ним субресурсы;
    • API SMS Receiver, позволяющий web-приложению получить доступ к SMS-сообщениям, например, для автоматизации верификации операции по отправленному через SMS одноразовому коду. Доступ предоставляется только к SMS, в которых указан специальный тег, определяющий привязку сообщения к конкретному web-приложению;

  • Существенно увеличена производительность загрузки объектов ArrayBuffer через Web Socket. На платформе Linux отмечается увеличение скорости загрузки в 7.5 раз, в Windows - в 4.1 раза, в macOS - в 7.8 раз;

  • Добавлена возможность определения в процентах значения прозрачности в CSS-свойствах opacity, stop-opacity, fill-opacity, stroke-opacity, и shape-image-threshold. Например, вместо "opacity: 0.5" теперь можно указывать "opacity: 50%";

  • В API User Timing разрешена передача произвольные метки времени в вызовы performance.measure() и performance.mark() для выполнения измерений между ними, а также указание произвольных метаданных;

  • В API Media Session добавлена поддержка определения обработчиков смены позиции в потоке (seekto), помимо ранее доступных обработчиков приостановки и начала воспроизведения;

  • В JavaScript-движке V8 включён режим фонового разбора скриптов на лету по мере их загрузки по сети. Реализованная оптимизация позволила на 5–20% сократить время компиляции скриптов. В новом выпуске также увеличена производительность деструктуризации объекта (преобразование "const {x, y} = object;" в "const x = object.x; const y = object.y;"). Повышена скорость обработки выражений RegExp с несовпадающими сопоставлениями. Существенно (на 9-20%) повышена скорость вызова функций JavaScript из WebAssembly и наоборот. При компиляции байткода повышена эффективность построения таблиц привязки к исходным позициям, которая позволила сократить потребление памяти на 1-2.5%. 0_1571824219.png
  • Расширены инструменты для web-разработчиков. Панель аудита теперь может использоваться в комбинации с другими возможностями, такими как блокировка запросов и переопределение загрузок. Добавлена поддержка отладки обработчиков платежей через API Payment. В панели анализа производительности добавлены метки LCP (Largest Contentful Paint), отражающие время отрисовки самых крупных элементов; 0_1571824585.png
  • Удалён механизм блокирования межсайтового скриптинга XSS Auditor, который признан неэффективным (атакующие уже давно применяют методы для обхода защиты XSS Auditor) и добавляющим новые векторы для утечки информации;
  • В версии для Android обеспечена возможности использования тёмной темы оформления для меню, настроек и режима навигации по открытым сайтам.
Кроме нововведений и исправления ошибок в новой версии устранено 37 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL.
Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 21 премию на сумму 59500 долларов США (одна премия $20000, одна премия $15000, одна премия $5000, две премии $3000,три премии $2000, пять премий $1000 и пять премий $500). Размер 4 вознаграждений пока не определён.
 
Chrome сломался в компаниях по всему миру из-за эксперимента Google


15.11.2019
Google активировала в Google Chrome экспериментальную функцию приостановки работы вкладок, когда пользователь переключается на другое приложение. Но вместо этого функция просто сделала все вкладки пустыми, заменив их «белым экраном смерти». Системные администраторы в ярости, что Google проводит такие эксперименты без предупреждения.


«Белый экран смерти»
Эксперимент, который Google проводит над Google Chrome, привел к сбою в работе этого браузера в тысячах корпоративных сетей почти на два дня. Первые признаки проблемы проявились в среду, 13 ноября. Она затронула не всех пользователей Google Chrome, а только те установки этого браузера, которые работали на терминальных серверах под управлением Windows Server, что часто встречается в крупных и средних организациях.

Судя по сотням жалоб, которые пользователи разместили в интернете, все вкладки в браузере внезапно стали пустыми, вместо них появился «белый экран смерти». Новые вкладки, которые пытались открыть пользователи, постигла та же участь. Системные администраторы жаловались, что в их компаниях сотни и тысячи сотрудников не могли выйти в интернет.
Проблема осложнилась тем, что в строго контролируемой корпоративной среде многим сотрудникам просто запрещено использовать какой-либо другой браузер кроме Google Chrome. Точно так же системные администраторы не могут просто взять и сразу заменить его другой программой. Поэтому пользователи оказались не в состоянии продолжать выполнять свою работу.

Жалобы от компаний
Пользователи оставили сотни сообщений о сбое на форумах поддержки Google и ресурсе Reddit. Судя по по содержанию сообщений, сбой сильно сказался на работе колл-центров.
«Это сильно повлияло на работу сотрудников нашего колл-центра, они не могли общаться с нашими клиентами. Мы потратили предыдущий день и еще половину, пытаясь с этим разобраться», — сообщил пользователь, который, судя по адресу его электронной почты, работает в американской компании Costco — крупнейшей в мире сети складов и магазинов самообслуживания клубного типа.
«В нашей организации, у которой есть несколько крупных розничных брендов, 1 тыс. работников колл-центра и многие ИТ-специалисты страдали от этой проблемы в течении двух дней. Это нанесло очень большой финансовый ущерб», — пишет другой пользователь.
chrome2600.jpg
Google проводит над пользователями Chrome эксперименты без их ведома
«Как и у многих других, это оказало серьезное влияние на нашу организацию, где весь операционный отдел (более 500 сотрудников) работает в среде RDS с Google Chrome в качестве основного браузера», — отмечает третий. Remote Desktop Services (RDS) — это сервис Microsoft, который позволяет множеству пользователей с помощью виртуализации подключиться к серверу и выполнять на нем повседневные задачи как на ПК в рамках индивидуальной сессии.
«В моем окружении 4 тыс. пострадавших. Пытаемся исправить ситуацию уже 12 часов», — сообщает еще один пользователь.
Системный администратор одной из затронутых компаний сообщил в беседе с ресурсом ZDNet, что они сначала приняли белые вкладки Chrome за работу вируса и отреагировали соответствующим образом, то есть начали аудит безопасности всей сети.

Причина сбоя
Как выяснилось, причиной сбоя стала экспериментальная функция Google Chrome под названием WebContents Occlusion — «затемнение веб-контента». Когда пользователь перетаскивает окно какого-нибудь другого приложения поверх Chrome, эта функция приостанавливает работу вкладок, а активную вкладку делает фоновой. Функция призвана рационализировать использование ресурсов, когда браузер не активен.

Google весь год тестировала WebContents Occlusion в релизах Chrome Canary и Chrome Beta, но на этой неделе решила испытать ее в основном релизе Stable, чтобы получить больше отзывов. Как пояснил разработчик Google Chrome Дэвид Биенвену (David Bienvenu), после пяти месяцев в бета-стадии функцию в экспериментальном порядке активировали в стабильных релизах, таких как M77 и M78, во вторник утром. До этого ее уже включали на месяц примерно у 1% пользователей M77 и M78, и никаких жалоб не было.

Но когда функция была развернута для более широкой аудитории — например, для пользователей Windows на терминальных серверах — возникла неожиданная ошибка. При переключении с Google Chrome на другое приложение браузер, вместо того, чтобы приостановить работу вкладок, начал полностью их выгружать, оставляя пустые страницы.

Решение проблемы и его критика
Разработчики Chrome сообщили, что они уже разослали новый файл конфигурации всем пользователям и остановили эксперимент. Напомним, у них есть возможность присылать обновленные настройки во все активные копии браузера через систему под названием Finch. Эта система дает возможность включать и отключать экспериментальные функции.

Если решение проблемы еще не пришло на устройство, пользователи могут самостоятельно отключить функцию, пройдя по адресам chrome://flags/#web-contents-occlusion и chrome://flags/#calculate-native-win-occlusion, или же запустить браузер с добавлением --disable-backgrounding-occluded-windows в командную строку.

Когда Google объяснила, как она решила проблему, это вызвало вспышку массовой ярости со стороны системных администраторов. Многие из них до этого не знали, что разработчики Chrome могут удаленно проводить эксперименты на их тщательно контролируемых корпоративных браузерах, без предупреждения и предварительного согласования.
В результате на компанию посыпались гневные упреки на тему того, что крупные корпорации — это не подопытные кролики, и что в их сетях работает профессиональное

ПО стоимостью в миллионы долларов, и что Google даже не представляет, сколько ресурсов было потрачено на ликвидацию последствий конкретно этого эксперимента.

«Мы очень заботимся о том, чтобы развертывать у себя изменения максимально контролируемо, как раз с целью избежать подобного сценария. И мы потратили большую часть вчерашнего дня, пытаясь определить, могли ли в нашей среде произойти какие-то внутренние изменения, о которых мы не знаем. Мы представить не могли, что такого рода события могут происходить в Chrome без нашего ведома. Мы уже обсуждаем альтернативные варианты, ни один из них нельзя назвать потрясающим, но это просто никуда не годится», — пишет один системный администратор, явно намекая на смену браузера во всей организации.

CNews
 
Последнее редактирование:
Назад
Сверху Снизу