WebSpec, uma estrutura formal para análise de segurança do navegador, revela novo ataque de cookies

Views: 277
0 0
Read Time:3 Minute, 48 Second

Pessoas da Technische Universität Wien, na Áustria, criaram uma estrutura formal de segurança chamada WebSpec para analisar a segurança do navegador.

E eles o usaram para identificar múltiplas falhas lógicas que afetam os navegadores da Web, revelando um novo ataque baseado em cookies e uma contradição de Política de Segurança de Conteúdo não resolvida.

Essas falhas lógicas não são necessariamente vulnerabilidades de segurança, mas podem ser. São inconsistências entre as especificações da plataforma da Web e a forma como essas especificações são implementadas dentro dos navegadores da Web.

O WebSpec foi desenvolvido por Lorenzo Veronese, Benjamin Farinier, Mauro Tempesta, Marco Squarcina, Matteo Maffei em um esforço para trazer rigor à segurança web através de verificação automatizada e verificável de regras em vez de avaliação manual.

Os navegadores, como explicam em um artigo acadêmico, “WebSpec: Towards Machine-Checked Analysis of Browser Security Mechanisms”, tornaram-se tremendamente complexos e continuam a se tornar mais à medida que componentes adicionais são adicionados à plataforma web.

Novos componentes da plataforma web passam por testes de conformidade, dizem os pesquisadores, mas suas especificações são revisadas manualmente por especialistas técnicos para entender como novas tecnologias interagem com APIs legados e implementações individuais de navegadores.

“Infelizmente, as revisões manuais tendem a ignorar falhas lógicas, eventualmente levando a vulnerabilidades críticas de segurança”, explicam os cientistas da computação, apontando para como oito anos após a introdução da bandeira HttpOnly no Internet Explorer 6 – como uma maneira de manter os cookies confidenciais dos scripts do lado do cliente – os pesquisadores descobriram que a bandeira poderia ser ignorada por scripts acessando os cabeçalhos de resposta de uma solicitação AJAX usando a função getResponseHeader.

O WebSpec usa a linguagem de prova de teorema do Coq para sujeitar a interação dos navegadores e seu comportamento especificado a testes formais. Ele torna a segurança do navegador uma questão de provas de Satisfiability Modulo Theorys (SMT) de satisfiability(PDF).

Para testar inconsistências entre especificações da Web e navegadores, os pesquisadores definiram dez “invariantes”, cada um dos quais descreve “uma propriedade da plataforma Web que deverá manter suas atualizações e de forma independente sobre como seus componentes podem interagir entre si”.

Essas invariantes ou regras representam condições testáveis que devem ser verdadeiras, como “Cookies com o atributo Secure só podem ser definidos (usando o cabeçalho Set-Cookie) sobre canais seguros”, conforme definido na RFC 6265, Seção 4.1.2.5.

Dos dez invariantes avaliados, três falharam.

“Em particular, mostramos como o WebSpec é capaz de descobrir um novo ataque ao __Host- prefixo para cookies, bem como uma nova inconsistência entre as regras de herança para a Política de Segurança de Conteúdo e uma mudança planejada no padrão HTML”, explica o documento.

Os cookies HTTP prefixados com “__Host-” devem ser definidos apenas pelo domínio do host ou scripts incluídos nas páginas desse domínio. O WebSpec, no entanto, encontrou um ataque para quebrar o teste invariante relacionado.

“Um script em execução em uma página pode modificar no tempo de execução o domínio eficaz usado para verificações SOP [Same-Origin Policy] através da API document.domain”, explica o documento, observando que a incompatibilidade entre as políticas de controle de acesso no Modelo de Objeto de Documento e o frasco de cookies permite que um script em execução em um iframe acesse a propriedade document.cookie em uma página pai se ambas as páginas definirem document.domain para o mesmo valor.

Os pesquisadores observam que, embora a plataforma web atual permaneça vulnerável a esse ataque, eventualmente não será: A propriedade document.domain foi depreciada, o que significa que futuras atualizações do navegador omitirão o suporte, algum dia.

Os autores também usaram o WebSpec para descobrir uma inconsistência com a forma como os objetos Blob – objetos contendo dados que podem ser lidos como texto, binário ou fluxos usando métodos de objeto incorporados – herdam sua Política de Segurança de Conteúdo.

Lorenzo Veronese, doutorando na TU Wien, levantou a questão em julho passado para o grupo de trabalho do padrão HTML, mas os diferentes comportamentos descritos na especificação CSP e no explicador de contêineres de políticas ainda não foram conciliados.

Antonio Sartori, engenheiro de software do Google, desenvolveu uma correção, mas ainda não foi integrado ao padrão HTML.

De qualquer forma, a disponibilidade do WebSpec como uma ferramenta para avaliar formalmente o comportamento do navegador deve tornar a vida um pouco mais fácil para aqueles que lutam para manter bases de código de navegador em expansão.

FONTE: THE REGISTER

POSTS RELACIONADOS