Реліз Chrome 79

компанія Google представила реліз web-браузера Chrome 79. Одночасно доступний стабільний випуск вільного проекту Хром, що є основою Chrome. Браузер Chrome відрізняється використанням логотипів Google, наявністю системи надсилання повідомлень у разі краху, можливістю завантаження модуля Flash на запит, модулями для відтворення захищеного відеоконтенту (DRM), системою автоматичної установки оновлень та передачею при пошуку RLZ-параметрів. Наступний випуск Chrome 80 заплановано на 4 лютого.

Основні зміни в Chrome 79:

  • Активовано компонент Password Checkup, призначений для аналізу надійності паролів, що використовуються користувачем. При спробі входу на будь-який веб-сайт Password Checkup виконує перевірку логіна та пароля на базі скомпрометованих облікових записів з виведенням попередження у разі виявлення проблем (перевірка здійснюється на основі хеш-префіксу на стороні користувача). Перевірка здійснюється за базою, що охоплює понад 4 мільярди скомпрометованих акаунтів, що фігурували в витоках баз користувача. Попередження також виводиться при спробі використовувати тривіальні паролі, такі як «abc123». Для керування включенням Password Checkup у секції «Sync and Google Services» реалізовано спеціальне налаштування.
  • Подано нову технологію виявлення фішингу в режимі реального часу. Раніше перевірка виконувалася через звернення до локально завантажуваних чорних списків Safe Browsing, які оновлювалися приблизно раз на 30 хвилин, чого виявилося замало, наприклад, в умовах частого перемикання доменів зловмисниками. Новий метод дозволяє перевіряти URL на льоту з попередньою перевіркою за білими списками, в які включені хеші тисяч популярних сайтів, що заслуговують на довіру. Якщо сайт відсутній у білому списку, то браузер перевіряє URL на сервері Google, передаючи перші 32 біти хешу SHA-256 посилання, з якого вирізаються можливі персональні дані. За оцінкою Google, новий підхід дозволяє на 30% підвищити ефективність виведення попереджень для нових фішинг-сайтів.
  • Додано попереджувальний захист від передачі облікових даних Google та будь-яких паролів, збережених менеджеру паролів, через фішингові сторінки. При спробі введення збереженого пароля на сайті, на якому цей пароль зазвичай не застосовується, користувачеві буде виводитись попередження про потенційно небезпечну дію.
  • Для з'єднань з використанням TLS 1.0 та 1.1 тепер відображається індикатор небезпечного з'єднання. Повністю підтримка TLS 1.0 та 1.1 буде відключено у Chrome 81, наміченому на 17 березня 2020 року.
  • Додана можливість заморожування неактивних вкладок, що дозволяє автоматично вивантажити з пам'яті вкладки, які знаходяться у фоновому стані більше 5 хвилин і не виконують дій, що мають значення. Рішення про придатність тієї чи іншої вкладки для заморожування ухвалюються на основі евристики. Управління включенням функції здійснюється через прапор "chrome://flags/#proactive-tab-freeze".
  • Забезпечено блокування змішаного контенту на сторінках, відкритих по HTTPS для того, щоб гарантувати, що сторінки, відкриті за https://, містять лише ресурси, завантажені по захищеному каналу зв'язку. Незважаючи на те, що найбільш небезпечні види змішаного контенту, такі як скрипти та iframe, вже блокуються за умовчанням, зображення, звукові файли та відео досі могли бути завантажені http://. Індикатор змішаного контенту, що раніше застосовувався, для таких вставок визнаний неефективним і вводить користувача в оману, оскільки він не дає однозначної оцінки безпеки сторінки. Наприклад, через заміну зображень атакуючий може підставити відстежувальні дії користувача Cookie, спробувати експлуатувати вразливості в обробниках зображень або зробити фальсифікацію, замінивши подану на зображенні інформацію. Для відключення блокування змішаних компонентів додано спеціальне налаштування, що викликається через меню, що випадає при натисканні на символ замку.
  • Додано експериментальну можливість спільного доступу до вмісту буфера обміну між настільною та мобільною версіями Chrome. У зв'язаних одним обліковим записом екземплярах Chrome тепер можна отримати доступ до вмісту буфера обміну іншого пристрою, у тому числі можливий спільний доступ до буфера обміну між мобільною та настільною системою. Вміст буфера обміну шифрується із застосуванням наскрізного (end-to-end) шифрування, що не дозволяє отримати доступ до тексту на серверах Google. Функція включається через опції chrome://flags#shared-clipboard-receiver, chrome://flags#shared-clipboard-ui та chrome://flags#sync-clipboard-service.
  • У певному моменті (наприклад, при збереженні пароля) при вимкненій синхронізації профілю, крім аватара, в адресному рядку забезпечено відображення імені поточного облікового запису в Google, щоб користувач міг точно ідентифікувати поточний активний обліковий запис.
  • Для 1% користувачів активовано підтримка "DNS поверх HTTPS" (DoH, DNS over HTTPS). В експерименті беруть участь лише користувачі, у системних налаштуваннях яких уже вказані DNS-провайдери, які підтримують DoH. Наприклад, якщо у користувача в системних налаштуваннях вказано DNS 8.8.8.8, то в Chrome буде активовано DoH-сервіс Google ("https://dns.google.com/dns-query"), якщо DNS - 1.1.1.1, то DoH сервіс Cloudflare ("https://cloudflare-dns.com/dns-query") і т.п. Для керування включенням DoH передбачено налаштування "chrome://flags/#dns-over-https". Підтримується три режими роботи "secure", "automatic" та "off". У режимі "secure" хости визначаються тільки на основі раніше прокешованих безпечних значень (отриманих через захищене з'єднання) та запитів через DoH, відкат на звичайний DNS не застосовується. У режимі «automatic» якщо DoH та захищений кеш недоступні, допускається отримання даних з небезпечного кешу та звернення через традиційний DNS. У режимі off спочатку перевіряється загальний кеш і якщо даних немає, запит надсилається через системний DNS.
  • Додана експериментальна підтримка кешування відмальованого вмісту при зміні сторінок кнопками вперед і назад, що дозволяє суттєво знизити затримки при такому вигляді навігації за рахунок повного кешування всієї сторінки, що не вимагає повторного відмальовування та завантаження ресурсів. Оптимізація особливо помітна у версії для мобільних пристроїв, де приріст продуктивності при навігації досягає 19%. Режим вмикається за допомогою опції "chrome://flags#back-forward-cache".
  • Вилучена налаштування "chrome://flags/#omnibox-ui-hide-steady-state-url-scheme-and-subdomains", що дозволяло повернути показ протоколу в адресному рядку (тепер усі посилання завжди показуються без https:// і http:/ /, а також без "www.").
  • У збірках для Windows включено sandbox-ізоляція сервісу відтворення звуку. Для керування включенням ізоляції запропоновано властивість AudioSandboxEnabled.
  • Засоби централізованого адміністрування для підприємств реалізовано можливість визначення правил, що задають розмір пам'яті, який екземпляр браузера може зажадати до того, як почнуть вивантажуватися фонові вкладки. Пам'ять, що вивільняється після вивантаження вкладки, стає доступною для використання, а вміст вкладки знову завантажується при перемиканні на неї.
  • У Linux задіяний вбудований обробник верифікації сертифікатів, який прийшов на зміну системи NSS, що раніше застосовувалася. При цьому вбудований обробник продовжує використовувати сховища NSS під час перевірки, але висуває більш жорсткі вимоги при обробці некоректно закодованих та окремо засвідчених сертифікатів (усі сертифікати обов'язково повинні засвідчуватися центром, що засвідчує).
  • У версії для платформи Android додано можливість призначення адаптивних піктограм для веб-додатків, що встановлюються, що працюють в режимі Progressive Web Apps (PWA). Адаптивні піктограми можуть підлаштовуватися під інтерфейс, застосовуваний виробником пристрою, наприклад, бути круглими, квадратними або зі згладженими кутами.
  • доданий API WebXR Device, що надає доступ до компонентів для створення віртуальної та доповненої реальності. API дозволяє уніфікувати роботу з різними класами пристроїв, від стаціонарних шоломів віртуальної реальності, подібних до Oculus Rift, HTC Vive і Windows Mixed Reality, до рішень на базі мобільних пристроїв, таких як Google Daydream View і Samsung Gear VR. З додатків, в яких може бути застосовано новий API згадуються програми для перегляду відео в режимі 360 °, системи візуалізації тривимірного простору, створення віртуальних кінотеатрів для презентації відео, проведення експериментів зі створення 3D-інтерфейсів магазинів та галерей;

    Реліз Chrome 79

  • У режимі Origin Trials (експериментальні можливості, що вимагають окремої активації) запропоновано кілька нових API. Origin Trial має на увазі можливість роботи із зазначеним API з додатків, завантажених з localhost або 127.0.0.1, або після проходження реєстрації та отримання спеціального токена, який діє обмежений час для конкретного сайту.
    • Для всіх елементів HTML запропонований атрибут "rendersubtree", що забезпечує фіксацію відображення DOM-елемента. При наданні атрибуту значення «invisible» вміст елемента не буде малюватись і перевірятись, що дозволяє оптимізувати рендеринг. При встановленні значення "activatable" браузер видалить невидимий атрибут, відобразить вміст і зробить його видимим.
    • Доданий варіант API Блокування пробудження на основі механізму Promise, що надає безпечніший спосіб управління відключенням автоблокування екрану та переведення пристроїв в енергозберігаючі режими.
  • Реалізовано можливість застосування атрибуту автофокусом для всіх елементів HTML і SVG, на які можна встановити фокус введення.
  • Для зображень та відео забезпечено обчислення коефіцієнта співвідношення сторін на основі атрибутів Width або Height, що може використовуватися для визначення розміру зображення за допомогою CSS на стадії, коли зображення ще не завантажене (вирішує проблему з перебудовою сторінки після завантаження зображень).
  • Додано CSS-властивість шрифт-оптико-розмір, що автоматично виставляє розмір мінливого шрифту (variable font) в оптичних координатах.opsz«якщо шрифт їх підтримує. Режим дозволяє вибрати оптимальну форму гліфа для вказаного розміру, наприклад, використовувати більш контрастні гліфи для заголовків.
  • Додано CSS-властивість тип-стиль списку, що дозволяє використовувати будь-які символи замість точок у списках, наприклад, «-«, «+», «★» та «▸».
  • У разі неможливості виконати Worklet.addModule() тепер повертається об'єкт з детальною інформацією про характер помилки, який дозволяє більш точно оцінити причину помилки (проблеми з мережевим з'єднанням, некоректний синтаксис тощо).
  • Припинено обробку елементів при их перемещении между документами. При переносе между документами также отключено выполнение связанных со скриптом событий «error» и «load».
  • У JavaScript-движку V8 проведено оптимізація обробки зміни уявлення полів в об'єктах, в результаті якої виконання коду AngularJS в тестовому наборі Speedometer стало виконуватися на 4% швидше.

    Реліз Chrome 79

  • У V8 також проведено оптимізацію обробки гетерів, визначених у вбудованих API, таких як Node.nodeType і Node.nodeName, в умовах відсутності обробника IC (inline caching). Зміна приблизно на 12% скоротила витрати часу на IC runtime при виконанні тестів Backbone та jQuery із набору Speedometer.
    Реліз Chrome 79

  • Забезпечено кешування результатів роботи механізму OSR (called on-stack replacement), який здійснює підстановку оптимізованого коду в процесі виконання функції (дозволяє почати використовувати оптимізований код для функцій, що довго виконуються, не чекаючи їх повторного запуску). Кешування OSR дає можливість використовувати результати оптимізації та при повторному запуску функції без необхідності проходження повторної оптимізації.
    У деяких тестах зміна дозволила підняти пікову продуктивність на 5–18%.

    Реліз Chrome 79

  • Зміни в інструментах для веб-розробників:
      з'явився режим налагодження для визначення причин блокування запиту або віддачі Cookie.

      Реліз Chrome 79

    • У блоці зі списком cookie додано можливість швидкого перегляду значення вибраної cookie через клік на певному рядку.

      Реліз Chrome 79

    • Додано можливість симуляції різних налаштувань для media-запитів prefers-color-scheme та prefers-reduced-motion (наприклад, для перевірки поведінки сторінки при темній системній темі оформлення або при вимкнених анімованих ефектах).
      Реліз Chrome 79

    • Модернізовано оформлення вкладки Coverage, що дозволяє оцінити код, що використовується і не використовується. Додано можливість фільтрації інформації за її типом (JavaScript, CSS). Інформація про використання коду також додана під час відображення вихідного тексту.

      Реліз Chrome 79

    • Додано можливість налагодження причин запиту того чи іншого мережного ресурсу після запису мережевої активності (можна переглянути трасування виклику JavaScript-коду, що спричинив завантаження ресурсу).
      Реліз Chrome 79

    • Додано налаштування «Settings > Preferences > Sources > Default Indentation» для визначення виду відступу (2/4/8 пробілів або табуляції) у коді, що виводиться в панелях Console та Sources.

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

У рамках програми з виплати грошової винагороди за виявлення вразливостей для поточного релізу компанія Google виплатила 37 премій на суму 80000 доларів США (одна премія $20000, одна премія $10000, дві премії $7500, чотири премії $5000, одна премія $3000, дві $2000 та вісім премій $1000). Розмір 500 винагород поки не визначений.

Джерело: opennet.ru

Додати коментар або відгук