Falha ‘0.0.0.0 Day’ coloca navegadores Chrome, Firefox e Mozilla em risco de RCE

Os invasores podem usar um endereço IP aparentemente inócuo para explorar APIs de host local e realizar uma série de atividades maliciosas, incluindo acesso não autorizado a dados do usuário e distribuição de malware.

Os invasores podem usar uma falha que explora o endereço IP 0.0.0.0 para executar remotamente códigos em vários navegadores da Web — Chrome, Safari, Firefox e outros — colocando os usuários em risco de roubo de dados, malware e outras atividades maliciosas.

Pesquisadores da empresa de segurança de código aberto Oligo Security descobriram uma maneira de contornar a segurança do navegador e interagir com serviços executados na rede local de uma organização de fora da rede, que eles estão chamando de “0.0.0.0 Day”, por causa do endereço da Web que ele explora.

A vulnerabilidade existe devido à “implementação inconsistente de mecanismos de segurança em diferentes navegadores, juntamente com a falta de padronização no setor de navegadores”, revelou Avi Lumesky, pesquisador de segurança da Oligo AI, em uma postagem de blog publicada esta semana.

Os invasores podem usar a falha para explorar interfaces de programação de aplicativos (APIs) do host local do navegador, realizando assim uma série de atividades maliciosas.

“Como resultado, o endereço IP aparentemente inócuo, 0.0.0.0, pode se tornar uma ferramenta poderosa para invasores explorarem serviços locais, incluindo aqueles usados ​​para desenvolvimento, sistemas operacionais e até mesmo redes internas”, escreveu Lumesky.

Quebrando a falha

A falha está na capacidade, por design, dos navegadores para serviços de enviar uma solicitação para quase qualquer servidor HTTP usando JavaScript; a principal função de um navegador é se concentrar em entregar a resposta correta, seja exibindo uma resposta válida a uma solicitação ou um erro.

Embora os navegadores geralmente devam impedir que solicitações erradas ou maliciosas cheguem por meio de suas respostas, tem havido uma falta de segurança simplificada no tratamento de solicitações entre navegadores desde seu início.

“Por muito tempo, não ficou claro como os navegadores deveriam se comportar quando faziam solicitações para redes locais ou internas a partir de contextos menos privados”, explicou Lumesky na postagem.

Embora a maioria dos navegadores tenha se apoiado no CORS, ou Cross-Origin Resource Sharing — um padrão que define uma maneira para aplicativos Web clientes carregados em um domínio interagirem com recursos em um domínio diferente — “seu desempenho depende do conteúdo da resposta, então as solicitações ainda são feitas e podem ser enviadas”, observou Lumesky.

“Isso simplesmente não é bom o suficiente”, ele escreveu. “A história provou que uma única solicitação HTTP pode atacar um roteador doméstico — e se isso é tudo o que é preciso, cada usuário precisa ser capaz de impedir que essa solicitação aconteça.”

Bypass PNA

A introdução do Private Network Access (PNA) do Chrome — que vai além do CORS — deve, em teoria, proteger sites do bug do dia 0.0.0.0. O PNA propõe distinguir entre redes públicas, privadas e locais, garantindo que “páginas carregadas em um contexto menos seguro não consigam se comunicar com contextos mais seguros”, escreveu Lumesky.

No entanto, os pesquisadores da Oligo descobriram que as solicitações de sites enviadas para 0.0.0.0, que deveriam ser bloqueadas sob PNA, eram na verdade recebidas e processadas por servidores locais. “Isso significa que sites públicos podem acessar qualquer porta aberta no seu host sem a capacidade de ver a resposta”, escreveu Lumesky.

Para provar seu ponto, os invasores investigaram como o ShadowRay, uma campanha de ataque recente que seus pesquisadores descobriram ter como alvo cargas de trabalho de IA, poderia executar seu ataque a partir do navegador usando 0.0.0.0 como vetor de ataque.

O ShadowRay habilitou a execução de código arbitrário quando um servidor privado foi exposto involuntariamente à Internet e não foi descoberto por quase um ano. Para provar seu conceito, os pesquisadores do Oligo executaram um cluster Ray local no localhost e, em seguida, iniciaram um soquete que está escutando novas conexões para abrir um shell reverso.

“Então, a vítima clica no link do e-mail, que executa o exploit”, explicou Lumesky. “O exploit abre um shell reverso para o invasor na máquina do visitante.”

Os pesquisadores provaram o conceito dentro do Chromium, Safari e Firefox para executar o ShadowRay do navegador em “um dos inúmeros ataques de execução remota de código habilitados por essa abordagem”, observou Lumesky. Eles também provaram o ataque via servidores públicos Selenium Grid e PyTorch TorchServe via respectivas campanhas de ataque previamente identificadas SeleniumGreed e ShellTorch .

Por fim, os pesquisadores demonstraram como, ao usar 0.0.0.0 junto com o modo “no-cors”, os invasores “podem usar domínios públicos para atacar serviços executados no localhost e até mesmo obter execução de código arbitrário, tudo usando uma única solicitação HTTP”, explicou Lumeksy.

Como os defensores podem mitigar ataques

A Oligo divulgou as descobertas aos proprietários de navegadores relevantes — incluindo Google, Apple e Mozilla — que responderam fazendo correções em seus navegadores para bloquear 0.0.0.0 como IP de destino, de acordo com a Oligo.

Enquanto isso, enquanto as empresas responsáveis ​​trabalham para otimizar os padrões de segurança em todos os navegadores oferecidos, há outras medidas técnicas que os administradores de rede podem usar para impedir ataques usando o vetor, disse Lumesky.

Elas incluem a implementação de cabeçalhos PNA, a verificação do cabeçalho HOST da solicitação de rede para proteção contra ataques de revinculação de DNS ao localhost ou 127.0.0.1 e, em geral, a desconfiança em redes localhost apenas porque são “locais”. “Adicione uma camada mínima de autorização, mesmo quando estiver executando no localhost”, ele aconselhou.

Os administradores de rede também devem usar HTTPS sobre HTTP sempre que possível e implementar tokens CSRF em seus aplicativos, mesmo que sejam locais.