Um ataque recém-descoberto, demonstrado em processadores modernos, pode ser transformado em arma para superar as proteções de isolamento de site inseridas nos navegadores Google Chrome e Chromium e vazar dados confidenciais em um ataque de execução especulativa no estilo Spectre.
Chamada de “Spook.js” por acadêmicos da Universidade de Michigan, da Universidade de Adelaide, do Instituto de Tecnologia da Geórgia e da Universidade de Tel Aviv, a técnica é uma linha de ataque baseada em JavaScript que visa especificamente contornar as barreiras que o Google colocou depois de as vulnerabilidades Specter e Meltdown virem à tona em janeiro de 2018, evitando potencialmente o vazamento.
“Uma página da web controlada por um invasor pode saber 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 (por exemplo, nome de usuário e senha) quando são preenchidas automaticamente”, disseram os pesquisadores, acrescentando “o invasor pode recuperar dados de extensões do Chrome (como gerenciadores de credenciais) se um usuário instalar uma extensão maliciosa.”
Como consequência, quaisquer dados armazenados na memória de um site que está sendo processado ou de uma extensão do Chrome podem ser extraídos, incluindo informações de identificação pessoal exibidas no site e nomes de usuário, senhas e números de cartão de crédito preenchidos automaticamente.
Spectre, designado como CVE-2017-5753 e CVE-2017-5715, refere-se a uma classe de vulnerabilidades de hardware em CPUs que quebra o isolamento entre diferentes aplicativos e permite que invasores enganem um programa para acessar locais arbitrários associados ao seu espaço de memória, abusando para ler o conteúdo da memória acessada e, assim, potencialmente obter dados confidenciais.
“Esses ataques usam os recursos de execução especulativa da maioria das CPUs para acessar partes da memória que deveriam estar fora dos limites de um trecho de código e, em seguida, usam ataques de temporização para descobrir os valores armazenados nessa memória”, informou o Google. “Efetivamente, isso significa que o código não confiável pode ser capaz de ler qualquer memória no espaço de endereço de seu processo.”
Site Isolation, lançado em julho de 2018, é uma contramedida de software do Google projetada para tornar os ataques mais difíceis de explora. Com o recurso habilitado, as versões 67 e superiores do navegador Chrome carregam cada site em seu próprio processo e, como resultado, impedem ataques entre processos e, portanto, entre sites.
No entanto, os pesquisadores do último estudo encontraram cenários em que as safeguards de isolamento do site não separam dois sites, minando efetivamente as proteções Spectre. Spook.js explora essa peculiaridade de design para resultar no vazamento de informações de navegadores baseados em Chrome e Chromium executados em processadores Intel, AMD e Apple M1.
“Assim, o Chrome separará ‘example.com’ e ‘example.net’ devido a [domínios de nível superior] diferentes, e também ‘example.com’ e ‘atacante.com'”, explicaram os pesquisadores. “No entanto, ‘attacker.example.com’ e ‘corporate.example.com’ têm permissão para compartilhar o mesmo processo [e] isso permite que as páginas hospedadas em ‘attacker.example.com’ extraiam potencialmente informações das páginas em ‘corporativa. example.com. ‘”
“O Spook.js mostra que essas contra-medidas são insuficientes para proteger os usuários de ataques de execução especulativa baseados em navegador”, acrescentaram os pesquisadores. Dito isso, como ocorre com outras variantes do Spectre, explorar o Spook.js é difícil, exigindo especialização por parte do invasor.
Em resposta às descobertas, a equipe de segurança do Chrome, em julho de 2021, estendeu o isolamento de sites para garantir que “as extensões não possam mais compartilhar processos entre si”, além de aplicá-los a “sites onde os usuários fazem login por meio de fornecedores terceirizados . ” A nova configuração, chamada Strict Extension Isolation, está ativada a partir das versões 92 e superiores do Chrome.
“Os desenvolvedores da Web podem separar imediatamente o código JavaScript não confiável fornecido pelo usuário de todos os outros conteúdos de seu site, hospedando todo o código JavaScript fornecido pelo usuário em um domínio que tem um eTLD + 1 diferente”, disseram os pesquisadores. “Dessa forma, o Strict Site Isolation não consolidará o código fornecido pelo invasor com dados potencialmente confidenciais no mesmo processo, colocando os dados fora de alcance até mesmo para o Spook.js, pois não pode cruzar os limites do processo.”
REFERÊNCIAS:
https://thehackernews.com/2021/09/new-spookjs-attack-bypasses-google.html
https://security.googleblog.com/2021/07/protecting-more-with-site-isolation.html
https://security.googleblog.com/2018/07/mitigating-spectre-with-site-isolation.html