Spook.js explora vulnerabilidades de Spectre no Chrome

Spook.js explora vulnerabilidades de Spectre no Chrome

Um grupo de pesquisadores de universidades americanas, australianas e israelenses anunciou que descreveu uma nova técnica de ataque que permite explorar vulnerabilidades da classe Spectre em navegadores com tecnologia Chromium.

O ataque, com o codinome Spook.js, permite a execução de código JavaScript contornando o mecanismo de isolamento do site e lendo o conteúdo de todo o espaço de endereçamento do processo atual, ou seja, acessando os dados das páginas que estão sendo executadas. Em outras guias, mas eles são processados ??no mesmo processo.

Como o Chrome lança sites diferentes em processos diferentes, os ataques práticos são limitados a serviços que permitem que diferentes usuários hospedem suas páginas. O método de ataque do Spook.js torna possível a partir de uma página na qual um invasor pode incorporar seu código JavaScript , determinar a presença de outras páginas abertas pelo usuário do mesmo site e extrair informações confidenciais delas, por exemplo, credenciais ou dados bancário substituído pelo sistema de preenchimento automático em formulários da web.

Outra aplicação do método é um ataque a add-ons do navegador, que permite, quando um add-on controlado por invasor estiver instalado, extrair dados de outros add-ons.

Spook.js explora vulnerabilidades de Spectre no Chrome e derivados do Chromium

Spook.js Demo 1 - Attacking Credential Managers

Spook.js é aplicável a qualquer navegador baseado no mecanismo Chromium, incluindo Google Chrome, Microsoft Edge e Brave. Os pesquisadores também acreditam que o método pode ser adaptado para funcionar com o Firefox, mas como o motor do Firefox é muito diferente do Chrome, o trabalho de criação de tal exploit é deixado para o futuro.

Para se proteger contra ataques relacionados à execução especulativa de instruções por meio do navegador, a segmentação do espaço de endereço é implementada no Chrome: o isolamento da sandbox permite que o JavaScript funcione apenas com ponteiros de 32 bits e compartilha a memória do controlador em pilhas de 4 GB não sobrepostas.

Spook.js explora vulnerabilidades de Spectre no Chrome

Para organizar o acesso a todo o espaço de endereçamento do processo e evitar a limitação de 32 bits, os pesquisadores utilizaram a técnica de confusão de tipos. Isso permite ao motor JavaScript processar um objeto com o tipo errado, possibilitando a formação de um objeto com o tipo errado código baseado em uma combinação de dois valores de 32 bits.

A essência do ataque é que, ao processar um objeto malicioso especialmente criado no mecanismo JavaScript, são criadas condições que levam à execução especulativa de instruções que acessam o array. O objeto é selecionado de forma que os campos controlados pelos atacantes sejam colocados na área onde o ponteiro de 64 bits é usado.

Como o tipo de objeto malicioso não corresponde ao tipo de array que está sendo processado, em condições normais essas ações são bloqueadas no Chrome pelo mecanismo de desotimização do código usado para acessar os arrays. Para resolver esse problema, o código de ataque Type Confusion é colocado em um bloco condicional “if”, que não dispara em condições normais, mas é executado em modo especulativo, se o processador predizer incorretamente mais ramificações.

Como tudo funciona

O processador acessa especulativamente o ponteiro de 64 bits gerado e reverte o estado após determinar a previsão com falha, mas os rastros de execução são definidos no cache compartilhado e podem ser restaurados usando métodos para determinar o conteúdo do cache por meio de terceiros. canais de terceiros, analisando a mudança no tempo de acesso aos dados armazenados em cache e não armazenados em cache.

Para analisar o conteúdo do cache nas condições de precisão insuficiente do temporizador disponível em JavaScript, é utilizado um método proposto pelo Google que engana a estratégia de despejo de dados do cache Tree-PLRU usada nos processadores e permite, ao aumentar o número de ciclos, aumentar significativamente a diferença de tempo na presença e ausência de um valor no cache.

Os pesquisadores lançaram um exploit de protótipo que funciona no Chrome 89 em sistemas Intel i7-6700K e i7-7600U. O exploit foi criado usando protótipos de código JavaScript previamente publicados pelo Google para realizar ataques Spectre.

Por fim, os pesquisadores mencionam que conseguiram preparar exploits funcionais para sistemas baseados nos processadores Intel e Apple M1 , que têm a oportunidade de organizar a leitura da memória a uma velocidade de 500 bytes por segundo e uma precisão de 96%. O método deveria ser aplicável aos processadores AMD, mas não foi possível preparar um exploit totalmente funcional.

Fonte: https://www.spookjs.com

Via Desde Linux

Acesse a versão completa
Sair da versão mobile