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

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

Заявленная цель сбора таких данных — поиск ответа на вопрос, как пользователи взаимодействуют с веб-страницами, а также нахождение криво работающих страниц. Однако объем данных, собираемый такими скриптами, куда выше того, что можно было бы ожидать от оговариваемого пользовательским соглашением. Например, если перейти на сайт и начать заполнять форму, а затем отказаться от нее, введенная информация все равно будет записана. Случайно вставленное содержимое буфера обмена тоже запишется.

Компании прибегают к скриптам повторения сеансов, чтобы понять, как клиенты используют сайты. Скрипты не запускаются на каждой странице, но часто размещаются на тех, где пользователи вводят конфиденциальную информацию. К примеру, в 2013 году пользователи Facebook заметили, что социальная сеть делает что-то похожее с обновлением статуса — она ??записывает, какое сообщение они набрали, даже если не опубликовали запись.

Оценить масштаб и законность подобного попытались ученые из Пенсильванского университета Стивен Энглехардт (Steven Englehardt), Гунес Акар (Gunes Akar) и Арвинд Нараянан (Arvind Narayanan). Они провели исследование самых популярных сервисов, которые предоставляют компаниям возможность изучать поведение пользователей с помощью скриптов повторного сеанса, включая решения FullStory, SessionCam, SmartLook, UserReplay, Hotjar и «Яндекса». Результаты показали, что по крайней мере один из этих скриптов используется 482 из 50 000 самых популярных в мире по рейтингу Alexa сайтов.

В число крупных компаний, использующих скрипты, вошла розничная сеть Bonobos, крупнейшая в США аптечная сеть Walgreens и финансовая инвестиционная компания Fidelity. Исследователи отмечают, что в 482 случая могли попасть не все сайты. Некоторые из подобных сервисов предлагают запись действий не каждого посетителя, а лишь небольшой статистически значимой части. Возможно, когда исследователи проводили автоматическое сканирование, им не повезло, и они не попали в выборку.

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

Пароли иногда случайно включаются в записи, несмотря на то, что скрипты не должны их собирать. Особенно часто такое случается на мобильных сайтах, где для видимости символов для паролей иногда используют обычные поля ввода. Исследователи обнаружили, что другая личная информация также часто не обезличивалась или обезличивалась неполно. Меры защиты различаются от поставщика услуг аналитики. Две компании — UserReplay и SessionCam — заменяют весь пользовательский ввод текстом эквивалентной длины, FullStory, Hotjar и Smartlook по умолчанию заменяют вводимые данные только у полей определенного типа.

Однако дело не только в том, что касается ввода с клавиатуры. Когда вы заходите на сайт, то, что отображается на экране, также может оказаться персональной информацией. Исследователи обнаружили, что ни одна из компаний не предоставляет автоматическое обезличивание отображаемого контента по умолчанию; всё на экране пользователя утекает.

Например, исследователи протестировали сайт аптечной сети Walgreens, на котором исполнялся скрипт компании FullStory. Несмотря на то, что Walgreens.com действительно обезличивает пользовательский ввод, информация — симптомы и рецепты — по-прежнему собирается с помощью скрипта повторного сеанса вместе с реальными именами пользователей.


Запрос на рецепт антидепрессантов Zoloft на сайте Walgreens. Во время создания запроса название назначенного препарата попадает в скрипт FullStory. Имя пользователя, имя его врача и дозировка здесь заменены (выделено красным). Тем не менее, полное имя пользователя уже утекло в другом диалоге (не отображено на этой картинке), что позволяет любому, у кого есть доступ к записи, связать этот рецепт с личностью пользователя.


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


В процессе регистрации учетной записи Walgreens требует от пользователя подтвердить личность, задав стандартный набор вопросов. Варианты выбора ответов на эти вопросы, которые могут отображать личную информацию пользователя, показываются на странице и передаются в FullStory. К тому же функция отслеживания мыши FullStory, скорее всего, покажет выбор пользователя, даже несмотря на то, что выбор пользователя будет обезличен. Включение этих данных в записи напрямую противоречит заявлению в верхней части страницы: «Walgreens не сохраняет эти данные и не может получить к ним доступ или просмотреть ваши ответы».

Наконец, авторы исследования обеспокоены тем, что компании аналитики — лакомая цель для кибератак. Владельцы сайтов могут просматривать действия пользователей в панелях мониторинга. Но панели «Яндекса», Hotjar и Smartlook отдают действия пользователей по HTTP, включая действия на HTTPS-страницах. Что ещё хуже, «Яндекс» и Hotjar доставляют содержимое страниц анализируемого сайта по HTTP, в том числе страницы с HTTPS-контентом. Подобное оставляет простор для атак man-in-the-middle.

В комментарии по электронной почте журналисту издания Motherboard представитель «Яндекса» отметил, что компания пытается использовать HTTPS везде, где может, и заявил, что в будущих обновлениях доставка по HTTP будет исключёна. «HTTP используется намеренно, поскольку записи сеансов загружают сайты по iframe. К сожалению, загрузка HTTP-контента на HTTPS-сайтах запрещена на уровне браузера, поэтому HTTP-плееру приходится поддерживать HTTP-сайты для этой функции», — говорится в заявлении.

Существуют ли средства защиты от такой слежки? Исследователи установили, что подписки на списки блокировки EasyList и EasyPrivacy не блокируют скрипты FullStory, Smarlook или UserReplay, но содержат правила фильтрации, препятствующие скриптам «Яндекса», Hotjar, ClickTale и SessionCam собирать данные. UserReplay позволяет компаниям отключать сбор данных пользователей, в браузерах которых есть HTTP-заголовок Do Not Track.

Обновление от 22.11.2017, 13:35

Дополнение от представителя «Яндекса»: «В действительности для доставки данных от пользователей до «Метрики» мы используем только HTTPS. Здесь речь идёт о воспроизведении посещений в интерфейсе самой «Метрики». В этом сценарии воспроизведения мы вынуждены использовать HTTP из-за ограничений браузеров на загрузку HTTP-контента с HTTPS-сайтов. Нас это тоже сильно беспокоит, и это было одним из драйверов для создания новой версии, которая использует совсем другой подход и которую мы планируем сделать HTTPS-only».

Комментарии (24)


  1. Goron_Dekar
    21.11.2017 18:15
    +1

    Мой пароль, который я ввожу на сайте с HTTPS улетает таким вот скриптом?
    Я, конечно, предполагал, что всеобщее повальное увлечение HTTPS немного… наивно, но что настолько!
    Одна и та же компания сначала понижает в выдаче HTTP сайты и везде говорит про пользу шифрования, а сама ставит сбор, хм, аналитики в HTTP.


    1. old_bear
      21.11.2017 23:08

      А вы думали, что эта одна компания затеяла бучу с https ради всеобщего блага? Весьма наивно с вашей стороны. Всё сводится к защите пользовательских данных от конкурентов, чтобы использовать их единолично.


    1. BarakAdama
      22.11.2017 13:17

      Добрый день. К сожалению, суть статьи Motherboard была искажена при переводе. Для доставки данных от пользователей до Метрики мы используем только HTTPS. А для воспроизведения посещений в интерфейсе самой Метрики мы вынуждены использовать HTTP из-за ограничений браузеров на загрузку HTTP-контента с HTTPS-сайтов.


      1. BarakAdama
        22.11.2017 13:27

        При этом пользовательские сессии анонимизированы, все персональные данные, такие как IP-адрес или электронная почта, не показываются.


        1. BarakAdama
          22.11.2017 14:02

          Ещё более явно скажу: пароли не записываются и никуда не отправляются.


    1. younghacker
      22.11.2017 13:37

      Ваш пароль — это данные реальном элементе на веб странице. Любой скрипт который имеет доступ к странице — видит её целиком.

      А ещё обратите внимание на IP адреса откуда Вам отдают HTTPS контент. Очень часто сейчас это CDN которая не имеет никакого отношения к самой компании. А CDN не может кешировать зашифрованный контент. Поэтому контент дешифруется на стороне CDN и она имеет все данные переданные пользователем в сторону сайта в открытом виде. И разумеется может точечно подсунуть посетителю свой скрипт.


  1. vics001
    21.11.2017 22:56

    «HTTP используется намеренно, поскольку записи сеансов загружают сайты по iframe. К сожалению, загрузка HTTP-контента на HTTPS-сайтах запрещена на уровне браузера, поэтому HTTP-плееру приходится поддерживать HTTP-сайты для этой функции», — говорится в заявлении.

    Яндекс: это не баг, а фича!


  1. steff
    21.11.2017 22:57

    Помнится, Олег Тиньков говорил, что на сайте их банка логируется заполнение онлайн-форм (заявки на кредит/кредитные карты). Например, ввёл ли пользователь имя и телефон сразу или менял содержимое этих полей в процессе заполнения. Вроде как это учитывается при принятии решения по заявке.
    Может, в том числе и поэтому скорость работы сайта банка много жалоб?)


    1. Mnemone
      23.11.2017 12:52

      я так заявку на карту в рокетбанк заполнял. Заполнил до середины и бросил, вкладку закрыл. Через 2 дня позвонили и спросили, что случилось)).


  1. agat000
    22.11.2017 06:53

    Разве это не обычная практика?
    У меня есть сайт, на нем стоит Яндекс-метрика. Я захожу в аналитику и смотрю все действия посетителя в виде роика. Где мышкой водит, куда тыкает. Насчет заполенния форм не знаю, правда.


    1. AllSoliton
      22.11.2017 13:37

      Стояла Яндекс.Метрика и могу сказать, что действительно видел даже те сообщения, которые пользователи не отправляли. Не все, правда, только некоторые по случайности, но да, видел, куда тыкал и что вводил.


  1. FreeManOfPeace
    22.11.2017 08:08

    Так вот почему современные сайты тормозят на AMD Athlon X2.
    А по сути нужен uBlock с правильными подписками, а лучше RequestPolicy с белым списком.


    1. imm
      22.11.2017 08:41

      ScriptSafe или NoScript режут всё, что прямо не разрешено
      image
      я.метрика кстати на хабре/гт пишет все действия пользователя


      1. Drag13
        22.11.2017 11:24

        А вот метрика это не красиво. Одно дело призывать пользователей отключить адблок потому что сайт живет за счет рекламы (в том числе), другое дело — «заодно» записывать все действия пользователя.


        1. BarakAdama
          22.11.2017 13:19

          Пользовательские сессии записываются только если вебмастер принимает решение включить session replay в Метрике. Сами сессии при этом анонимизированы, все персональные данные, такие как IP-адрес или электронная почта, не показываются.


          1. Nick0N
            22.11.2017 13:36

            не показываются, но они есть, так? значит для веб-мастера анонимизированы, а для вас нет


            1. BarakAdama
              22.11.2017 14:03

              Пароли не записываются и никуда не передаются.


              1. imm
                22.11.2017 14:47

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


                1. BarakAdama
                  22.11.2017 15:07

                  Банковские номера, конечно же, тоже не записываем. Вообще не трогаем.


            1. imm
              22.11.2017 14:19

              правильный ответ:
              "- да, мы собираем все возможные данные. да, заботливо храним их и показываем только часть. да, пока не придумали, как заработать на оставшейся части, но работаем над этим. и да — мы заботимся о безопасности наших данных."
              но этот ответ никто вам не озвучит


              1. BarakAdama
                22.11.2017 14:59

                Нет, не собираем все возможные данные.


  1. sondern
    22.11.2017 13:37

    Я думал что Ghost блокирует эти скрипты. По крайней мере это когда то работало для яндекс метрики.


  1. dartraiden
    22.11.2017 18:03

    Исследователи установили, что подписки на списки блокировки EasyList и EasyPrivacy не блокируют скрипты FullStory, Smarlook или UserReplay, но содержат правила фильтрации, препятствующие скриптам «Яндекса», Hotjar, ClickTale и SessionCam собирать данные.

    Смотрю в подписку EasyPrivacy:
    ||userreplay.net^$third-party
    ||fullstory.com^$third-party
    ||smartlook.com^$third-party
    


  1. Mitch
    22.11.2017 23:51
    -1

    Ну да записывают данные, и что?
    Типа это плохо и давайте попросим правительство чтоб оно им это запретило?
    Или какой посыл?


    Как вебмастер, я всегда считал что все данные которые попали в мои логи — это мои данные.
    Когда я понял что яндекс метрика прячет от меня часть этих данных, что я ip своих посетителей не вижу, если пользуюсь только их статистикой, я был возмущен.