Критика включення 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, який виявив проблеми з обробкою трициферних версій на деяких сайтах.

Джерело: opennet.ru

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