Критика включения API Idle Detection в Chrome 94. Эксперименты с Rust в Chrome

Включение по умолчанию API Idle Detection в Chrome 94 привело к волне критики со ссылками на возражения от разработчиков Firefox и WebKit/Safari.

API Idle Detection позволяет сайтам определить время, когда пользователь неактивен, т.е. не взаимодействует с клавиатурой/мышью или выполняет работу на другом мониторе. API также позволяет узнать запущен в системе хранитель экрана или нет. Информирование о неактивности осуществляется через отправку уведомления после достижения заданного порога неактивности, минимальное значение которого установлено в 1 минуту.

Важно отметить, что применение API Idle Detection требует явного предоставление полномочий пользователя, т.е. если приложение попытается первый раз определить факт неактивности, пользователю будет показано окно с предложением предоставить полномочия или блокировать операцию. Для полного отключения API Idle Detection в разделе настроек «Конфиденциальность и безопасность» предусмотрена специальная опция («chrome://settings/content/idleDetection»).

В качестве областей применения называются приложения для чата, социальных сетей и коммуникаций, которые могут менять статус пользователя в зависимости от его присутствия за компьютером или откладывать вывод уведомлений о новых сообщениях до прихода пользователя. API также может применяться в приложениях-киосках для возвращения к исходному экрану после определённого времени неактивности или для отключения ресурсоёмких интерактивных операций, таких как перерисовка сложных постоянно обновляемых диаграмм, когда пользователя нет за компьютером.

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




Дополнительно можно отметить заметку разработчиков Chrome о продвижении новых техник обеспечения безопасной работы с памятью. По данным Google 70% проблем с безопасностью в Chrome вызваны ошибками при работе с памятью, такими как обращение к буферу после освобождения связанной с ним памяти (use-after-free). Определяется три основных стратегии борьбы с подобными ошибками: усиление проверок на этапе компиляции, блокирование ошибок во время выполнения и применение языка, обеспечивающем безопасную работу с памятью.

Сообщается о начале экспериментов по добавлению в кодовую базу Chromium возможности разработки компонентов на языке Rust. Код на Rust пока не входит в поставляемые пользователям сборки и в основном нацелен на тестирование возможности разработки отдельных частей браузера на Rust и их интеграции с остальными частями, написанными на C++. Параллельно для кода на С++ продолжает развиваться проект по применению типа MiraclePtr вместо raw-указателей для блокирования возможности эксплуатации уязвимостей, вызванных обращением к уже освобождённым блокам памяти, а также предлагаются новые методы выявления ошибок на этапе компиляции.

Кроме того, компания Google начинает эксперимент по тестированию возможного нарушения работы сайтов после достижения браузером версии, состоящей из трёх цифр вместо двух. В частности, в тестовых выпусках Chrome 96 появилась настройка «chrome://flags#force-major-version-to-100», при указании которой в заголовке User-Agent начинает выдаваться версия 100 (Chrome/100.0.4650.4). В августе похожий эксперимент проводился в Firefox, который выявил проблемы с обработкой трехциферных версий на некоторых сайтах.



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

Полный текст статьи читайте на OpenNet прочитано 116955 раз