A Mozilla, fabricante do Firefox, detalhou os recentes esforços para proteger o navegador contra ataques de injeção de código. Esse trabalho de fortalecimento concentrou-se na remoção de “artefatos potencialmente perigosos” na base de código do Firefox, incluindo scripts em linha e funções críticas, de acordo com o líder de segurança de conteúdo da Mozilla, Christoph Kerschbaumer. Assim, a Mozilla anuncia proteção contra ataque de injeção de código no Firefox.
A remoção de scripts embutidos visa melhorar a proteção do protocolo ‘about’ do Firefox , mais conhecido como about: pages.
Existem dezenas dessas about: pages, que permitem que os usuários façam coisas como exibir informações de rede, ver como o navegador está configurado e visualizar plug-ins instalados.
Por que a Mozilla anuncia proteção contra ataque de injeção de código no Firefox?
A Mozilla temia que os invasores usassem ataques de injeção de código para abusar da página about: config, que “expõe uma API para inspecionar e atualizar preferências e configurações. Isso permite que os usuários do Firefox adaptem sua instância do Firefox às suas necessidades específicas”, explica Kerschbaumer.
As páginas about: são escritas em HTML e JavaScript e, portanto, compartilham o mesmo modelo de segurança que as páginas da Web normais. Assim, elas também são vulneráveis a ataques de injeção de código. Um invasor pode injetar código na página about: e, em seguida, alterar as configurações do navegador, por exemplo.
A resposta em duas partes a esse risco à segurança foi reescrever todos os manipuladores de eventos em linha e mover todo o código JavaScript em linha para “arquivos compactados” para todas as 45 páginas about:. Segundo, a Mozilla definiu uma Política de Segurança de Conteúdo “forte” para garantir que o código JavaScript injetado não seja executado.
Não permitir nenhum script embutido em nenhuma das páginas about: limita a superfície de ataque da execução arbitrária de código e, portanto, fornece uma forte primeira linha de defesa contra ataques de injeção de código, observa Kerschbaumer.
Função perigosa
Outro esforço de fortalecimento trata da função eval () no JavaScript, que a Mozilla descreve como uma “função perigosa” e avisa os desenvolvedores da Web para nunca usar.
Eval () é uma função perigosa, que executa o código que é passado com os privilégios do chamador, explica Mozilla em notas de suporte ao desenvolvedor.
Se você executar eval () com uma string que possa ser afetada por uma parte mal-intencionada, poderá acabar executando o código malicioso na máquina do usuário com as permissões da sua página / extensão da Web. Mais importante, um código de terceiros pode ver o escopo no qual eval () foi invocado, o que pode levar a possíveis ataques de maneiras às quais a Função semelhante não é suscetível.
Kerschbaumer descreve a função como uma “ferramenta poderosa e perigosa” que introduz uma superfície de ataque significativa para injeção de código, e desencorajamos seu uso em favor de alternativas mais seguras.
Reescrevemos todo o uso de funções do tipo ‘eval ()’ de contextos privilegiados do sistema e do processo pai na base de código do Firefox. Além disso, adicionamos asserções, proibindo o uso de ‘eval ()’ e seus parentes no script com privilégios de sistema contextos, observa ele.
O objetivo desta medida é reduzir a superfície de ataque no Firefox e desencorajar ainda mais o uso da função.
Fonte: ZDNet