*Exfiltração (Subtração de Dados não Autorizados) de Dados Pessoais por “Scripts de Repetição de Sessão”

Esta é a primeira publicação em nossa série “Sem Limites”, na qual revelamos como os scripts de terceiros em sites extraíram informações pessoais de maneira cada vez mais intrusiva. [0]

por Steven Englehardt, Gunes Acar e Arvind Narayanan

Atualização: lançamos nossos dados – a lista de sites com scripts de repetição de sessão e os sites onde confirmamos a gravação por terceiros.

Você pode saber que a maioria dos sites tem scripts de análise de terceiros que registram as páginas que você visita e as pesquisas que você faz. Mas ultimamente, mais e mais sites usam scripts de “repetição de sessão”. Esses scripts gravam suas batidas de teclas, movimentos do mouse e comportamento de rolagem, juntamente com todo o conteúdo das páginas que você visita e enviá-los para servidores de terceiros. Ao contrário dos serviços analíticos típicos que fornecem estatísticas agregadas, esses scripts destinam-se a gravação e reprodução de sessões de navegação individuais, como se alguém estivesse olhando sobre seu ombro.

O objetivo declarado desta coleção de dados inclui reunir informações sobre como os usuários interagem com sites e descobre páginas quebradas ou confusas. No entanto, a extensão dos dados coletados por esses serviços excede em muito as expectativas dos usuários [1]; O texto digitado em formulários é coletado antes que o usuário envie o formulário, e movimentos precisos do mouse são salvos, todos sem qualquer indicação visual para o usuário. Não se pode esperar que esses dados sejam mantidos anônimos. Na verdade, algumas empresas permitem que os editores liguem explicitamente as gravações à identidade real de um usuário.

Para este estudo, analisamos sete das principais empresas de repetição de sessões (com base na sua popularidade relativa em nossas medidas [2]). Os serviços estudados são Yandex, FullStory, Hotjar, UserReplay, Smartlook, Clicktale e SessionCam. Encontramos esses serviços em uso em 482 dos 50 mil sites da Alexa.

https://s3.amazonaws.com/ftt-uploads/wp-content/uploads/2017/11/15012417/user_replay_fullstory_demo.mp4
Este vídeo mostra o recurso ” co-browse “ de uma empresa, onde o editor pode assistir as sessões dos usuários ao vivo.

O que pode dar errado? Em suma, muito.

A coleção de conteúdo da página por scripts de repetição de terceiros pode causar informações confidenciais, como condições médicas, detalhes do cartão de crédito e outras informações pessoais exibidas em uma página para vazamento para o terceiro como parte da gravação. Isso pode expor os usuários ao roubo de identidade, fraudes on-line e outros comportamentos indesejados. O mesmo é verdadeiro para a coleta de entradas do usuário durante os processos de check-out e registro.

Os serviços de repetição oferecem uma combinação de ferramentas de redação manual e automática que permitem que os editores excluam informações confidenciais das gravações. No entanto, para que os vazamentos sejam evitados, os editores precisariam verificar e esfregar diligentemente todas as páginas que exibem ou aceitam informações do usuário. Para sites gerados dinamicamente, este processo envolveria a inspeção do código do lado do servidor da aplicação web subjacente. Além disso, esse processo precisaria ser repetido sempre que um site é atualizado ou a aplicação web que alimenta o site é alterada.

Um processo de redação completo é realmente um requisito para vários dos serviços de gravação, que proíbem explicitamente a coleta de dados do usuário. Isso anula a premissa central desses scripts de repetição de sessão, que se comercializam como plug and play. Por exemplo, a página inicial do Hotjar anuncia : ” Configure o Hotjar com um script em questão de segundos ” e o procedimento de inscrição do Smartlook apresenta sua etiqueta de script ao lado de um temporizador com o slogan ” cada minuto que você perde é um monte de vídeo “.

Para entender melhor a eficácia dessas práticas de redação, configuramos páginas de teste e instalamos scripts de repetição de seis das sete empresas [3]. A partir dos resultados desses testes, bem como a análise de vários sites ao vivo, destacamos quatro tipos de vulnerabilidades abaixo:

1. As senhas estão incluídas nas gravações de sessão. Todos os serviços estudados tentam evitar vazamentos de senha excluindo automaticamente os campos de entrada de senha das gravações. No entanto, as caixas de login amigáveis ​​para dispositivos móveis que usam entradas de texto para armazenar senhas não esquecidas não são redatadas por esta regra, a menos que o editor adicione manualmente tags de redação para excluí-las. Encontramos pelo menos um site onde a senha foi inserida em um formulário de registro vazado no SessionCam, mesmo que o formulário nunca seja enviado.

2. As entradas de usuários sensíveis são redatadas de forma parcial e imperfeita. À medida que os usuários interagem com um site, eles fornecerão dados confidenciais durante a criação da conta, ao fazer uma compra ou ao pesquisar o site. Os scripts de gravação de sessões podem usar instrutores de entradas de teclas ou de elementos de entrada para coletar esses dados.

Todas as empresas estudadas oferecem alguma mitigação através de redação automatizada, mas a cobertura oferecida varia muito pelo fornecedor. UserReplay e SessionCam substituem todas as entradas do usuário por um texto de mascaramento de comprimento equivalente, enquanto FullStory, Hotjar e Smartlook excluem campos de entrada específicos por tipo. Resumimos a redação de outros campos na tabela abaixo.

Resumo dos recursos de redação automatizados oferecidos por cada serviço

Resumo dos recursos de redação automatizada para entradas de formulário ativadas por padrão de cada empresa.
Círculo preenchido: os dados são excluídos; Círculo meio cheio: mascaramento de comprimento equivalente; Círculo vazio: osdados são enviados no clear
* UserReplay envia os últimos 4 dígitos do campo do cartão de crédito em texto simples
† Hotjar mascara a porção de endereço do campo de endereço.

 

A redação automatizada é imperfeita; Os campos são redigidos por tipo de elemento de entrada ou heurísticas, que nem sempre correspondem à implementação usada pelos editores. Por exemplo, o FullStory redacta os campos do cartão de crédito com o atributo `autocompletar` definido para` cc-number`, mas irá coletar quaisquer números de cartão de crédito incluídos em formulários sem este atributo.

Dados do cartão de crédito vazando na página de pagamento Bonobos

A página de conta da loja de roupas Bonobos filtra os detalhes completos do cartão de crédito para a FullStory. A captura de tela do inspetor de rede do Chrome mostra os dados vazados que estão sendo enviados carta-a-letra à medida que são digitados. O número completo do cartão de crédito do usuário, o número de vencimento, o número CVV, o nome e o endereço de cobrança são vazados nesta página. O endereço de e-mail e os números dos cartões-presente estão entre os outros tipos de dados vazados no site Bonobos.

Para complementar a redação automatizada, várias empresas de gravação de sessões, incluindo Smartlook , Yandex , FullStory , SessionCam e Hotjar, permitem aos sites especificar ainda elementos de entrada a serem excluídos da gravação. Para efetivamente implementar essas atenuações, um editor precisará auditar ativamente cada elemento de entrada para determinar se contém dados pessoais. Isso é complicado, propenso a erros e dispendioso, especialmente porque um site ou o código de aplicativo da Web subjacente mudam ao longo do tempo. Por exemplo, o site de serviço financeiro fidelity.com possui várias regras de redação para Clicktale que envolvem tabelas aninhadas e elementos filho referenciados pelo índice. Na próxima seção, exploramos esses desafios.

Uma abordagem mais segura seria mascarar ou redigir todas as entradas por padrão, como é feito pelo UserReplay e SessionCam, e permitir a listagem branca de valores seguros. Mesmo as entradas completamente mascaradas fornecem proteção imperfeita. Por exemplo, a máscara utilizada pelo UserReplay e o Smartlook vazam o comprimento da senha do usuário

3. A redação manual de informações de identificação pessoal exibidas em uma página é um modelo fundamentalmente inseguro. Além de coletar entradas de usuários, as empresas de gravação de sessões também coletam conteúdo de página renderizada. Ao contrário da gravação de entrada do usuário, nenhuma das empresas parece fornecer redação automática do conteúdo exibido por padrão; Todo o conteúdo exibido em nossos testes acabou vazando.

Em vez disso, as empresas de gravação de sessões esperam que os sites rotulem manualmente todas as informações de identificação pessoal incluídas em uma página renderizada. Os dados sensíveis do usuário têm uma série de caminhos para acabar em gravações e pequenos vazamentos em várias páginas podem levar a uma grande acumulação de dados pessoais em uma única gravação de sessão.

Para que as gravações estejam completamente livres de informações pessoais, os desenvolvedores de aplicativos web de um site precisarão trabalhar com as equipes de marketing e análise do site para esfregar iterativamente a identificação pessoal de informações de gravações conforme descobriu. Qualquer alteração no design do site, como uma alteração no atributo de classe de um elemento contendo informações confidenciais ou uma decisão de carregar dados particulares em um tipo diferente de elemento, exige uma revisão das regras de redação.

Como um estudo de caso, examinamos a seção de farmacia do Walgreens.com, que incorpora a FullStory. O Walgreens faz um uso extensivo da redação manual tanto para os dados exibidos quanto para os dados de entrada. Apesar disso, descobrimos que informações confidenciais, incluindo condições médicas e prescrições, são filtradas para FullStory ao lado dos nomes dos usuários.

A página de solicitação de receita da Walgreens filtra informações sobre prescrição

A imagem acima mostra um pedido de receita para o antidepressivo, Zoloft. Durante o processo de criação do pedido, o nome do medicamento prescrito é vazado para FullStory [4]. A redação manual foi usada para excluir o nome do usuário, o nome do médico e a quantidade de medicamento da gravação (marcada na imagem por uma sobreposição listrada). No entanto, o nome completo do usuário foi vazado anteriormente no processo (não mostrado nesta imagem), o que permite que qualquer pessoa com acesso à gravação associe esta receita à identidade real do usuário.

A página de histórico de saúde de Walgreens filtra as condições de saúde

O Walgreens permite aos usuários inserir seu “Histórico de Saúde”, que pode incluir outras prescrições e condições de saúde que possam ser relevantes para pedidos de prescrição. Durante este processo, a maioria das informações pessoais e de saúde do usuário são excluídas da gravação da FullStory através da redação manual. No entanto, o processo filtra o medicamento selecionado e as condições de saúde, o último dos quais é mostrado acima.

A página de verificação de identidade do Walgreens desperdiça as respostas às perguntas

Durante a inscrição na conta, o Walgreens exige que um usuário verifique sua identidade perguntando um conjunto padrão de perguntas de verificação de identidade. As opções de seleção para essas perguntas, que podem revelar as informações pessoais do usuário, são exibidas na página e são transferidas para FullStory. Além disso, o recurso de rastreamento do mouse de FullStory provavelmente revelará a seleção do usuário, mesmo que a seleção do botão de rádio seja redigida. A inclusão desses dados em gravações contradiz diretamente a declaração no topo da página: “Walgreens não retém esses dados e não pode acessar ou visualizar suas respostas”.

Não apresentamos os exemplos acima para apontar os dedos para um determinado site. Em vez disso, pretendemos mostrar que o processo de redação pode falhar mesmo para um grande editor com um forte incentivo legal para proteger os dados do usuário. Observamos fugas de informações pessoais semelhantes em outros sites, inclusive nas páginas de pagamento da Lenovo [5]. Sites com menos recursos ou menos conhecimentos são ainda mais prováveis ​​de falhar.

4. Os serviços de gravação podem não proteger os dados do usuário. Os serviços de gravação aumentam a exposição a brechas de dados, pois os dados pessoais inevitavelmente acabarão em gravações. Esses serviços devem lidar com dados de gravação com as mesmas práticas de segurança com as quais um editor deveria lidar com os dados do usuário.

Nós fornecemos um exemplo específico de como os serviços de gravação podem não conseguir fazê-lo. Uma vez que a gravação da sessão está completa, os editores podem analisá-la usando o painel fornecido pelo serviço de gravação. Os painéis de editor para Yandex, Hotjar e Smartlook oferecem todas as reproduções em uma página HTTP, mesmo para gravações que ocorrem em páginas HTTPS. Isso permite que um homem-in-the-middle ativo injetar um script na página de reprodução e extraia todos os dados de gravação. Pior ainda, Yandex e Hotjar entregam o conteúdo da página do editor em HTTP – os dados anteriormente protegidos pelo HTTPS agora são vulneráveis ​​à vigilância de rede passiva.

As vulnerabilidades que destacamos acima são inerentes à gravação de sessão de página inteira. Isso não quer dizer que os exemplos específicos não podem ser resolvidos – de fato, as editoras que examinamos podem corrigir seus vazamentos de dados e senhas do usuário. Os serviços de gravação podem usar o HTTPS durante as reproduções. Mas enquanto a segurança dos dados do usuário se basear em editores redactando seus sites, essas vulnerabilidades subjacentes continuarão a existir.

A proteção de rastreamento ajuda?

Duas listas de bloqueio de anúncios de uso comum EasyList e EasyPrivacy não bloqueiam os scripts FullStory, Smartlook ou UserReplay. A EasyPrivacy possui regras de filtro que bloqueiam Yandex, Hotjar, ClickTale e SessionCam.

Pelo menos uma das cinco empresas que estudamos (UserReplay) permite que os editores desativem a coleta de dados de usuários que não tenham definido (DNT) em seus navegadores. Escaneámos as configurações do Alexa top 1 milhão de editores usando UserReplay em suas homepages e descobrimos que nenhum deles escolheu honrar o sinal DNT.

Melhorar a experiência do usuário é uma tarefa crítica para os editores. No entanto, não deve ocorrer à custa da privacidade do usuário.


Notas finais:

[0] Usamos o termo ‘exfiltrado’ nesta série para se referir à coleta de dados de terceiros que estudamos. O termo “vazamento” às vezes é usado, mas nós o evitamos, porque sugere uma coleção acidental resultante de um erro. Em vez disso, nossa pesquisa sugere que, embora não seja necessariamente mal-intencionada, a coleta de dados pessoais sensíveis pelos terceiros que estudamos é inerente à sua operação e é bem conhecida pela maioria, senão por todas essas entidades. Além disso, há um elemento de força; esses fluxos de dados não são de conhecimento público e nem editores nem terceiros são transparentes sobre eles.

[1] Uma análise recente da empresa Navistone, completada por Hill e Mattu para Gizmodo, explora como a coleta de dados antes da apresentação do formulário excede as expectativas dos usuários. Neste estudo, mostramos como as empresas analíticas coletam muito mais dados do usuário com uma divulgação mínima para o usuário. Na verdade, alguns serviços sugerem que os sites do primeiro grupo simplesmente incluem um aviso legal na política de privacidade ou termos de serviço do site.

[2] Usamos o OpenWPM para rastrear os 50 mil sites do Alexa, visitando a página inicial e 5 páginas internas adicionais em cada site. Utilizamos uma abordagem em duas etapas para detectar serviços analíticos que coletam conteúdo da página.

Em primeiro lugar, injetamos um valor exclusivo no HTML da página e procuramos evidências de que esse valor seja enviado a um terceiro no tráfego da página. Para detectar valores que podem ser codificados ou esmagados, utilizamos uma metodologia de detecção semelhante ao trabalho anterior no rastreamento de e-mail . Depois de filtrar os destinatários de vazamento, isolamos páginas nas quais pelo menos um terceiro recebe uma grande quantidade de dados durante a visita, mas para o qual não detectamos uma ID exclusiva. Nesses sites, realizamos um rastreamento de acompanhamento que injeta um pedaço de dados de 200KB na página e verifique se observamos uma colisão correspondente no tamanho dos dados enviados ao terceiro.

Encontramos 482 sites nos quais o marcador exclusivo foi vazado para um ponto final da coleção de um dos serviços ou no qual observamos uma coleta de dados aumentando aproximadamente equivalente ao comprimento comprimido do pedaço injetado. Acreditamos que este valor é um limite inferior porque muitos dos serviços de gravação oferecem a capacidade de provar visitas de páginas , o que é agravado pela nossa metodologia em duas etapas.

[3] Uma empresa (Clicktale) foi excluída porque não conseguimos fazer os arranjos práticos para analisar a funcionalidade do script em escala.

[4] Os termos e condições da FullStory classificam explicitamente informações médicas ou de saúde, ou qualquer outra informação coberta pela HIPAA como dados confidenciais e pede aos clientes que “não forneçam dados sensíveis a FullStory”.

[5] A Lenovo.com é outro exemplo de um site que escorre dados do usuário em gravações de sessão.

O processo de pagamento da Lenovo desperdiça informações de envio e pagamento.

Na página final do procedimento de verificação da Lenovo, as informações de cobrança, envio e pagamento do usuário estão incluídas no texto da página. Esta informação é, portanto, incluída na fonte da página coletada pelo FullStory como parte do processo de gravação.

[6] Usamos os scripts padrão disponíveis para novas contas para 5 dos 6 provedores. Para UserReplay, usamos um script obtido de um site ao vivo e verificamos que as opções de configuração combinam as opções mais comuns encontradas na web.

Leia o original na íntegra: No boundaries: Exfiltration of personal data by session-replay scripts

Leia também: O Verdadeiro Escândalo por Trás da Cambridge Analítica

Leia também: O mais efetivo método de exfiltração de dado (como utilizam)

Leia também: Democracy For Sale: Cambridge Analytica & Big Tech’s History of Manipulating Elections