Uma equipe de acadêmicos de universidades na Austrália, Israel, e os Estados Unidos criaram um novo ataque de canal lateral que visa o recurso de isolamento de sites do Google Chrome. O ataque, chamado Spook.js, é um novo exploit de canal lateral de execução transitória visando navegadores baseados em Chrome e Chromium, mostrando que as tentativas do Google de mitigar Spectre não foram totalmente bem-sucedidas.
Explicação do ataque Spook.js
"Mais especificamente, mostramos que uma página da web controlada por um invasor pode saber em quais outras páginas dos mesmos sites um usuário está navegando no momento, recuperar informações confidenciais dessas páginas, e até mesmo recuperar credenciais de login (v.g., usuário e senha) quando eles são preenchidos automaticamente. Demonstramos ainda que o invasor pode recuperar dados de extensões do Chrome (como gerentes de credenciais) se um usuário instalar uma extensão maliciosa,”A equipe disse em seu relatório.
A descoberta está relacionada ao Explorações de Meltdown e Spectre, as falhas de design da CPU que permitiam que o código malicioso em execução em um processador recuperasse dados de outros aplicativos ou mesmo de áreas seguras da CPU. As vulnerabilidades de segurança afetam gerações inteiras de computadores e dispositivos de todos os tipos que usam chips específicos (um processador Intel ou um dispositivo Apple com o chip M1). As falhas podem permitir que os invasores quebrem o isolamento fundamental entre os aplicativos do usuário e o sistema operacional. As informações que estão sendo processadas pelos computadores podem então vazar para os invasores.
Isolamento de local: Insuficiente
Para mitigar as falhas, O Google adicionou o chamado isolamento de site, ativado em todas as versões desde o Chrome 67. Antes desses eventos, o recurso estava disponível como uma função opcional que os usuários precisavam ativar manualmente.
A adição deste mecanismo mudou a arquitetura subjacente do Google Chrome para limitar a forma como os diferentes sites são processados. Por design, o navegador apresentava uma operação multi-processo que definia cada guia para um processo renderizado separado. As diferentes guias podem até mesmo alternar processos ao navegar para um novo site em certas situações. Contudo, os ataques de prova de conceito de vulnerabilidade de Spectre revelaram um modelo de ataque hipotético. Permitiu que os potenciais agentes de ameaças construíssem páginas maliciosas, revelando dados confidenciais.
Em outras palavras, apesar dos ataques foram demonstrados apenas teoricamente, eles mostraram a fraqueza do design das CPUs modernas em termos de segurança.
Como funciona o Spook.js?
disse brevemente, a equipe de acadêmicos que surgiu com o conceito de ataque Spook.js percebeu que o mecanismo de isolamento de site atual não separa subdomínios, que é outra falha de design.
“Spook.js explora essa lacuna no design de isolamento de site, que aparentemente o Google sabe, mas sobre o qual também não pode fazer nada sobre, já que separar o código JavaScript no nível do subdomínio também prejudicaria 13.4% de todos os sites da internet,”TheRecord apontou.
Basicamente, Spook.js é uma ferramenta JavaScript que pode causar ataques de canal lateral do tipo Espectro contra navegadores baseados em Crome e Chromium, rodando em Intel, AMD, e processadores Apple M1. Como já mencionado, Spook.js só busca isso nos mesmos subdomínios do site sob ataque. além disso, a ferramenta só funciona se o agente da ameaça plantar com sucesso seu código específico no site de destino. Mesmo que isso possa soar como um obstáculo, realmente não é, pois muitos sites permitem que os usuários criem subdomínios e executem seu próprio código JavaScript, incluindo Tumblr, GitHib, BitBucket, entre outros.
Também existe a possibilidade de sites serem hackeados, mas a equipe de pesquisa não foi tão longe pelas normas éticas de pesquisa. Não obstante, este cenário também deve ser levado em consideração, eles disseram.
Se você estiver interessado, você também pode dar uma olhada no prova de conceito disponível no GitHub.