Xakep #305. Многошаговые SQL-инъекции
Исследователи из Принстонского университета, Стив Инглхард (Steve Engelhard) и Арвинд Нараянан (Arvind Narayanan), рассказали, как один из элементов HTML5, Battery Status API, используется для слежки за пользователями.
Суперкуки, малварь, специальные приложения? Зачем, когда еще в 2015 году исследователи из Стэнфорда доказали, что следить за пользователем можно, полагаясь на данные об использовании батареи в телефоне. Теперь похожее исследование представили специалисты из Принстона, которые обнаружили, что Battery Status API может использоваться для выяснения, на какие сайты заходит пользователь.
Battery Status API, впервые представленное в составе HTML5, в настоящее время является частью браузеров Firefox, Chrome и Opera. Исходно предполагалось, что API позволит владельцам сайтов видеть уровень заряда батарей ноутбуков, планшетов или смартфонов посетителей. По идее, опираясь на эти данные, владельцы сайтов могли бы создать более энергоэффективную версию ресурса, которая помогала бы экономить заряд батарей пользователей.
О том, что данный инструмент может использоваться совсем не по прямому назначению, еще в 2015 году предупреждали (PDF) исследователи Лёвенского католического университета и национального исследовательского института Франции. Тогда эксперты писали, что API позволяет присвоить пользователю псевдоуникальный идентификатор, основывающийся на скорости разрядки батареи (в секундах) и уровне заряда (в процентах).
Но тревога специалистов осталась практически незамеченной, а теперь ситуация ухудшилась. Вышеупомянутые исследователи из Принстона, Стив Инглхард и Арвинд Нараянан, представили доклад (PDF), в котором рассказали, что обнаружили два скрипта, которые отслеживают пользователей посредством Battery Status API. Первый скрипт собирает данные о текущем уровня заряда и комбинирует эти данные с локальным IP-адресом пользователя и другими уникальными параметрами. Второй скрипт собирает данные о текущем уровня заряда, статусе батареи и времени, оставшемся до перезарядки или разрядки устройства.
Один из французских исследователей, работавших над докладом в прошлом году, на этой неделе опубликовал сообщение в блоге. Он уже видел новый доклад, представленный коллегами, и пишет, что индустрия уже обратила внимание на Battery Status API:
«Некоторые компании уже изучают возможные способы монетизации [информации] доступной об уровне заряда батареи. Когда батарея почти разряжена, люди могут принимать решения, отличные от обычных. [К примеру], в такой ситуации пользователи согласятся заплатить больше за какую-либо услугу, — пишет исследователь. — Теперь некоторые производители браузеров рассматривают возможность ограничения или отключения механизмов, считывающих данные о батарее».
Эксперт явно недалек от истины, так как пару месяцев назад глава отдела экономических исследований компании Uber Кит Чин (Keith Chen) сообщил, что компания следит за уровнем заряда устройств пользователей, так как если батарея почти на нуле, клиент готов заплатить за такси практически любые деньги, до 9,9 раз больше, чем обычно.