Tech

Google Chrome adiciona sandbox V8

Caixa de areia do Chrome V8

O Google anunciou suporte para o que é chamado de Caixa de areia V8 no navegador Chrome em um esforço para resolver problemas de corrupção de memória.

A sandbox, de acordo com o líder técnico da V8 Safety, Samuel Groß, visa evitar que “a corrupção da memória no V8 se espalhe dentro do processo host”.

O gigante da pesquisa descreveu o V8 Sandbox como um sandbox leve e em processo para o mecanismo JavaScript e WebAssembly, projetado para mitigar vulnerabilidades comuns do V8.

A ideia é limitar o impacto das vulnerabilidades da V8 restringindo o código executado pela V8 a um subconjunto do espaço de endereço digital do processo (“a sandbox”) e isolando-o do resto do processo.

Cíber segurança

As deficiências que afetam o V8 foram responsáveis ​​por uma parte significativa das vulnerabilidades de dia zero que o Google corrigiu entre 2021 e 2023, com até 16 falhas de segurança descobertas durante o período.

“O sandbox pressupõe que um invasor pode modificar arbitrária e simultaneamente qualquer memória dentro do espaço de endereço do sandbox, já que esse primitivo pode ser construído a partir de vulnerabilidades típicas do V8”, disse a equipe do Chromium.

“Além disso, presume-se que um invasor será capaz de ler a memória fora da sandbox, por exemplo, através de canais laterais de {hardware}. A sandbox visa então proteger o resto do processo de tal invasor. Como tal, qualquer corrupção de memória fora do espaço de endereço da sandbox é considerada uma violação da sandbox.”

Groß enfatizou os desafios de lidar com as vulnerabilidades do V8 mudando para uma linguagem segura de memória como Rust ou abordagens de segurança de memória de {hardware}, como marcação de memória, dados os “problemas lógicos sutis” que podem ser explorados para corromper a memória, ao contrário de bugs clássicos de segurança de memória como acessos use-after-frees, acessos fora dos limites e outros.

Caixa de areia do Chrome V8

“Quase todas as vulnerabilidades encontradas e exploradas no V8 hoje têm uma coisa em comum: a eventual corrupção da memória acontece necessariamente dentro do heap V8 porque o compilador e o tempo de execução (quase) operam exclusivamente em instâncias V8 HeapObject”, disse Groß.

Dado que esses problemas não podem ser protegidos pelas mesmas técnicas usadas para vulnerabilidades típicas de corrupção de memória, o V8 Sandbox foi projetado para isolar a memória heap do V8 de modo que, caso ocorra qualquer corrupção de memória, ele não possa escapar dos limites de segurança para outras partes do processo. memória.

Isso é conseguido substituindo todos os tipos de dados que podem acessar a memória fora da área restrita por alternativas “compatíveis com a área restrita”, evitando assim efetivamente que um invasor acesse outra memória. A sandbox pode ser habilitada definindo “v8_enable_sandbox” como true nos argumentos gn.

Os resultados de benchmark do Speedometer e JetStream mostram que o recurso de segurança adiciona uma sobrecarga de cerca de 1% em cargas de trabalho típicas, permitindo que seja habilitado por padrão a partir da versão 123 do Chrome, abrangendo Android, ChromeOS, Linux, macOS e Home windows.

“O V8 Sandbox requer um sistema de 64 bits, pois precisa reservar uma grande quantidade de espaço de endereço digital, atualmente um terabyte”, disse Groß.

Cíber segurança

“O sandbox é motivado pelo fato de que as atuais tecnologias de segurança de memória são amplamente inaplicáveis ​​à otimização de mecanismos JavaScript. Embora essas tecnologias não consigam evitar a corrupção de memória no próprio V8, elas podem de fato proteger a superfície de ataque do V8 Sandbox. O sandbox é, portanto, um recurso necessário passo em direção à segurança da memória.”

O desenvolvimento ocorre no momento em que o Google destaca o papel do Kernel Handle Sanitizer (KASan) na detecção de bugs de memória no código nativo e ajuda a fortalecer a segurança do firmware do Android, acrescentando que usou a ferramenta baseada em compilador para descobrir mais de 40 bugs.

“Usar compilações habilitadas para KASan durante testes e/ou fuzzing pode ajudar a detectar vulnerabilidades de corrupção de memória e problemas de estabilidade antes que cheguem aos dispositivos do usuário”, disseram Eugene Rodionov e Ivan Lozano, da equipe Android.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button