Logo WebFadoni

Bugs no motor JavaScript do Chrome podem levar a exploits poderosos. Este projeto visa detê-los

Proteções adicionais para uma parte importante do Chrome podem interromper os ataques mais rapidamente.

Bugs no motor JavaScript do Chrome podem levar a exploits poderosos. Este projeto visa detê-los

Um novo projeto espera reforçar a segurança do V8, uma parte do navegador Chrome que a maioria dos usuários não conhece, mas que os hackers vêem cada vez mais como um alvo interessante.

JavaScript faz a web girar e o Google teve que corrigir várias falhas de dia zero ou anteriormente desconhecidas no motor JavaScript V8 do Chrome este ano. Em abril, o Google admitiu que um bug de alta gravidade no V8 rastreado como CVE-2021-21224 estava sendo explorado em estado selvagem.

O Chrome tem mais de dois bilhões de usuários, então, quando os exploits de dia zero atingem o Chrome, é um grande negócio. V8, um projeto de código aberto do Google, é um poderoso mecanismo JavaScript para o Chrome que ajudou a promover a web e os aplicativos da web. O V8 também capacita o Node.js. de tempo de execução do lado do servidor

VEJA: Ransomware: Proibir as vítimas de pagar resgates pode reduzir os ataques, mas não vai impedi-los

Agora Samuel Groß, membro da equipe de pesquisadores de segurança do Google Project Zero, detalhou uma proposta de sandbox V8 para ajudar a proteger sua memória de bugs mais desagradáveis ​​no mecanismo usando máquinas virtuais e tecnologias de sandbox .

"Os bugs V8 normalmente permitem a construção de exploits excepcionalmente poderosos. Além disso, esses bugs provavelmente não serão mitigados por linguagens de memória segura ou futuros recursos de segurança assistida por hardware, como MTE ou CFI", explica Groß, referindo-se a tecnologias de segurança como o Controle da Microsoft - integridade do fluxo (CFI) e tecnologias de aplicação de fluxo de controle (CET) da Intel.

"Como resultado, o V8 é especialmente atraente para atacantes do mundo real."

Os comentários de Groß sugerem que mesmo a adoção de uma linguagem de memória segura como o Rust - que o Google adotou para o novo código do Android - não resolveria imediatamente os problemas de segurança enfrentados pelo V8, que é escrito em C ++ .

Ele também descreve os objetivos gerais do design, mas, sinalizando o tamanho do projeto, enfatiza que este projeto de sandbox está em sua infância e que existem alguns grandes obstáculos a serem superados. Mas o V8 é um projeto de código aberto liderado pelo Google e, dado que o V8 tem sido a fonte de vulnerabilidades de segurança no Chrome, há uma chance de que um membro da proposta da GPZ consiga atravessar a linha.

Os problemas afetam como o software do navegador interage com o hardware além do sistema operacional e visa evitar que falhas futuras no V8 corrompam a memória de um computador fora do heap do V8. Isso permitiria que um invasor executasse um código malicioso.

Uma consideração para as proteções de segurança adicionais para V8 é o impacto no desempenho do hardware. Groß estima que sua proposta causaria uma sobrecarga de cerca de "1% em geral nas cargas de trabalho do mundo real".

Groß explica o problema com o V8 que se origina de compiladores JIT que podem ser usados ​​para enganar uma máquina e fazê-la emitir código de máquina que corrompe a memória em tempo de execução.

"Muitas vulnerabilidades V8 exploradas por invasores do mundo real são efetivamente vulnerabilidades de 2ª ordem : a causa raiz é muitas vezes um problema lógico em um dos compiladores JIT, que pode então ser explorado para gerar código de máquina vulnerável (por exemplo, código que está faltando um tempo de execução verificação de segurança). O código gerado pode então ser explorado para causar corrupção de memória em tempo de execução. "

Ele também destaca as deficiências das tecnologias de segurança mais recentes, incluindo mitigações baseadas em hardware, que farão do V8 um alvo atraente nos próximos anos e, portanto, é por isso que o V8 pode precisar de uma abordagem sandbox. Esses incluem:

O invasor tem um grande controle sobre o primitivo de corrupção de memória e pode muitas vezes transformar esses bugs em explorações rápidas e altamente confiáveis Linguagens seguras de memória não protegerão contra esses problemas, pois são fundamentalmente bugs lógicos.

Devido aos canais laterais da CPU e à potência das vulnerabilidades V8, os próximos recursos de segurança de hardware, como marcação de memória, provavelmente serão ignoráveis ​​na maioria das vezes.

Apesar de minimizar a probabilidade da nova sandbox V8 realmente ser adotada, o pesquisador parece otimista sobre suas perspectivas de fazer o trabalho pretendido, exigindo que um atacante reúna duas vulnerabilidades separadas para executar o código de sua escolha.

"Com esta sandbox, os invasores são considerados capazes de corromper a memória dentro da gaiola de memória virtual arbitrariamente e de vários threads, e agora exigirão uma vulnerabilidade adicional para corromper a memória fora dela e, assim, executar código arbitrário", escreveu ele.