Simple Science

Ciência de ponta explicada de forma simples

# Informática # Criptografia e segurança

Controlando o Acesso a Dados Online: Uma Nova Maneira

Um estudo sobre como melhorar a privacidade dos dados limitando o acesso a scripts.

Gayatri Priyadarsini Kancherla, Dishank Goel, Abhishek Bichhawat

― 8 min ler


Domando o Acesso de Domando o Acesso de Terceiros usuários contra scripts indesejados. Novos métodos pra proteger os dados dos
Índice

Aplicativos web geralmente usam vários scripts pra melhorar sua experiência online. Esses scripts, no entanto, podem acessar seus dados privados armazenados no navegador, como Cookies e armazenamento local, sem qualquer limite. Embora existam algumas regras pra prevenir isso, como políticas de segurança de conteúdo, elas não funcionam muito bem quando sites precisam permitir que certos scripts confiáveis acessem os dados. Então, se um script malicioso entra na jogada, pode bagunçar suas informações privadas bem fácil.

Esse estudo foca em criar um jeito de controlar quem pode acessar o quê. Analisamos vários sites populares e descobrimos que uma porcentagem gigante de todos os acessos a cookies e armazenamento local é feita por Scripts de Terceiros. Nosso método foi projetado pra dar aos sites um controle melhor sobre quem pode dar uma olhada ou mudar os dados que eles armazenam. Adicionamos rótulos aos objetos de armazenamento que definem quais domínios podem acessá-los, e testamos isso no navegador Firefox. Os resultados mostraram que nosso sistema fez um bom trabalho em manter scripts indesejados fora, embora alguns sites tiveram que ajustar suas configurações pra funcionar direitinho.

Entendendo o Armazenamento Persistente

O armazenamento persistente é uma forma de os sites acompanharem os usuários e suas sessões. Isso significa que você não precisa fazer login toda hora quando visita um site. Por exemplo, se você tá fazendo compras online, seu carrinho e detalhes de pagamento podem ser armazenados usando cookies pra você navegar por diferentes páginas sem perder os itens que escolheu. Esses métodos de armazenamento são super úteis, mas podem guardar informações sensíveis, então mantê-los seguros é essencial.

No entanto, scripts de terceiros, que muitas vezes incluem anúncios ou análise, têm acesso livre a todos esses dados. Se algum desses scripts for malicioso ou comprometido, ele pode facilmente recuperar, modificar ou deletar suas informações importantes, como cookies de autenticação, levando a vazamentos de privacidade ou tomada de conta.

Políticas de Segurança dos Navegadores

Pra manter as coisas seguras, os navegadores usam regras como a política de mesma origem (SOP) e a política de segurança de conteúdo (CSP). A SOP diz que um site só pode acessar seus próprios recursos e não os de outros. Mas se um script de terceiros estiver na sua página, a SOP o trata como se fosse parte do mesmo site, permitindo que ele pegue as delícias que estão no pote de cookies.

A CSP é um pouco mais refinada, permitindo que os sites declarem de quais domínios seus scripts podem vir. No entanto, ainda não controla como esses scripts podem acessar dados na página host. Isso significa que scripts de terceiros podem causar problemas acessando cookies e outros dados que não deveriam.

Cookies têm alguns controles, como a flag HttpOnly, que restringe o JavaScript de acessá-los diretamente. Mas às vezes isso não é prático porque alguns cookies precisam ser lidos por scripts pra funcionar corretamente, como aqueles que gerenciam consentimento de privacidade. As flags Secure e SameSite ajudam a enviar cookies com segurança, mas não impedem scripts de acessá-los.

Quando se trata de objetos como armazenamento local ou IndexedDB, eles não têm nenhuma proteção como os cookies. Qualquer script injetado na página pode acessá-los, tornando-os vulneráveis a abusos.

O Problema do Acesso de Terceiros

Nossa investigação envolveu checar quanto esses objetos de armazenamento são acessados por scripts de terceiros em sites populares. Acontece que uma quantidade absurda-quase 90%-desses acessos é feita por scripts de terceiros. Isso significa que se você visitar um site com anúncios embutidos ou scripts de rastreamento, há uma grande chance de que esses scripts estejam olhando pros seus cookies ou dados de armazenamento local.

Curiosamente, encontramos que scripts de terceiros frequentemente mexem com cookies configurados pelo site principal. De fato, eles leem ou mudam muitos dos cookies criados pelo host. Essa ida e volta constante pode levar a sérios riscos de segurança, especialmente quando se trata de Consentimento do Usuário e gerenciamento de dados pessoais.

Uma Solução Melhor: Controle de Acesso Granular

Pra lidar com esse problema, propomos uma abordagem de “menor privilégio”, que basicamente significa que scripts só devem ter acesso ao armazenamento que realmente precisam. Pra fazer isso, introduzimos um sistema de rótulos anexados aos objetos de armazenamento. Esses rótulos dizem quais domínios podem ler ou escrever nos dados.

Então, se um cookie deve ser acessado só pelo site que o criou, ele terá um rótulo que diz isso. Assim, se um script mal-intencionado tentar acessá-lo, o navegador vai bloqueá-los se não estiver na lista aprovada.

Nosso método foi projetado pra ser implementado no navegador Firefox. A implementação envolve checar esses rótulos sempre que um script tenta ler ou escrever em um objeto de armazenamento.

Implementação e Testes

Fizemos algumas experiências com o Firefox pra ver se nossa abordagem realmente funcionaria. Depois de adicionar nossos rótulos de rastreamento aos cookies e objetos de armazenamento, rodamos testes em sites populares. Os resultados foram promissores.

No entanto, não foi só felicidade. Observamos que algumas funcionalidades em sites quebraram porque scripts de terceiros não conseguiam mais acessar certos cookies. Isso acontece principalmente porque muitos sites dependem de scripts de terceiros pra gerenciar coisas como consentimento do usuário ou rastreamento de anúncios. Quando aplicamos nossa nova política, algumas dessas funções não funcionaram como esperado.

Isso mostrou a necessidade de os desenvolvedores de sites serem mais proativos. Se eles querem que seus scripts de terceiros funcionem sem problemas, precisam definir os rótulos corretos pra os objetos de armazenamento em seus sites.

Preocupações com a Privacidade e Rastreamento de Terceiros

Scripts de terceiros são uma faca de dois gumes. Eles oferecem recursos extras, mas também podem ameaçar a sua privacidade. Eles frequentemente rastreiam o comportamento do usuário em diferentes sites usando cookies, o que pode levar a perfis extensivos sem consentimento do usuário.

Atualizações recentes dos navegadores introduziram medidas pra limitar o rastreamento de terceiros. A ideia é que se dois sites diferentes solicitam o mesmo conteúdo de um terceiro site, esse terceiro site deve manter os cookies separados pra cada site. Isso impede que eles rastreiem os usuários entre diferentes domínios sem problemas.

No entanto, nossa abordagem é diferente. Em vez de apenas bloquear o acesso, queremos dar aos desenvolvedores de sites as ferramentas que eles precisam pra controlar o acesso aos seus dados.

Consentimento do Usuário e Gerenciamento de Cookies

Gerenciamento de consentimento é uma área tricky. Sites precisam garantir que os usuários possam gerenciar suas preferências de privacidade com facilidade. Pra funcionar direitinho, scripts de terceiros frequentemente precisam de acesso de leitura a cookies específicos que gerenciam o consentimento. Se esses scripts não conseguirem acessar o cookie que diz “Sim, estou okay com isso”, eles podem não funcionar corretamente.

Encontramos que muitos cookies relacionados ao consentimento estavam sendo acessados por scripts de terceiros. Isso representa um risco já que scripts maliciosos poderiam alterar esses cookies pra contornar o consentimento do usuário, levando a violações de privacidade.

Direções Futuras

Seguindo em frente, planejamos melhorar esse projeto. Um dos nossos objetivos é integrar técnicas de rastreamento melhores pra melhorar o fluxo de dados e garantir que apenas scripts autorizados acessem o armazenamento relevante.

Acreditamos que nossa abordagem pode ajudar a equilibrar a necessidade de scripts de terceiros com a necessidade de privacidade do usuário. Dando aos desenvolvedores de sites as ferramentas pra gerenciar o acesso aos dados, podemos reduzir significativamente o risco de acesso não autorizado e uso indevido de informações sensíveis.

Conclusão

Num mundo digital onde a conveniência muitas vezes vem à custa da privacidade, nosso trabalho visa restaurar um pouco do controle aos usuários e desenvolvedores de sites. Limitando o acesso que scripts de terceiros têm aos dados armazenados, podemos proporcionar uma experiência online mais segura.

É essencial continuar inovando e refinando como os navegadores gerenciam o acesso aos dados. Com as abordagens certas, podemos garantir que sua experiência online permaneça segura sem sacrificar a funcionalidade.

Embora saibamos que scripts de terceiros podem ser uma chatice necessária, é vital dar a eles apenas o acesso que precisam. Com um pouco de humor e muita cautela, esperamos tornar a web um lugar mais seguro pra todo mundo!

Fonte original

Título: Least Privilege Access for Persistent Storage Mechanisms in Web Browsers

Resumo: Web applications often include third-party content and scripts to personalize a user's online experience. These scripts have unrestricted access to a user's private data stored in the browser's persistent storage like cookies, localstorage and IndexedDB, associated with the host page. Various mechanisms have been implemented to restrict access to these storage objects, e.g., content security policy, the HttpOnly attribute with cookies, etc. However, the existing mechanisms provide an all-or-none access and do not work in scenarios where web applications need to allow controlled access to cookies and localstorage objects by third-party scripts. If some of these scripts behave maliciously, they can easily access and modify private user information that are stored in the browser objects. The goal of our work is to design a mechanism to enforce fine-grained control of persistent storage objects. We perform an empirical study of persistent storage access by third-party scripts on Tranco's top 10,000 websites and find that 89.84% of all cookie accesses, 90.98% of all localstorage accesses and 72.49% of IndexedDB accesses are done by third-party scripts. Our approach enforces least privilege access for third-party scripts on these objects to ensure their security by attaching labels to the storage objects that specify which domains are allowed to read from and write to these objects. We implement our approach on the Firefox browser and show that it effectively blocks scripts from other domains, which are not allowed access based on these labels, from accessing the storage objects. We show that our enforcement results in some functionality breakage in websites with the default settings, which can be fixed by correctly labeling the storage objects used by the third-party scripts.

Autores: Gayatri Priyadarsini Kancherla, Dishank Goel, Abhishek Bichhawat

Última atualização: 2024-11-22 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2411.15416

Fonte PDF: https://arxiv.org/pdf/2411.15416

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes