Uma nova técnica de rastreamento permite que sites monitorem a atividade de unidades de estado sólido (SSD) de visitantes. Esta metodologia, batizada de FROST (fingerprinting remote using OPFS-based SSD timing), possibilita a detecção de outros sites abertos e aplicativos em execução nos dispositivos dos usuários. A descoberta intensifica o debate sobre a privacidade digital.
A capacidade de medir interações sutis com SSDs diretamente do navegador representa uma expansão das formas pelas quais a navegação online pode ser observada. Essa prática se soma a uma série de técnicas engenhosas usadas ao longo das décadas para rastrear o histórico de navegação dos visitantes, impressões digitais de dispositivos e interações em tempo real, como teclas digitadas e movimentos do mouse. Empresas como Meta e Yandex, por exemplo, foram recentemente apontadas por participarem de práticas similares.
FROST: A técnica de monitoramento via SSD
A técnica FROST explora um canal lateral, uma forma de vazamento de dados que surge de manifestações físicas, incluindo caches de dados ou o tempo de conclusão de tarefas. Ao medir essas manifestações, atacantes podem inferir dados confidenciais ou, neste caso, identificar a atividade do usuário. O método não exige nenhuma interação do visitante, apenas que o site que hospeda o ataque seja acessado.
Este ataque utiliza um canal lateral de contenção, que avalia a interação de múltiplos processos que compartilham ou competem por um mesmo recurso. Pesquisadores conseguiram determinar quais sites estavam abertos em outras abas, inclusive em navegadores distintos, e quais aplicativos estavam em uso no dispositivo do visitante. Isso foi possível medindo o tempo de certas operações de entrada/saída (E/S) do SSD que o usuário estava utilizando.
Como o monitoramento ocorre no navegador
A execução do FROST ocorre exclusivamente no navegador. O JavaScript interage com o OPFS (origin private file system), um espaço de armazenamento alocado e reservado para um site específico, onde o código necessário para uma tarefa é executado. Sites podem criar um OPFS sem a necessidade de interação direta do visitante, facilitando o início do monitoramento.
Mesmo com cada sistema de arquivos isolado em um sandbox, separado de outros sites e do sistema operacional do dispositivo, o JavaScript consegue medir as interações de entrada/saída. Posteriormente, essas interações são processadas por uma rede neural convolucional (CNN) pré-treinada. Este sistema de aprendizado profundo analisa texto, áudio e imagens, permitindo ao invasor deduzir quais aplicativos e sites estão ativos no dispositivo do usuário. A contenção do SSD, causada pela atividade do usuário, gera diferenças de latência mensuráveis.
Limitações e desafios da técnica FROST
A técnica FROST possui algumas limitações importantes que podem dificultar sua aplicação em larga escala. Primeiro, o arquivo OPFS utilizado para as leituras aleatórias precisa ser extremamente grande, geralmente um gigabyte ou mais. Esse requisito eleva a probabilidade de detecção por parte dos usuários e pode demandar recursos consideráveis.
Outra restrição é que o arquivo OPFS deve estar armazenado no mesmo SSD que o visitante está utilizando. Para rastrear sites abertos, isso geralmente não é um problema, pois o arquivo OPFS é armazenado no local padrão do navegador. No entanto, se os aplicativos estiverem instalados em um SSD separado, eles não seriam detectáveis pelo FROST.
- Medidas preventivas recomendadas:
* Fechar abas do navegador assim que não forem mais necessárias.
* Monitorar a criação e o tamanho de arquivos OPFS por sites desconhecidos.
* Fabricantes de navegadores podem limitar o tamanho máximo permitido para esses arquivos, reduzindo a eficácia do ataque.
Não existem indícios de que ataques FROST tenham sido realizados na prática. A pesquisa busca conscientizar sobre a vulnerabilidade.
Pesquisas e testes de desempenho da técnica
Os pesquisadores realizaram um ataque FROST completo em um Mac equipado com processador M.2. Em testes no Linux, eles demonstraram o funcionamento do mecanismo subjacente, que envolve a medição da latência de acesso ao SSD a partir do JavaScript. Embora o ataque completo não tenha sido executado nesta plataforma, a funcionalidade primitiva foi comprovada.
Hannes Weissteiner, um dos coautores do artigo, observou que o desempenho da função primitiva é semelhante entre macOS e Linux. Ele espera um desempenho similar para a classificação completa nesses sistemas. Weissteiner também afirmou que, em princípio, seria possível treinar um modelo em qualquer atividade do sistema que gere acessos ao SSD de forma confiável. Os testes não foram estendidos para o sistema operacional Windows.
